diff --git a/debugging/fileutil.cpp b/debugging/fileutil.cpp
index 8bde202aaba5ad89c030762c2bb9a055b06c4d1b..033da3b5819750cc3a2ef06ee870419f03adcea1 100644
--- a/debugging/fileutil.cpp
+++ b/debugging/fileutil.cpp
@@ -20,27 +20,17 @@ using namespace std;
 int main(int argc, char **argv)
 {
   int cur = 0;
-  char *lines[16536];
-  char line[80];
+
+  char line[1000];
   // Fix num lines, num columns, strdup-1
-  FILE *fin = fopen("bible.txt", "r");
-  //end-of-file condition is detected after trying read, not before.
-  //fopen passes a NULL.
-  if(fin){
+  FILE *fin = fopen("bible.txt", "r");
+  FILE *fout = fopen("copy.txt", "w");
+ 
   while (!feof(fin)) {
     getline(line, fin);
-    lines[cur] = (char*) malloc(strlen(line));
-    strcpy(lines[cur], line);
-    cur++;
-  }
-   fclose(fin);
-  }
- 
-  FILE *fout = fopen("copy.txt", "w");
-  
-  for (int i=0; i<cur; i++) {
-    fputs(lines[i], fout);
+    fputs(line, fout);
   }
+  fclose(fin);
   fclose(fout);
   
   return 0;
diff --git a/debugging/workitems.c b/debugging/workitems.c
index 0728aead0cd005a2e4cb6fe084d6e437a441fa79..fa1897ac7514504566ee9048d57f3422ead192f0 100644
--- a/debugging/workitems.c
+++ b/debugging/workitems.c
@@ -3,6 +3,9 @@
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
+#include <pthread.h>
+
+pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
 
 typedef struct workitem {
   void (*fn)(double *);
@@ -19,7 +22,11 @@ static void* launchThread(void *in)
   volatile int started = 0;
   while (!(started = data->started));
   while (1) {
+    
+    pthread_mutex_lock(&lock);
     n = data->current++;
+    pthread_mutex_unlock(&lock);
+    
     if (n >= data->len) break;
     data->fn(&data->data[n]);
   }
@@ -42,7 +49,10 @@ void launchParallel(int numThreads, double *values, int len, void (*fn)(double *
   for (int i=0; i<numThreads; i++) {
     assert(0 == pthread_create(&th[i], NULL, launchThread, data));
   }
+
   data->started = 1;
+
+
   for (int i=0; i<numThreads; i++) {
     assert(th[i] && 0==pthread_join(th[i], NULL));
   }
diff --git a/julia/dowhile.jl b/julia/dowhile.jl
index 084bb245ba34a416f631755bc19537cf12d36b74..b8d3425bc70857ce6457cbfcf75a622f5ccf29f0 100644
--- a/julia/dowhile.jl
+++ b/julia/dowhile.jl
@@ -1,5 +1,4 @@
 macro doWhile(block, cond)
-
   println("__source__ ", __source__)
   println("cond ", cond)
   println("block ", block)
@@ -12,10 +11,12 @@ macro doWhile(block, cond)
       end
   end
 
-   
-  
-  # println(res) # Should not print any lines referencing dowhile.jl
-  res.args[1].striplines
 
 
+  replace!(arg -> typeof(arg) <: LineNumberNode ? __source__ : arg, res.args)
+
+
+  res
+  println(res.args)
+
 end
diff --git a/profiling/statprof/abstractinterpretation-jl-35ae29f448859d864444-line.html b/profiling/statprof/abstractinterpretation-jl-35ae29f448859d864444-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..014df8fa5b3cd7f66554dc29447abdf7900e1964
--- /dev/null
+++ b/profiling/statprof/abstractinterpretation-jl-35ae29f448859d864444-line.html
@@ -0,0 +1,12646 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./compiler/abstractinterpretation.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on ons  9 okt 2019 08:41:28</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#############
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># constants #
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#############
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const CoreNumType = Union{Int32, Int64, Float32, Float64}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const _REF_NAME = Ref.body.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#########
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># logic #
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#########
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># see if the inference result might affect the final answer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">call_result_unused(frame::InferenceState, pc::LineNum=frame.currpc) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isexpr(frame.src.code[frame.currpc], :call) &amp;&amp; isempty(frame.ssavalue_uses[pc])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_call_gf_by_type-19"></a>
+              2 (5.41%) samples spent in abstract_call_gf_by_type<br />
+              0 (ex.),
+              2 (100.00%) (incl.)
+              when called from
+              abstract_call
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#Labstractinterpretation-jl-35ae29f448859d864444-line.html-829">line 829</a><br />
+            </div>
+            <span class="code">function abstract_call_gf_by_type(@nospecialize(f), argtypes::Vector{Any}, @nospecialize(atype), sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    atype_params = unwrap_unionall(atype).parameters
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ft = unwrap_unionall(atype_params[1]) # TODO: ccall jl_first_argument_datatype here
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(ft, DataType) || return Any # the function being called is unknown. can&#39;t properly handle this backedge right now
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ftname = ft.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isdefined(ftname, :mt) || return Any # not callable. should be Bottom, but can&#39;t track this backedge right now
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if ftname === _TYPE_NAME
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        tname = ft.parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(tname, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            tname = tname.ub
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        tname = unwrap_unionall(tname)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isa(tname, DataType)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # can&#39;t track the backedge to the ctor right now
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # for things like Union
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    min_valid = UInt[typemin(UInt)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    max_valid = UInt[typemax(UInt)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    splitunions = 1 &lt; countunionsplit(atype_params) &lt;= sv.params.MAX_UNION_SPLITTING
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if splitunions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        splitsigs = switchtupleunion(atype)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        applicable = Any[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for sig_n in splitsigs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            xapplicable = _methods_by_ftype(sig_n, sv.params.MAX_METHODS, sv.params.world, min_valid, max_valid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            xapplicable === false &amp;&amp; return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            append!(applicable, xapplicable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-49"></a>49</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="reflection-jl-e4829e64897104a61856-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-reflection-jl-_methods_by_ftype-721">_methods_by_ftype</a><br />
+            </div>
+            <span class="code">        applicable = _methods_by_ftype(atype, sv.params.MAX_METHODS, sv.params.world, min_valid, max_valid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if applicable === false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # this means too many methods matched
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # (assume this will always be true, so we don&#39;t compute / update valid age in this case)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    update_valid_age!(min_valid[1], max_valid[1], sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    applicable = applicable::Array{Any,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    napplicable = length(applicable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rettype = Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    edgecycle = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    edges = Any[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nonbot = 0  # the index of the only non-Bottom inference result if &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    seen = 0    # number of signatures actually inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i in 1:napplicable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        match = applicable[i]::SimpleVector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        method = match[3]::Method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sig = match[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sigtuple = unwrap_unionall(sig)::DataType
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        splitunions = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        this_rt = Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # TODO: splitunions = 1 &lt; countunionsplit(sigtuple.parameters) * napplicable &lt;= sv.params.MAX_UNION_SPLITTING
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # currently this triggers a bug in inference recursion detection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if splitunions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            splitsigs = switchtupleunion(sig)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for sig_n in splitsigs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                rt, edgecycle1, edge = abstract_call_method(method, sig_n, svec(), sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if edge !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    push!(edges, edge)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                edgecycle |= edgecycle1::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                this_rt = tmerge(this_rt, rt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                this_rt === Any &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            this_rt, edgecycle, edge = abstract_call_method(method, sig, match[2]::SimpleVector, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if edge !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(edges, edge)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if this_rt !== Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if nonbot === 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                nonbot = i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                nonbot = -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        seen += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rettype = tmerge(rettype, this_rt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rettype === Any &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # try constant propagation if only 1 method is inferred to non-Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # this is in preparation for inlining, or improving the return result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if nonbot &gt; 0 &amp;&amp; seen == napplicable &amp;&amp; !edgecycle &amp;&amp; isa(rettype, Type) &amp;&amp; sv.params.ipo_constant_propagation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # if there&#39;s a possibility we could constant-propagate a better result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # (hopefully without doing too much work), try to do that now
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # TODO: it feels like this could be better integrated into abstract_call_method / typeinf_edge
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-107"></a>107</td>
+          <td></td>
+          <td>3 (8.11%)</td>
+          <td>
+            <div class="callees">
+              2 (66.67%)
+              samples spent calling
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_call_method_with_const_args-145">abstract_call_method_with_const_args</a><br />
+            </div>
+            <span class="code">        const_rettype = abstract_call_method_with_const_args(f, argtypes, applicable[nonbot]::SimpleVector, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if const_rettype ⊑ rettype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # use the better result, if it&#39;s a refinement of rettype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rettype = const_rettype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if call_result_unused(sv) &amp;&amp; !(rettype === Bottom)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # We&#39;re mainly only here because the optimizer might want this code,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # but we ourselves locally don&#39;t typically care about it locally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # (beyond checking if it always throws).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # So avoid adding an edge, since we don&#39;t want to bother attempting
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # to improve our result even if it does change (to always throw),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # and avoid keeping track of a more complex result type.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rettype = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !(rettype === Any) # adding a new method couldn&#39;t refine (widen) this type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for edge in edges
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            add_backedge!(edge::MethodInstance, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        fullmatch = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i in napplicable:-1:1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            match = applicable[i]::SimpleVector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            method = match[3]::Method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if atype &lt;: method.sig
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                fullmatch = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !fullmatch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # also need an edge to the method table in case something gets
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # added that did not intersect with any existing method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            add_mt_backedge!(ftname.mt, atype, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #print(&quot;=&gt; &quot;, rettype, &quot;\n&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return rettype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_call_method_with_const_args-145"></a>
+              2 (5.41%) samples spent in abstract_call_method_with_const_args<br />
+              0 (ex.),
+              2 (100.00%) (incl.)
+              when called from
+              abstract_call_gf_by_type
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#Labstractinterpretation-jl-35ae29f448859d864444-line.html-107">line 107</a><br />
+            </div>
+            <span class="code">function abstract_call_method_with_const_args(@nospecialize(f), argtypes::Vector{Any}, match::SimpleVector, sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    method = match[3]::Method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nargs::Int = method.nargs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    method.isva &amp;&amp; (nargs -= 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    length(argtypes) &gt;= nargs || return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    haveconst = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for a in argtypes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a = maybe_widen_conditional(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(a, Const) &amp;&amp; !isdefined(typeof(a.val), :instance) &amp;&amp; !(isa(a.val, Type) &amp;&amp; issingletontype(a.val))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # have new information from argtypes that wasn&#39;t available from the signature
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(a.val, Symbol) || isa(a.val, Type) || (!isa(a.val, String) &amp;&amp; isimmutable(a.val))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # don&#39;t consider mutable values or Strings useful constants
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                haveconst = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    haveconst || return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sig = match[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sparams = match[2]::SimpleVector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code = code_for_method(method, sig, sparams, sv.params.world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code === nothing &amp;&amp; return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code = code::MethodInstance
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # decide if it&#39;s likely to be worthwhile
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    declared_inline = isdefined(method, :source) &amp;&amp; ccall(:jl_ast_flag_inlineable, Bool, (Any,), method.source)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cache_inlineable = declared_inline
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isdefined(code, :inferred) &amp;&amp; !cache_inlineable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        cache_inf = code.inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !(cache_inf === nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cache_src_inferred = ccall(:jl_ast_flag_inferred, Bool, (Any,), cache_inf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cache_src_inlineable = ccall(:jl_ast_flag_inlineable, Bool, (Any,), cache_inf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cache_inlineable = cache_src_inferred &amp;&amp; cache_src_inlineable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !cache_inlineable &amp;&amp; !sv.params.aggressive_constant_propagation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        tm = _topmod(sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !istopfunction(f, :getproperty) &amp;&amp; !istopfunction(f, :setproperty!)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # in this case, see if all of the arguments are constants
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for a in argtypes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                a = maybe_widen_conditional(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if !isa(a, Const) &amp;&amp; !isconstType(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    inf_result = cache_lookup(code, argtypes, sv.params.cache)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if inf_result === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        inf_result = InferenceResult(code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        atypes = get_argtypes(inf_result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if method.isva
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            vargs = argtypes[(nargs + 1):end]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for i in 1:length(vargs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                a = maybe_widen_conditional(vargs[i])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if i &gt; length(inf_result.vargs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    push!(inf_result.vargs, a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif a isa Const
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    inf_result.vargs[i] = a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i in 1:nargs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            a = maybe_widen_conditional(argtypes[i])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if a isa Const
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                atypes[i] = a # inject Const argtypes into inference
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        frame = InferenceState(inf_result, #=cache=#false, sv.params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        frame.limited = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        frame.parent = sv
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(sv.params.cache, inf_result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-216"></a>216</td>
+          <td></td>
+          <td>3 (8.11%)</td>
+          <td>
+            <div class="callees">
+              2 (66.67%)
+              samples spent calling
+              <a href="typeinfer-jl-14b2448d998dfdb61460-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-typeinfer-jl-typeinf-13">typeinf</a><br />
+            </div>
+            <span class="code">        typeinf(frame) || return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result = inf_result.result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(result, InferenceState) &amp;&amp; return Any # TODO: is this recursive constant inference?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    add_backedge!(inf_result.linfo, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abstract_call_method(method::Method, @nospecialize(sig), sparams::SimpleVector, sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if method.name === :depwarn &amp;&amp; isdefined(Main, :Base) &amp;&amp; method.module === Main.Base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Any, false, nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    topmost = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Limit argument type tuple growth of functions:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # look through the parents list to see if there&#39;s a call to the same method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # and from the same method.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Returns the topmost occurrence of that repeated edge.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cyclei = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    infstate = sv
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    edgecycle = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # The `method_for_inference_heuristics` will expand the given method&#39;s generator if
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # necessary in order to retrieve this field from the generated `CodeInfo`, if it exists.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # The other `CodeInfo`s we inspect will already have this field inflated, so we just
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # access it directly instead (to avoid regeneration).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    method2 = method_for_inference_heuristics(method, sig, sparams, sv.params.world) # Union{Method, Nothing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sv_method2 = sv.src.method_for_inference_limit_heuristics # limit only if user token match
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sv_method2 isa Method || (sv_method2 = nothing) # Union{Method, Nothing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !(infstate === nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        infstate = infstate::InferenceState
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if method === infstate.linfo.def
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if infstate.linfo.specTypes == sig
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # avoid widening when detecting self-recursion
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # TODO: merge call cycle and return right away
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if call_result_unused(sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # since we don&#39;t use the result (typically),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # we have a self-cycle in the call-graph, but not in the inference graph (typically):
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # break this edge now (before we record it) by returning early
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # (non-typically, this means that we lose the ability to detect a guaranteed StackOverflow in some cases)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return Any, false, nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                topmost = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                edgecycle = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            inf_method2 = infstate.src.method_for_inference_limit_heuristics # limit only if user token match
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            inf_method2 isa Method || (inf_method2 = nothing) # Union{Method, Nothing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if topmost === nothing &amp;&amp; method2 === inf_method2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # inspect the parent of this edge,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # to see if they are the same Method as sv
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # in which case we&#39;ll need to ensure it is convergent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # otherwise, we don&#39;t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                for parent in infstate.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # check in the cycle list first
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # all items in here are mutual parents of all others
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    parent_method2 = parent.src.method_for_inference_limit_heuristics # limit only if user token match
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    parent_method2 isa Method || (parent_method2 = nothing) # Union{Method, Nothing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if parent.linfo.def === sv.linfo.def &amp;&amp; sv_method2 === parent_method2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        topmost = infstate
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        edgecycle = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                let parent = infstate.parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # then check the parent link
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if topmost === nothing &amp;&amp; parent !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        parent = parent::InferenceState
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        parent_method2 = parent.src.method_for_inference_limit_heuristics # limit only if user token match
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        parent_method2 isa Method || (parent_method2 = nothing) # Union{Method, Nothing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        if (parent.cached || parent.limited) &amp;&amp; parent.linfo.def === sv.linfo.def &amp;&amp; sv_method2 === parent_method2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            topmost = infstate
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            edgecycle = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # iterate through the cycle before walking to the parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if cyclei &lt; length(infstate.callers_in_cycle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cyclei += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            infstate = infstate.callers_in_cycle[cyclei]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cyclei = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            infstate = infstate.parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !(topmost === nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        topmost = topmost::InferenceState
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sigtuple = unwrap_unionall(sig)::DataType
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        msig = unwrap_unionall(method.sig)::DataType
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        spec_len = length(msig.parameters) + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ls = length(sigtuple.parameters)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if method === sv.linfo.def
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # Under direct self-recursion, permit much greater use of reducers.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # here we assume that complexity(specTypes) :&gt;= complexity(sig)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            comparison = sv.linfo.specTypes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            l_comparison = length(unwrap_unionall(comparison).parameters)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            spec_len = max(spec_len, l_comparison)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            comparison = method.sig
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # see if the type is actually too big (relative to the caller), and limit it if required
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        newsig = limit_type_size(sig, comparison, sv.linfo.specTypes, sv.params.TUPLE_COMPLEXITY_LIMIT_DEPTH, spec_len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if newsig !== sig
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # continue inference, but note that we&#39;ve limited parameter complexity
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # on this call (to ensure convergence), so that we don&#39;t cache this result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if call_result_unused(sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # if we don&#39;t (typically) actually care about this result,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # don&#39;t bother trying to examine some complex abstract signature
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # since it&#39;s very unlikely that we&#39;ll try to inline this,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # or want make an invoke edge to its calling convention return type.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # (non-typically, this means that we lose the ability to detect a guaranteed StackOverflow in some cases)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return Any, false, nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            infstate = sv
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            topmost = topmost::InferenceState
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            while !(infstate === topmost.parent)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if call_result_unused(infstate)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # If we won&#39;t propagate the result any further (since it&#39;s typically unused),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # it&#39;s OK that we keep and cache the &quot;limited&quot; result in the parents
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # (non-typically, this means that we lose the ability to detect a guaranteed StackOverflow in some cases)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # TODO: we might be able to halt progress much more strongly here,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # since now we know we won&#39;t be able to keep anything much that we learned.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # We were mainly only here to compute the calling convention return type,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # but in most situations now, we are unlikely to be able to use that information.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                infstate.limited = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                for infstate_cycle in infstate.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    infstate_cycle.limited = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                infstate = infstate.parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            sig = newsig
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            sparams = svec()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # if sig changed, may need to recompute the sparams environment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(method.sig, UnionAll) &amp;&amp; isempty(sparams)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        recomputed = ccall(:jl_type_intersection_with_env, Any, (Any, Any), sig, method.sig)::SimpleVector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #@assert recomputed[1] !== Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # We must not use `sig` here, since that may re-introduce structural complexity that
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # our limiting heuristic sought to eliminate. The alternative would be to not increment depth over covariant contexts,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # but we prefer to permit inference of tuple-destructuring, so we don&#39;t do that right now
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # For example, with a signature such as `Tuple{T, Ref{T}} where {T &lt;: S}`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # we might want to limit this to `Tuple{S, Ref}`, while type-intersection can instead give us back the original type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # (which moves `S` back up to a lower comparison depth)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Optionally, we could try to drive this to a fixed point, but I think this is getting too complex,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # and this would only cause more questions and more problems
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # (the following is only an example, most of the statements are probable in the wrong order):
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #     newsig = sig
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #     seen = IdSet()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #     while !(newsig in seen)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #         push!(seen, newsig)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #         lsig = length((unwrap_unionall(sig)::DataType).parameters)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #         newsig = limit_type_size(newsig, sig, sv.linfo.specTypes, sv.params.TUPLE_COMPLEXITY_LIMIT_DEPTH, lsig)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #         recomputed = ccall(:jl_type_intersection_with_env, Any, (Any, Any), newsig, method.sig)::SimpleVector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #         newsig = recomputed[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #     end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        #     sig = ?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sparams = recomputed[2]::SimpleVector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rt, edge = typeinf_edge(method, sig, sparams, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if edge === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        edgecycle = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return rt, edgecycle, edge
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This is only for use with `Conditional`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># In general, usage of this is wrong.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function ssa_def_expr(@nospecialize(arg), sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while isa(arg, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        arg = sv.src.code[arg.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return arg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># `typ` is the inferred type for expression `arg`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># if the expression constructs a container (e.g. `svec(x,y,z)`),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># refine its type to an array of element types.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Union of Tuples of the same length is converted to Tuple of Unions.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># returns an array of types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function precise_container_type(@nospecialize(arg), @nospecialize(typ), vtypes::VarTable, sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(typ, Const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        val = typ.val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, SimpleVector) || isa(val, Tuple)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any[ Const(val[i]) for i in 1:length(val) ] # avoid making a tuple Generator here!
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    arg = ssa_def_expr(arg, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if is_specializable_vararg_slot(arg, sv.nargs, sv.result.vargs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return sv.result.vargs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tti0 = widenconst(typ)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tti = unwrap_unionall(tti0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(arg, Expr) &amp;&amp; arg.head === :call &amp;&amp; (abstract_evals_to_constant(arg.args[1], svec, vtypes, sv) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                                abstract_evals_to_constant(arg.args[1], tuple, vtypes, sv))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        aa = arg.args
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result = Any[ abstract_eval(aa[j],vtypes,sv) for j=2:length(aa) ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if _any(isvarargtype, result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any[Vararg{Any}]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(tti, Union)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        utis = uniontypes(tti)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if _any(t -&gt; !isa(t,DataType) || !(t &lt;: Tuple) || !isknownlength(t), utis)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any[Vararg{Any}]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result = Any[rewrap_unionall(p, tti0) for p in utis[1].parameters]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for t in utis[2:end]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if length(t.parameters) != length(result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return Any[Vararg{Any}]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for j in 1:length(t.parameters)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                result[j] = tmerge(result[j], rewrap_unionall(t.parameters[j], tti0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(tti0,DataType) &amp;&amp; tti0 &lt;: Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isvatuple(tti0) &amp;&amp; length(tti0.parameters) == 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any[Vararg{unwrapva(tti0.parameters[1])}]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any[ p for p in tti0.parameters ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif tti0 &lt;: Array
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Any[Vararg{eltype(tti0)}]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return abstract_iteration(typ, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># simulate iteration protocol on container type up to fixpoint
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abstract_iteration(@nospecialize(itertype), vtypes::VarTable, sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isdefined(Main, :Base) || !isdefined(Main.Base, :iterate) || !isconst(Main.Base, :iterate)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Any[Vararg{Any}]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    iteratef = getfield(Main.Base, :iterate)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stateordonet = abstract_call(iteratef, (), Any[Const(iteratef), itertype], vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Return Bottom if this is not an iterator.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # WARNING: Changes to the iteration protocol must be reflected here,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # this is not just an optimization.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stateordonet === Bottom &amp;&amp; return Any[Bottom]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    valtype = statetype = Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ret = Any[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stateordonet = widenconst(stateordonet)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !(Nothing &lt;: stateordonet) &amp;&amp; length(ret) &lt; sv.params.MAX_TUPLE_SPLAT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isa(stateordonet, DataType) || !(stateordonet &lt;: Tuple) || isvatuple(stateordonet) || length(stateordonet.parameters) != 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if stateordonet.parameters[2] &lt;: statetype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # infinite (or failing) iterator
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any[Bottom]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        valtype = stateordonet.parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        statetype = stateordonet.parameters[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(ret, valtype)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stateordonet = abstract_call(iteratef, (), Any[Const(iteratef), itertype, statetype], vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stateordonet = widenconst(stateordonet)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if stateordonet === Nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while valtype !== Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nounion = typesubtract(stateordonet, Nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isa(nounion, DataType) || !(nounion &lt;: Tuple) || isvatuple(nounion) || length(nounion.parameters) != 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            valtype = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if nounion.parameters[1] &lt;: valtype &amp;&amp; nounion.parameters[2] &lt;: statetype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        valtype = tmerge(valtype, nounion.parameters[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        statetype = tmerge(statetype, nounion.parameters[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stateordonet = abstract_call(iteratef, (), Any[Const(iteratef), itertype, statetype], vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stateordonet = widenconst(stateordonet)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(ret, Vararg{valtype})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># do apply(af, fargs...), where af is a function value
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abstract_apply(@nospecialize(aft), fargs::Union{Tuple{},Vector{Any}}, aargtypes::Vector{Any}, vtypes::VarTable, sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isa(aft, Const) &amp;&amp; (!isType(aft) || has_free_typevars(aft))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isconcretetype(aft) || (aft &lt;: Builtin)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # non-constant function of unknown type: bail now,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # since it seems unlikely that abstract_call will be able to do any better after splitting
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # this also ensures we don&#39;t call abstract_call_gf_by_type below on an IntrinsicFunction or Builtin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    res = Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nargs = length(aargtypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert fargs === () || nargs == length(fargs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    splitunions = 1 &lt; countunionsplit(aargtypes) &lt;= sv.params.MAX_APPLY_UNION_ENUM
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ctypes = Any[Any[aft]]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:nargs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ctypes´ = []
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for ti in (splitunions ? uniontypes(aargtypes[i]) : Any[aargtypes[i]])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cti = precise_container_type(fargs === () ? nothing : fargs[i], ti, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if _any(t -&gt; t === Bottom, cti)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for ct in ctypes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isvarargtype(ct[end])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tail = tuple_tail_elem(unwrapva(ct[end]), cti)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    push!(ctypes´, push!(ct[1:(end - 1)], tail))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    push!(ctypes´, append_any(ct, cti))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ctypes = ctypes´
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for ct in ctypes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(aft, Const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rt = abstract_call(aft.val, (), ct, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isconstType(aft)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rt = abstract_call(aft.parameters[1], (), ct, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            astype = argtypes_to_type(ct)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rt = abstract_call_gf_by_type(nothing, ct, astype, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        res = tmerge(res, rt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if res === Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return res
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function pure_eval_call(@nospecialize(f), argtypes::Vector{Any}, @nospecialize(atype), sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 2:length(argtypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a = maybe_widen_conditional(argtypes[i])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !(isa(a, Const) || isconstType(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    min_valid = UInt[typemin(UInt)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    max_valid = UInt[typemax(UInt)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    meth = _methods_by_ftype(atype, 1, sv.params.world, min_valid, max_valid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if meth === false || length(meth) != 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    meth = meth[1]::SimpleVector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    method = meth[3]::Method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # TODO: check pure on the inferred thunk
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isdefined(method, :generator) || !method.pure
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    args = Any[ (a = maybe_widen_conditional(argtypes[i]); isa(a, Const) ? a.val : a.parameters[1]) for i in 2:length(argtypes) ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        value = Core._apply_pure(f, args)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # TODO: add some sort of edge(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Const(value, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    catch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_call-583"></a>
+              2 (5.41%) samples spent in abstract_call<br />
+              0 (ex.),
+              2 (100.00%) (incl.)
+              when called from
+              abstract_eval_call
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#Labstractinterpretation-jl-35ae29f448859d864444-line.html-858">line 858</a><br />
+            </div>
+            <span class="code">function abstract_call(@nospecialize(f), fargs::Union{Tuple{},Vector{Any}}, argtypes::Vector{Any}, vtypes::VarTable, sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if f === _apply
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return abstract_apply(argtypes[2], fargs[3:end], argtypes[3:end], vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    la = length(argtypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 2:(la - 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isvarargtype(argtypes[i])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(f, Builtin) || isa(f, IntrinsicFunction)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if f === ifelse &amp;&amp; fargs isa Vector{Any} &amp;&amp; length(argtypes) == 4 &amp;&amp; argtypes[2] isa Conditional
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # try to simulate this as a real conditional (`cnd ? x : y`), so that the penalty for using `ifelse` instead isn&#39;t too high
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cnd = argtypes[2]::Conditional
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            tx = argtypes[3]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ty = argtypes[4]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            a = ssa_def_expr(fargs[3], sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            b = ssa_def_expr(fargs[4], sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-603"></a>603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(a, Slot) &amp;&amp; slot_id(cnd.var) == slot_id(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                tx = typeintersect(tx, cnd.vtype)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(b, Slot) &amp;&amp; slot_id(cnd.var) == slot_id(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ty = typeintersect(ty, cnd.elsetype)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return tmerge(tx, ty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-611"></a>611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rt = builtin_tfunction(f, argtypes[2:end], sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if f === getfield &amp;&amp; isa(fargs, Vector{Any}) &amp;&amp; length(argtypes) == 3 &amp;&amp; isa(argtypes[3], Const) &amp;&amp; isa(argtypes[3].val, Int) &amp;&amp; argtypes[2] ⊑ Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cti = precise_container_type(fargs[2], argtypes[2], vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            idx = argtypes[3].val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if 1 &lt;= idx &lt;= length(cti)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                rt = unwrapva(cti[idx])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif (rt === Bool || (isa(rt, Const) &amp;&amp; isa(rt.val, Bool))) &amp;&amp; isa(fargs, Vector{Any})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # perform very limited back-propagation of type information for `is` and `isa`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if f === isa
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                a = ssa_def_expr(fargs[2], sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(a, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    aty = widenconst(argtypes[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if rt === Const(false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        return Conditional(a, Union{}, aty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    elseif rt === Const(true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        return Conditional(a, aty, Union{})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tty_ub, isexact_tty = instanceof_tfunc(argtypes[3])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if isexact_tty &amp;&amp; !isa(tty_ub, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        tty_lb = tty_ub # TODO: this would be wrong if !isexact_tty, but instanceof_tfunc doesn&#39;t preserve this info
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        if !has_free_typevars(tty_lb) &amp;&amp; !has_free_typevars(tty_ub)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            ifty = typeintersect(aty, tty_ub)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            elty = typesubtract(aty, tty_lb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            return Conditional(a, ifty, elty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif f === (===)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                a = ssa_def_expr(fargs[2], sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                b = ssa_def_expr(fargs[3], sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                aty = argtypes[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                bty = argtypes[3]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # if doing a comparison to a singleton, consider returning a `Conditional` instead
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(aty, Const) &amp;&amp; isa(b, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if rt === Const(false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        aty = Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-648"></a>648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    elseif rt === Const(true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-649"></a>649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        bty = Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-650"></a>650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    elseif bty isa Type &amp;&amp; isdefined(typeof(aty.val), :instance) # can only widen a if it is a singleton
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-651"></a>651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        bty = typesubtract(bty, typeof(aty.val))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-652"></a>652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-653"></a>653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return Conditional(b, aty, bty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-654"></a>654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-655"></a>655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(bty, Const) &amp;&amp; isa(a, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-656"></a>656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if rt === Const(false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-657"></a>657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        bty = Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-658"></a>658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    elseif rt === Const(true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-659"></a>659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        aty = Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-660"></a>660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    elseif aty isa Type &amp;&amp; isdefined(typeof(bty.val), :instance) # same for b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-661"></a>661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        aty = typesubtract(aty, typeof(bty.val))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-662"></a>662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-663"></a>663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return Conditional(a, bty, aty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-664"></a>664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-665"></a>665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(b, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-666"></a>666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return Conditional(b, bty, bty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-667"></a>667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-668"></a>668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(a, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-669"></a>669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return Conditional(a, aty, aty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-670"></a>670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-671"></a>671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif f === Core.Compiler.not_int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-672"></a>672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                aty = argtypes[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-673"></a>673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(aty, Conditional)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-674"></a>674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    ifty = aty.elsetype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-675"></a>675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    elty = aty.vtype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-676"></a>676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if rt === Const(false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-677"></a>677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        ifty = Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-678"></a>678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    elseif rt === Const(true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-679"></a>679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        elty = Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-680"></a>680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-681"></a>681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return Conditional(aty.var, ifty, elty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-682"></a>682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-683"></a>683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-684"></a>684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-685"></a>685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return isa(rt, TypeVar) ? rt.ub : rt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-686"></a>686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif f === Core.kwfunc
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-687"></a>687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if length(argtypes) == 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-688"></a>688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ft = widenconst(argtypes[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-689"></a>689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(ft, DataType) &amp;&amp; isdefined(ft.name, :mt) &amp;&amp; isdefined(ft.name.mt, :kwsorter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-690"></a>690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return Const(ft.name.mt.kwsorter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-691"></a>691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-692"></a>692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-693"></a>693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-694"></a>694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif f === TypeVar
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-695"></a>695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        lb = Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-696"></a>696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ub = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-697"></a>697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ub_certain = lb_certain = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-698"></a>698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if length(argtypes) &gt;= 2 &amp;&amp; isa(argtypes[2], Const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-699"></a>699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            nv = argtypes[2].val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-700"></a>700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ubidx = 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-701"></a>701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if length(argtypes) &gt;= 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-702"></a>702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ubidx = 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-703"></a>703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(argtypes[3], Const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-704"></a>704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    lb = argtypes[3].val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-705"></a>705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif isType(argtypes[3])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-706"></a>706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    lb = argtypes[3].parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-707"></a>707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    lb_certain = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-708"></a>708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-709"></a>709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return TypeVar
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-710"></a>710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-711"></a>711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-712"></a>712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if length(argtypes) &gt;= ubidx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-713"></a>713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(argtypes[ubidx], Const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-714"></a>714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    ub = argtypes[ubidx].val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-715"></a>715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif isType(argtypes[ubidx])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-716"></a>716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    ub = argtypes[ubidx].parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-717"></a>717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    ub_certain = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-718"></a>718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-719"></a>719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return TypeVar
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-720"></a>720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-721"></a>721</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-722"></a>722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            tv = TypeVar(nv, lb, ub)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-723"></a>723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return PartialTypeVar(tv, lb_certain, ub_certain)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-724"></a>724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-725"></a>725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return TypeVar
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-726"></a>726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif f === UnionAll
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-727"></a>727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if length(argtypes) == 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-728"></a>728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            canconst = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-729"></a>729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(argtypes[3], Const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-730"></a>730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                body = argtypes[3].val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-731"></a>731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif isType(argtypes[3])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-732"></a>732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                body = argtypes[3].parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-733"></a>733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                canconst = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-734"></a>734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-735"></a>735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-736"></a>736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-737"></a>737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !isa(body, Type) &amp;&amp; !isa(body, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-738"></a>738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-739"></a>739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-740"></a>740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if has_free_typevars(body)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-741"></a>741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(argtypes[2], Const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-742"></a>742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tv = argtypes[2].val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-743"></a>743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif isa(argtypes[2], PartialTypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-744"></a>744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    ptv = argtypes[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-745"></a>745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tv = ptv.tv
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-746"></a>746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    canconst = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-747"></a>747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-748"></a>748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-749"></a>749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-750"></a>750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                !isa(tv, TypeVar) &amp;&amp; return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-751"></a>751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                body = UnionAll(tv, body)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-752"></a>752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-753"></a>753</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ret = canconst ? AbstractEvalConstant(body) : Type{body}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-754"></a>754</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-755"></a>755</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-756"></a>756</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-757"></a>757</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif f === return_type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-758"></a>758</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rt_rt = return_type_tfunc(argtypes, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-759"></a>759</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if rt_rt !== NOT_FOUND
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-760"></a>760</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return rt_rt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-761"></a>761</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-762"></a>762</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif length(argtypes) == 2 &amp;&amp; istopfunction(f, :!)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-763"></a>763</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # handle Conditional propagation through !Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-764"></a>764</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        aty = argtypes[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-765"></a>765</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(aty, Conditional)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-766"></a>766</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            abstract_call_gf_by_type(f, Any[Const(f), Bool], Tuple{typeof(f), Bool}, sv) # make sure we&#39;ve inferred `!(::Bool)`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-767"></a>767</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Conditional(aty.var, aty.elsetype, aty.vtype)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-768"></a>768</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-769"></a>769</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif length(argtypes) == 3 &amp;&amp; istopfunction(f, :!==)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-770"></a>770</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # mark !== as exactly a negated call to ===
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-771"></a>771</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rty = abstract_call((===), fargs, argtypes, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-772"></a>772</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(rty, Conditional)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-773"></a>773</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Conditional(rty.var, rty.elsetype, rty.vtype) # swap if-else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-774"></a>774</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(rty, Const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-775"></a>775</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Const(rty.val === false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-776"></a>776</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-777"></a>777</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return rty
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-778"></a>778</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif length(argtypes) == 3 &amp;&amp; istopfunction(f, :(&gt;:))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-779"></a>779</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # mark issupertype as a exact alias for issubtype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-780"></a>780</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # swap T1 and T2 arguments and call &lt;:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-781"></a>781</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if length(fargs) == 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-782"></a>782</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            fargs = Any[&lt;:, fargs[3], fargs[2]]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-783"></a>783</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-784"></a>784</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            fargs = ()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-785"></a>785</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-786"></a>786</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        argtypes = Any[typeof(&lt;:), argtypes[3], argtypes[2]]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-787"></a>787</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rty = abstract_call(&lt;:, fargs, argtypes, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-788"></a>788</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return rty
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-789"></a>789</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif length(argtypes) == 2 &amp;&amp; isa(argtypes[2], Const) &amp;&amp; isa(argtypes[2].val, SimpleVector) &amp;&amp; istopfunction(f, :length)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-790"></a>790</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # mark length(::SimpleVector) as @pure
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-791"></a>791</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Const(length(argtypes[2].val))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-792"></a>792</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif length(argtypes) == 3 &amp;&amp; isa(argtypes[2], Const) &amp;&amp; isa(argtypes[3], Const) &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-793"></a>793</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isa(argtypes[2].val, SimpleVector) &amp;&amp; isa(argtypes[3].val, Int) &amp;&amp; istopfunction(f, :getindex)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-794"></a>794</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # mark getindex(::SimpleVector, i::Int) as @pure
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-795"></a>795</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        svecval = argtypes[2].val::SimpleVector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-796"></a>796</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        idx = argtypes[3].val::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-797"></a>797</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if 1 &lt;= idx &lt;= length(svecval) &amp;&amp; isassigned(svecval, idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-798"></a>798</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Const(getindex(svecval, idx))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-799"></a>799</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-800"></a>800</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif length(argtypes) == 2 &amp;&amp; istopfunction(f, :typename)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-801"></a>801</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return typename_static(argtypes[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-802"></a>802</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-803"></a>803</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-804"></a>804</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    atype = argtypes_to_type(argtypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-805"></a>805</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = pure_eval_call(f, argtypes, atype, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-806"></a>806</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t !== false &amp;&amp; return t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-807"></a>807</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-808"></a>808</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if istopfunction(f, :typejoin) || f === return_type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-809"></a>809</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Type # don&#39;t try to infer these function edges directly -- it won&#39;t actually come up with anything useful
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-810"></a>810</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-811"></a>811</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-812"></a>812</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if sv.params.inlining
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-813"></a>813</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # need to model the special inliner for ^
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-814"></a>814</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # to ensure we have added the same edge
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-815"></a>815</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isdefined(Main, :Base) &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-816"></a>816</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ((isdefined(Main.Base, :^) &amp;&amp; f === Main.Base.:^) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-817"></a>817</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             (isdefined(Main.Base, :.^) &amp;&amp; f === Main.Base.:.^)) &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-818"></a>818</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            length(argtypes) == 3 &amp;&amp; (argtypes[3] ⊑ Int32 || argtypes[3] ⊑ Int64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-819"></a>819</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-820"></a>820</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            a1 = argtypes[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-821"></a>821</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            basenumtype = Union{CoreNumType, Main.Base.ComplexF32, Main.Base.ComplexF64, Main.Base.Rational}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-822"></a>822</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if a1 ⊑ basenumtype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-823"></a>823</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ftimes = Main.Base.:*
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-824"></a>824</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ta1 = widenconst(a1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-825"></a>825</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                abstract_call_gf_by_type(ftimes, Any[ftimes, a1, a1], Tuple{typeof(ftimes), ta1, ta1}, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-826"></a>826</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-827"></a>827</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-828"></a>828</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-829"></a>829</td>
+          <td></td>
+          <td>4 (10.81%)</td>
+          <td>
+            <div class="callees">
+              2 (50.00%)
+              samples spent calling
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_call_gf_by_type-19">abstract_call_gf_by_type</a><br />
+            </div>
+            <span class="code">    return abstract_call_gf_by_type(f, argtypes, atype, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-830"></a>830</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-831"></a>831</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-832"></a>832</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># wrapper around `abstract_call` for first computing if `f` is available
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-833"></a>833</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abstract_eval_call(fargs::Union{Tuple{},Vector{Any}}, argtypes::Vector{Any}, vtypes::VarTable, sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-834"></a>834</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_eval_call-834"></a>
+              2 (5.41%) samples spent in abstract_eval_call<br />
+              0 (ex.),
+              2 (100.00%) (incl.)
+              when called from
+              abstract_eval
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#Labstractinterpretation-jl-35ae29f448859d864444-line.html-943">line 943</a><br />
+            </div>
+            <span class="code">    #print(&quot;call &quot;, e.args[1], argtypes, &quot;\n\n&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-835"></a>835</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in argtypes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-836"></a>836</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x === Bottom &amp;&amp; return Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-837"></a>837</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-838"></a>838</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ft = argtypes[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-839"></a>839</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(ft, Const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-840"></a>840</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        f = ft.val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-841"></a>841</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isconstType(ft)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-842"></a>842</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        f = ft.parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-843"></a>843</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(ft, DataType) &amp;&amp; isdefined(ft, :instance)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-844"></a>844</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        f = ft.instance
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-845"></a>845</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-846"></a>846</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 2:(length(argtypes) - 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-847"></a>847</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isvarargtype(argtypes[i])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-848"></a>848</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-849"></a>849</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-850"></a>850</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-851"></a>851</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # non-constant function, but the number of arguments is known
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-852"></a>852</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # and the ft is not a Builtin or IntrinsicFunction
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-853"></a>853</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if typeintersect(widenconst(ft), Builtin) != Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-854"></a>854</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-855"></a>855</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-856"></a>856</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return abstract_call_gf_by_type(nothing, argtypes, argtypes_to_type(argtypes), sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-857"></a>857</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-858"></a>858</td>
+          <td></td>
+          <td>4 (10.81%)</td>
+          <td>
+            <div class="callees">
+              2 (50.00%)
+              samples spent calling
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_call-583">abstract_call</a><br />
+            </div>
+            <span class="code">    return abstract_call(f, fargs, argtypes, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-859"></a>859</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-860"></a>860</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-861"></a>861</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function sp_type_rewrap(@nospecialize(T), linfo::MethodInstance, isreturn::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-862"></a>862</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isref = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-863"></a>863</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if T === Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-864"></a>864</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-865"></a>865</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(T, Type)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-866"></a>866</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(T, DataType) &amp;&amp; (T::DataType).name === _REF_NAME
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-867"></a>867</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isref = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-868"></a>868</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            T = T.parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-869"></a>869</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isreturn &amp;&amp; T === Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-870"></a>870</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return Bottom # a return type of Ref{Any} is invalid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-871"></a>871</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-872"></a>872</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-873"></a>873</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-874"></a>874</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-875"></a>875</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-876"></a>876</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(linfo.def, Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-877"></a>877</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        spsig = linfo.def.sig
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-878"></a>878</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(spsig, UnionAll)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-879"></a>879</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !isempty(linfo.sparam_vals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-880"></a>880</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                env = pointer_from_objref(linfo.sparam_vals) + sizeof(Ptr{Cvoid})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-881"></a>881</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                T = ccall(:jl_instantiate_type_in_env, Any, (Any, Any, Ptr{Any}), T, spsig, env)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-882"></a>882</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                isref &amp;&amp; isreturn &amp;&amp; T === Any &amp;&amp; return Bottom # catch invalid return Ref{T} where T = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-883"></a>883</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                for v in linfo.sparam_vals
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-884"></a>884</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if isa(v, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-885"></a>885</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        T = UnionAll(v, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-886"></a>886</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-887"></a>887</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-888"></a>888</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-889"></a>889</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                T = rewrap_unionall(T, spsig)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-890"></a>890</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-891"></a>891</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-892"></a>892</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-893"></a>893</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while isa(T, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-894"></a>894</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        T = T.ub
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-895"></a>895</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-896"></a>896</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-897"></a>897</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-898"></a>898</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-899"></a>899</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abstract_eval_cfunction(e::Expr, vtypes::VarTable, sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-900"></a>900</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f = abstract_eval(e.args[2], vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-901"></a>901</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # rt = sp_type_rewrap(e.args[3], sv.linfo, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-902"></a>902</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    at = Any[ sp_type_rewrap(argt, sv.linfo, false) for argt in e.args[4]::SimpleVector ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-903"></a>903</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pushfirst!(at, f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-904"></a>904</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # this may be the wrong world for the call,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-905"></a>905</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # but some of the result is likely to be valid anyways
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-906"></a>906</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # and that may help generate better codegen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-907"></a>907</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    abstract_eval_call((), at, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-908"></a>908</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-909"></a>909</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-910"></a>910</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-911"></a>911</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># convert an inferred static parameter value to the inferred type of a static_parameter expression
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-912"></a>912</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function sparam_type(@nospecialize(val))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-913"></a>913</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(val, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-914"></a>914</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if Any &lt;: val.ub
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-915"></a>915</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # static param bound to typevar
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-916"></a>916</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # if the tvar is not known to refer to anything more specific than Any,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-917"></a>917</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # the static param might actually be an integer, symbol, etc.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-918"></a>918</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-919"></a>919</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-920"></a>920</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return UnionAll(val, Type{val})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-921"></a>921</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-922"></a>922</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-923"></a>923</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return AbstractEvalConstant(val)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-924"></a>924</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-925"></a>925</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-926"></a>926</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_eval-926"></a>
+              2 (5.41%) samples spent in abstract_eval<br />
+              0 (ex.),
+              1 (50.00%) (incl.)
+              when called from
+              abstract_eval
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#Labstractinterpretation-jl-35ae29f448859d864444-line.html-942">line 942</a><br />
+              0 (ex.),
+              2 (100.00%) (incl.)
+              when called from
+              typeinf_local
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#Labstractinterpretation-jl-35ae29f448859d864444-line.html-1169">line 1169</a><br />
+            </div>
+            <span class="code">function abstract_eval(@nospecialize(e), vtypes::VarTable, sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-927"></a>927</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(e, QuoteNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-928"></a>928</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return AbstractEvalConstant((e::QuoteNode).value)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-929"></a>929</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(e, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-930"></a>930</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return abstract_eval_ssavalue(e::SSAValue, sv.src)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-931"></a>931</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(e, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-932"></a>932</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return vtypes[slot_id(e)].typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-933"></a>933</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(e, GlobalRef)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-934"></a>934</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_eval_global-1024">abstract_eval_global</a><br />
+            </div>
+            <span class="code">        return abstract_eval_global(e.mod, e.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-935"></a>935</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-936"></a>936</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-937"></a>937</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isa(e, Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-938"></a>938</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return AbstractEvalConstant(e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-939"></a>939</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-940"></a>940</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    e = e::Expr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-941"></a>941</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if e.head === :call
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-942"></a>942</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_eval-926">abstract_eval</a><br />
+            </div>
+            <span class="code">        argtypes = Any[ abstract_eval(a, vtypes, sv) for a in e.args ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-943"></a>943</td>
+          <td></td>
+          <td>4 (10.81%)</td>
+          <td>
+            <div class="callees">
+              2 (50.00%)
+              samples spent calling
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_eval_call-834">abstract_eval_call</a><br />
+            </div>
+            <span class="code">        t = abstract_eval_call(e.args, argtypes, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-944"></a>944</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e.head === :new
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-945"></a>945</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = instanceof_tfunc(abstract_eval(e.args[1], vtypes, sv))[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-946"></a>946</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 2:length(e.args)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-947"></a>947</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if abstract_eval(e.args[i], vtypes, sv) === Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-948"></a>948</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                rt = Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-949"></a>949</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-950"></a>950</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-951"></a>951</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e.head === :&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-952"></a>952</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        abstract_eval(e.args[1], vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-953"></a>953</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-954"></a>954</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e.head === :foreigncall
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-955"></a>955</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        abstract_eval(e.args[1], vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-956"></a>956</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = sp_type_rewrap(e.args[2], sv.linfo, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-957"></a>957</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 3:length(e.args)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-958"></a>958</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if abstract_eval(e.args[i], vtypes, sv) === Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-959"></a>959</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                t = Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-960"></a>960</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-961"></a>961</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-962"></a>962</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e.head === :cfunction
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-963"></a>963</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = e.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-964"></a>964</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isa(t, Type) || (t = Any)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-965"></a>965</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        abstract_eval_cfunction(e, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-966"></a>966</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e.head === :static_parameter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-967"></a>967</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n = e.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-968"></a>968</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-969"></a>969</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if 1 &lt;= n &lt;= length(sv.sp)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-970"></a>970</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            t = sparam_type(sv.sp[n])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-971"></a>971</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-972"></a>972</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e.head === :method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-973"></a>973</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = (length(e.args) == 1) ? Any : Nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-974"></a>974</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e.head === :copyast
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-975"></a>975</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = abstract_eval(e.args[1], vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-976"></a>976</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if t isa Const &amp;&amp; t.val isa Expr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-977"></a>977</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # `copyast` makes copies of Exprs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-978"></a>978</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            t = Expr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-979"></a>979</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-980"></a>980</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e.head === :invoke
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-981"></a>981</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;type inference data-flow error: tried to double infer a function&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-982"></a>982</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e.head === :boundscheck
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-983"></a>983</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-984"></a>984</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e.head === :isdefined
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-985"></a>985</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sym = e.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-986"></a>986</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-987"></a>987</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(sym, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-988"></a>988</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            vtyp = vtypes[slot_id(sym)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-989"></a>989</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if vtyp.typ === Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-990"></a>990</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                t = Const(false) # never assigned previously
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-991"></a>991</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif !vtyp.undef
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-992"></a>992</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                t = Const(true) # definitely assigned previously
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-993"></a>993</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-994"></a>994</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(sym, Symbol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-995"></a>995</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isdefined(sv.mod, sym.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-996"></a>996</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                t = Const(true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-997"></a>997</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-998"></a>998</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(sym, GlobalRef)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-999"></a>999</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isdefined(sym.mod, sym.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1000"></a>1000</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                t = Const(true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1001"></a>1001</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1002"></a>1002</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(sym, Expr) &amp;&amp; sym.head === :static_parameter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1003"></a>1003</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            n = sym.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1004"></a>1004</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if 1 &lt;= n &lt;= length(sv.sp)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1005"></a>1005</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                val = sv.sp[n]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1006"></a>1006</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if !isa(val, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1007"></a>1007</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    t = Const(true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1008"></a>1008</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1009"></a>1009</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1010"></a>1010</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1011"></a>1011</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1012"></a>1012</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1013"></a>1013</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1014"></a>1014</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert !isa(t, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1015"></a>1015</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(t, DataType) &amp;&amp; isdefined(t, :instance)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1016"></a>1016</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # replace singleton types with their equivalent Const object
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1017"></a>1017</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = Const(t.instance)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1018"></a>1018</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1019"></a>1019</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1020"></a>1020</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1021"></a>1021</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1022"></a>1022</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abstract_eval_global(M::Module, s::Symbol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1023"></a>1023</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isdefined(M,s) &amp;&amp; isconst(M,s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1024"></a>1024</td>
+          <td>1 (2.70%)</td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_eval_global-1024"></a>
+              1 (2.70%) samples spent in abstract_eval_global<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              abstract_eval
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#Labstractinterpretation-jl-35ae29f448859d864444-line.html-934">line 934</a><br />
+            </div>
+            <span class="code">        return AbstractEvalConstant(getfield(M,s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1025"></a>1025</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1026"></a>1026</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1027"></a>1027</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1028"></a>1028</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1029"></a>1029</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abstract_eval_ssavalue(s::SSAValue, src::CodeInfo)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1030"></a>1030</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typ = src.ssavaluetypes[s.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1031"></a>1031</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if typ === NOT_FOUND
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1032"></a>1032</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1033"></a>1033</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1034"></a>1034</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1035"></a>1035</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1036"></a>1036</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1037"></a>1037</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># determine whether `ex` abstractly evals to constant `c`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1038"></a>1038</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abstract_evals_to_constant(@nospecialize(ex), @nospecialize(c), vtypes::VarTable, sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1039"></a>1039</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    av = abstract_eval(ex, vtypes, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1040"></a>1040</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return isa(av, Const) &amp;&amp; av.val === c
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1041"></a>1041</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1042"></a>1042</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1043"></a>1043</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># make as much progress on `frame` as possible (without handling cycles)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1044"></a>1044</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-typeinf_local-1044"></a>
+              2 (5.41%) samples spent in typeinf_local<br />
+              0 (ex.),
+              2 (100.00%) (incl.)
+              when called from
+              typeinf_nocycle
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#Labstractinterpretation-jl-35ae29f448859d864444-line.html-1225">line 1225</a><br />
+            </div>
+            <span class="code">function typeinf_local(frame::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1045"></a>1045</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert !frame.inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1046"></a>1046</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame.dont_work_on_me = true # mark that this function is currently on the stack
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1047"></a>1047</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    W = frame.ip
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1048"></a>1048</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = frame.stmt_types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1049"></a>1049</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = frame.nstmts
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1050"></a>1050</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while frame.pc´´ &lt;= n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1051"></a>1051</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # make progress on the active ip set
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1052"></a>1052</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        local pc::Int = frame.pc´´ # current program-counter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1053"></a>1053</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while true # inner loop optimizes the common case where it can run straight from pc to pc + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1054"></a>1054</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            #print(pc,&quot;: &quot;,s[pc],&quot;\n&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1055"></a>1055</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            local pc´::Int = pc + 1 # next program-counter (after executing instruction)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1056"></a>1056</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if pc == frame.pc´´
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1057"></a>1057</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # need to update pc´´ to point at the new lowest instruction in W
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1058"></a>1058</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                min_pc = _bits_findnext(W.bits, pc + 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1059"></a>1059</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                frame.pc´´ = min_pc == -1 ? n + 1 : min_pc
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1060"></a>1060</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1061"></a>1061</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            delete!(W, pc)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1062"></a>1062</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            frame.currpc = pc
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1063"></a>1063</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            frame.cur_hand = frame.handler_at[pc]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1064"></a>1064</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            frame.stmt_edges[pc] === () || empty!(frame.stmt_edges[pc])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1065"></a>1065</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stmt = frame.src.code[pc]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1066"></a>1066</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            changes = s[pc]::VarTable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1067"></a>1067</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            t = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1068"></a>1068</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1069"></a>1069</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            hd = isa(stmt, Expr) ? stmt.head : nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1070"></a>1070</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1071"></a>1071</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(stmt, NewvarNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1072"></a>1072</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                sn = slot_id(stmt.slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1073"></a>1073</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                changes[sn] = VarState(Bottom, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1074"></a>1074</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif isa(stmt, GotoNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1075"></a>1075</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                pc´ = (stmt::GotoNode).label
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1076"></a>1076</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif hd === :gotoifnot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1077"></a>1077</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                condt = abstract_eval(stmt.args[1], s[pc], frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1078"></a>1078</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if condt === Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1079"></a>1079</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1080"></a>1080</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1081"></a>1081</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                condval = maybe_extract_const_bool(condt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1082"></a>1082</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                l = stmt.args[2]::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1083"></a>1083</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # constant conditions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1084"></a>1084</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if condval === true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1085"></a>1085</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif condval === false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1086"></a>1086</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    pc´ = l
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1087"></a>1087</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1088"></a>1088</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # general case
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1089"></a>1089</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    frame.handler_at[l] = frame.cur_hand
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1090"></a>1090</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    changes_else = changes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1091"></a>1091</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if isa(condt, Conditional)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1092"></a>1092</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        if condt.elsetype !== Any &amp;&amp; condt.elsetype !== changes[slot_id(condt.var)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1093"></a>1093</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            changes_else = StateUpdate(condt.var, VarState(condt.elsetype, false), changes_else)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1094"></a>1094</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1095"></a>1095</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        if condt.vtype !== Any &amp;&amp; condt.vtype !== changes[slot_id(condt.var)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1096"></a>1096</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            changes = StateUpdate(condt.var, VarState(condt.vtype, false), changes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1097"></a>1097</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1098"></a>1098</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1099"></a>1099</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    newstate_else = stupdate!(s[l], changes_else)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1100"></a>1100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if newstate_else !== false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1101"></a>1101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        # add else branch to active IP list
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1102"></a>1102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        if l &lt; frame.pc´´
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1103"></a>1103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            frame.pc´´ = l
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1104"></a>1104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1105"></a>1105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        push!(W, l)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1106"></a>1106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        s[l] = newstate_else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1107"></a>1107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1108"></a>1108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1109"></a>1109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif hd === :return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1110"></a>1110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                pc´ = n + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1111"></a>1111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                rt = maybe_widen_conditional(abstract_eval(stmt.args[1], s[pc], frame))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1112"></a>1112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if !isa(rt, Const) &amp;&amp; !isa(rt, Type)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1113"></a>1113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # only propagate information we know we can store
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1114"></a>1114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # and is valid inter-procedurally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1115"></a>1115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    rt = widenconst(rt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1116"></a>1116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1117"></a>1117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if tchanged(rt, frame.bestguess)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1118"></a>1118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # new (wider) return type for frame
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1119"></a>1119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    frame.bestguess = tmerge(frame.bestguess, rt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1120"></a>1120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    for (caller, caller_pc) in frame.cycle_backedges
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1121"></a>1121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        # notify backedges of updated type information
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1122"></a>1122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        typeassert(caller.stmt_types[caller_pc], VarTable) # we must have visited this statement before
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1123"></a>1123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        if !(caller.src.ssavaluetypes[caller_pc] === Any)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1124"></a>1124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            # no reason to revisit if that call-site doesn&#39;t affect the final result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1125"></a>1125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            if caller_pc &lt; caller.pc´´
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1126"></a>1126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                caller.pc´´ = caller_pc
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1127"></a>1127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1128"></a>1128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            push!(caller.ip, caller_pc)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1129"></a>1129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1130"></a>1130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1131"></a>1131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1132"></a>1132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif hd === :enter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1133"></a>1133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                l = stmt.args[1]::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1134"></a>1134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                frame.cur_hand = (l, frame.cur_hand)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1135"></a>1135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # propagate type info to exception handler
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1136"></a>1136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                l = frame.cur_hand[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1137"></a>1137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                old = s[l]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1138"></a>1138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                new = s[pc]::Array{Any,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1139"></a>1139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                newstate_catch = stupdate!(old, new)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1140"></a>1140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if newstate_catch !== false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1141"></a>1141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if l &lt; frame.pc´´
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1142"></a>1142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        frame.pc´´ = l
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1143"></a>1143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1144"></a>1144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    push!(W, l)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1145"></a>1145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    s[l] = newstate_catch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1146"></a>1146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1147"></a>1147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                typeassert(s[l], VarTable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1148"></a>1148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                frame.handler_at[l] = frame.cur_hand
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1149"></a>1149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif hd === :leave
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1150"></a>1150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                for i = 1:((stmt.args[1])::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1151"></a>1151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    frame.cur_hand = frame.cur_hand[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1152"></a>1152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1153"></a>1153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1154"></a>1154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if hd === :(=)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1155"></a>1155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    t = abstract_eval(stmt.args[2], changes, frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1156"></a>1156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    t === Bottom &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1157"></a>1157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    frame.src.ssavaluetypes[pc] = t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1158"></a>1158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    lhs = stmt.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1159"></a>1159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if isa(lhs, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1160"></a>1160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        changes = StateUpdate(lhs, VarState(t, false), changes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1161"></a>1161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1162"></a>1162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif hd === :method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1163"></a>1163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    fname = stmt.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1164"></a>1164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if isa(fname, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1165"></a>1165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        changes = StateUpdate(fname, VarState(Any, false), changes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1166"></a>1166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1167"></a>1167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif hd === :inbounds || hd === :meta || hd === :simdloop
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1168"></a>1168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1169"></a>1169</td>
+          <td></td>
+          <td>5 (13.51%)</td>
+          <td>
+            <div class="callees">
+              2 (40.00%)
+              samples spent calling
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-abstract_eval-926">abstract_eval</a><br />
+            </div>
+            <span class="code">                    t = abstract_eval(stmt, changes, frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1170"></a>1170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    t === Bottom &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1171"></a>1171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if !isempty(frame.ssavalue_uses[pc])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1172"></a>1172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        record_ssa_assign(pc, t, frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1173"></a>1173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1174"></a>1174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        frame.src.ssavaluetypes[pc] = t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1175"></a>1175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1176"></a>1176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1177"></a>1177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if frame.cur_hand !== () &amp;&amp; isa(changes, StateUpdate)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1178"></a>1178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # propagate new type info to exception handler
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1179"></a>1179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # the handling for Expr(:enter) propagates all changes from before the try/catch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1180"></a>1180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # so this only needs to propagate any changes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1181"></a>1181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    l = frame.cur_hand[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1182"></a>1182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if stupdate1!(s[l]::VarTable, changes::StateUpdate) !== false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1183"></a>1183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        if l &lt; frame.pc´´
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1184"></a>1184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            frame.pc´´ = l
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1185"></a>1185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1186"></a>1186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        push!(W, l)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1187"></a>1187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1188"></a>1188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1189"></a>1189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1190"></a>1190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1191"></a>1191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if t === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1192"></a>1192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # mark other reached expressions as `Any` to indicate they don&#39;t throw
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1193"></a>1193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                frame.src.ssavaluetypes[pc] = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1194"></a>1194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1195"></a>1195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1196"></a>1196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            pc´ &gt; n &amp;&amp; break # can&#39;t proceed with the fast-path fall-through
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1197"></a>1197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            frame.handler_at[pc´] = frame.cur_hand
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1198"></a>1198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            newstate = stupdate!(s[pc´], changes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1199"></a>1199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(stmt, GotoNode) &amp;&amp; frame.pc´´ &lt; pc´
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1200"></a>1200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # if we are processing a goto node anyways,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1201"></a>1201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # (such as a terminator for a loop, if-else, or try block),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1202"></a>1202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # consider whether we should jump to an older backedge first,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1203"></a>1203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # to try to traverse the statements in approximate dominator order
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1204"></a>1204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if newstate !== false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1205"></a>1205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    s[pc´] = newstate
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1206"></a>1206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1207"></a>1207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(W, pc´)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1208"></a>1208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                pc = frame.pc´´
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1209"></a>1209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif newstate !== false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1210"></a>1210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                s[pc´] = newstate
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1211"></a>1211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                pc = pc´
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1212"></a>1212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif pc´ in W
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1213"></a>1213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                pc = pc´
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1214"></a>1214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1215"></a>1215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1216"></a>1216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1217"></a>1217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1218"></a>1218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1219"></a>1219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame.dont_work_on_me = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1220"></a>1220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1221"></a>1221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1222"></a>1222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1223"></a>1223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># make as much progress on `frame` as possible (by handling cycles)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1224"></a>1224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-typeinf_nocycle-1224"></a>
+              2 (5.41%) samples spent in typeinf_nocycle<br />
+              0 (ex.),
+              2 (100.00%) (incl.)
+              when called from
+              typeinf
+              <a href="typeinfer-jl-14b2448d998dfdb61460-line.html#Ltypeinfer-jl-14b2448d998dfdb61460-line.html-15">line 15</a><br />
+            </div>
+            <span class="code">function typeinf_nocycle(frame::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1225"></a>1225</td>
+          <td></td>
+          <td>5 (13.51%)</td>
+          <td>
+            <div class="callees">
+              2 (40.00%)
+              samples spent calling
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-typeinf_local-1044">typeinf_local</a><br />
+            </div>
+            <span class="code">    typeinf_local(frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1226"></a>1226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1227"></a>1227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # If the current frame is part of a cycle, solve the cycle before finishing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1228"></a>1228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    no_active_ips_in_callers = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1229"></a>1229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !no_active_ips_in_callers
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1230"></a>1230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        no_active_ips_in_callers = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1231"></a>1231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for caller in frame.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1232"></a>1232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            caller.dont_work_on_me &amp;&amp; return false # cycle is above us on the stack
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1233"></a>1233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if caller.pc´´ &lt;= caller.nstmts # equivalent to `isempty(caller.ip)`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1234"></a>1234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # Note that `typeinf_local(caller)` can potentially modify the other frames
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1235"></a>1235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # `frame.callers_in_cycle`, which is why making incremental progress requires the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1236"></a>1236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # outer while loop.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1237"></a>1237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                typeinf_local(caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1238"></a>1238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                no_active_ips_in_callers = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1239"></a>1239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1240"></a>1240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if caller.min_valid &lt; frame.min_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1241"></a>1241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                caller.min_valid = frame.min_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1242"></a>1242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1243"></a>1243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if caller.max_valid &gt; frame.max_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1244"></a>1244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                caller.max_valid = frame.max_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1245"></a>1245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1246"></a>1246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1247"></a>1247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1248"></a>1248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Labstractinterpretation-jl-35ae29f448859d864444-line.html-1249"></a>1249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/all_stacks_by_time.calls b/profiling/statprof/all_stacks_by_time.calls
new file mode 100644
index 0000000000000000000000000000000000000000..5f0ceeebdcc24b324f038a03ae8ea0360ca7014e
--- /dev/null
+++ b/profiling/statprof/all_stacks_by_time.calls
@@ -0,0 +1,26 @@
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:digitgen:64;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:+:803;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:+:53 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:165;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./gcutils.jl:write:163;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:unsafe_write:401;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:ensureroom:293 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111 5
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:digitgen:64;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:<:427 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;nothing:Type;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:#IOBuffer#302:111 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;nothing:Type;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:#IOBuffer#302:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:StringVector:31;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:_string_n:60 5
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/bignums.jl:dividemodulointbignum!:420 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./array.jl:resize!:1011;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./array.jl:_deleteend!:823 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:Type:39 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:digitgen:64 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:tostr_sizehint:106;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:lastindex:110 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:digitgen:64;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:div 2
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl:binexp_cache:253;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:+:53 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:digitgen:64;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl:>>:603;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:>>:448;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:>>:442 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:166;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./gcutils.jl:write:163;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:unsafe_write:401 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl:normalizedbound:120;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl:normalize:48;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:==:432;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./promotion.jl:==:425 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:_thisind_str:113 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;nothing:Type;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:#IOBuffer#302:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:StringVector:71 6
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:digitgen:64;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:*:54 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./coreio.jl:print:2;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./gcutils.jl:print:165;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./stream.jl:unsafe_write:828;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./stream.jl:uv_write:773;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./event.jl:wait:243;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./libuv.jl:process_events:98 3
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/bignums.jl:compare:474 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./io.jl:unsafe_write:509;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:unsafe_write:401;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl:>:286;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:<:49 1
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317;/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:digitgen:64;/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:roundweed:34 1
diff --git a/profiling/statprof/array-jl-e331915c4fb281d94775-line.html b/profiling/statprof/array-jl-e331915c4fb281d94775-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..781c135f750d2288ef649e6ab0c295b03a8c99ab
--- /dev/null
+++ b/profiling/statprof/array-jl-e331915c4fb281d94775-line.html
@@ -0,0 +1,24072 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./array.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## array.jl: Dense arrays
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    DimensionMismatch([msg])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The objects called do not have matching dimensionality. Optional argument `msg` is a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">descriptive error string.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct DimensionMismatch &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    msg::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">DimensionMismatch() = DimensionMismatch(&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Type aliases for convenience ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    AbstractVector{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Supertype for one-dimensional arrays (or array-like types) with
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">elements of type `T`. Alias for [`AbstractArray{T,1}`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const AbstractVector{T} = AbstractArray{T,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    AbstractMatrix{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Supertype for two-dimensional arrays (or array-like types) with
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">elements of type `T`. Alias for [`AbstractArray{T,2}`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const AbstractMatrix{T} = AbstractArray{T,2}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    AbstractVecOrMat{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Union type of [`AbstractVector{T}`](@ref) and [`AbstractMatrix{T}`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const AbstractVecOrMat{T} = Union{AbstractVector{T}, AbstractMatrix{T}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const RangeIndex = Union{Int, AbstractRange{Int}, AbstractUnitRange{Int}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DimOrInd = Union{Integer, AbstractUnitRange}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const IntOrInd = Union{Int, AbstractUnitRange}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DimsOrInds{N} = NTuple{N,DimOrInd}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const NeedsShaping = Union{Tuple{Integer,Vararg{Integer}}, Tuple{OneTo,Vararg{OneTo}}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Array{T,N} &lt;: AbstractArray{T,N}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`N`-dimensional dense array with elements of type `T`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Vector{T} &lt;: AbstractVector{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">One-dimensional dense array with elements of type `T`, often used to represent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a mathematical vector. Alias for [`Array{T,1}`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const Vector{T} = Array{T,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Matrix{T} &lt;: AbstractMatrix{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Two-dimensional dense array with elements of type `T`, often used to represent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a mathematical matrix. Alias for [`Array{T,2}`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const Matrix{T} = Array{T,2}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    VecOrMat{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Union type of [`Vector{T}`](@ref) and [`Matrix{T}`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const VecOrMat{T} = Union{Vector{T}, Matrix{T}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    DenseArray{T, N} &lt;: AbstractArray{T,N}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`N`-dimensional dense array with elements of type `T`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The elements of a dense array are stored contiguously in memory.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">DenseArray
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    DenseVector{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">One-dimensional [`DenseArray`](@ref) with elements of type `T`. Alias for `DenseArray{T,1}`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DenseVector{T} = DenseArray{T,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    DenseMatrix{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Two-dimensional [`DenseArray`](@ref) with elements of type `T`. Alias for `DenseArray{T,2}`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DenseMatrix{T} = DenseArray{T,2}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    DenseVecOrMat{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Union type of [`DenseVector{T}`](@ref) and [`DenseMatrix{T}`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DenseVecOrMat{T} = Union{DenseVector{T}, DenseMatrix{T}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Basic functions ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eltype(type)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine the type of the elements generated by iterating a collection of the given `type`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">For dictionary types, this will be a `Pair{KeyType,ValType}`. The definition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`eltype(x) = eltype(typeof(x))` is provided for convenience so that instances can be passed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">instead of types. However the form that accepts a type argument should be defined for new
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">types.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; eltype(fill(1f0, (2,2)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Float32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; eltype(fill(0x1, (2,2)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">UInt8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eltype(::Type) = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eltype(::Type{Bottom}) = throw(ArgumentError(&quot;Union{} does not have elements&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eltype(x) = eltype(typeof(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">import Core: arraysize, arrayset, arrayref
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">vect() = Vector{Any}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">vect(X::T...) where {T} = T[ X[i] for i = 1:length(X) ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    vect(X...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a [`Vector`](@ref) with element type computed from the `promote_typeof` of the argument,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">containing the argument list.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a = Base.vect(UInt8(1), 2.5, 1//2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Float64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2.5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 0.5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function vect(X...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    T = promote_typeof(X...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #T[ X[i] for i=1:length(X) ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # TODO: this is currently much faster. should figure out why. not clear.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return copyto!(Vector{T}(undef, length(X)), X)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">size(a::Array, d) = arraysize(a, d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">size(a::Vector) = (arraysize(a,1),)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">size(a::Matrix) = (arraysize(a,1), arraysize(a,2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">size(a::Array{&lt;:Any,N}) where {N} = (@_inline_meta; ntuple(M -&gt; size(a, M), Val(N)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">asize_from(a::Array, n) = n &gt; ndims(a) ? () : (arraysize(a,n), asize_from(a, n+1)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.isbitsunion(::Type{T})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return whether a type is an &quot;is-bits&quot; Union type, meaning each type included in a Union is [`isbitstype`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.isbitsunion(Union{Float64, UInt8})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.isbitsunion(Union{Float64, String})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isbitsunion(u::Union) = ccall(:jl_array_store_unboxed, Cint, (Any,), u) != Cint(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isbitsunion(x) = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.bitsunionsize(U::Union)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">For a `Union` of [`isbitstype`](@ref) types, return the size of the largest type; assumes `Base.isbitsunion(U) == true`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.bitsunionsize(Union{Float64, UInt8})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0x0000000000000008
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.bitsunionsize(Union{Float64, UInt8, Int128})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0x0000000000000010
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function bitsunionsize(u::Union)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sz = Ref{Csize_t}(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    algn = Ref{Csize_t}(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert ccall(:jl_islayout_inline, Cint, (Any, Ptr{Csize_t}, Ptr{Csize_t}), u, sz, algn) != Cint(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return sz[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">length(a::Array) = arraylen(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">elsize(::Type{&lt;:Array{T}}) where {T} = isbitstype(T) ? sizeof(T) : (isbitsunion(T) ? bitsunionsize(T) : sizeof(Ptr))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">sizeof(a::Array) = Core.sizeof(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isassigned(a::Array, i::Int...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ii = (_sub2ind(size(a), i...) % UInt) - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck ii &lt; length(a) % UInt || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_array_isassigned, Cint, (Any, UInt), a, ii) == 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## copy ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsafe_copyto!(dest::Ptr{T}, src::Ptr{T}, N)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Copy `N` elements from a source pointer to a destination, with no checking. The size of an
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">element is determined by the type of the pointers.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The `unsafe` prefix on this function indicates that no validation is performed on the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">pointers `dest` and `src` to ensure that they are valid. Incorrect usage may corrupt or
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">segfault your program, in the same manner as C.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unsafe_copyto!(dest::Ptr{T}, src::Ptr{T}, n) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Do not use this to copy data between pointer arrays.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # It can&#39;t be made safe no matter how carefully you checked.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:memmove, Ptr{Cvoid}, (Ptr{Cvoid}, Ptr{Cvoid}, UInt),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">          dest, src, n*sizeof(T))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return dest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsafe_copyto!(dest::Array, do, src::Array, so, N)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Copy `N` elements from a source array to a destination, starting at offset `so` in the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">source and `do` in the destination (1-indexed).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The `unsafe` prefix on this function indicates that no validation is performed to ensure
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">that N is inbounds on either array. Incorrect usage may corrupt or segfault your program, in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the same manner as C.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unsafe_copyto!(dest::Array{T}, doffs, src::Array{T}, soffs, n) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t1 = @_gc_preserve_begin dest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t2 = @_gc_preserve_begin src
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isbitstype(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_copyto!(pointer(dest, doffs), pointer(src, soffs), n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isbitsunion(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:memmove, Ptr{Cvoid}, (Ptr{Cvoid}, Ptr{Cvoid}, UInt),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              pointer(dest, doffs), pointer(src, soffs), n * Base.bitsunionsize(T))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # copy selector bytes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:memmove, Ptr{Cvoid}, (Ptr{Cvoid}, Ptr{Cvoid}, UInt),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              ccall(:jl_array_typetagdata, Ptr{UInt8}, (Any,), dest) + doffs - 1,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              ccall(:jl_array_typetagdata, Ptr{UInt8}, (Any,), src) + soffs - 1,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:jl_array_ptr_copy, Cvoid, (Any, Ptr{Cvoid}, Any, Ptr{Cvoid}, Int),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              dest, pointer(dest, doffs), src, pointer(src, soffs), n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_gc_preserve_end t2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_gc_preserve_end t1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return dest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    copyto!(dest, do, src, so, N)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Copy `N` elements from collection `src` starting at offset `so`, to array `dest` starting at
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">offset `do`. Return `dest`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function copyto!(dest::Array{T}, doffs::Integer, src::Array{T}, soffs::Integer, n::Integer) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n == 0 &amp;&amp; return dest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n &gt; 0 || throw(ArgumentError(string(&quot;tried to copy n=&quot;, n, &quot; elements, but n should be nonnegative&quot;)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if soffs &lt; 1 || doffs &lt; 1 || soffs+n-1 &gt; length(src) || doffs+n-1 &gt; length(dest)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsafe_copyto!(dest, doffs, src, soffs, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copyto!(dest::Array{T}, src::Array{T}) where {T} = copyto!(dest, 1, src, 1, length(src))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># N.B: The generic definition in multidimensional.jl covers, this, this is just here
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># for bootstrapping purposes.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fill!(dest::Array{T}, x) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_noinline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    xT = convert(T, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i in 1:length(dest)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds dest[i] = xT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    copy(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a shallow copy of `x`: the outer structure is copied, but not all internal values.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">For example, copying an array produces a new array with identically-same elements as the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">original.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copy
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copy(a::T) where {T&lt;:Array} = ccall(:jl_array_copy, Ref{T}, (Any,), a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># reshaping to same # of dimensions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function reshape(a::Array{T,N}, dims::NTuple{N,Int}) where T where N
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if prod(dims) != length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _throw_dmrsa(dims, length(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if dims == size(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_reshape_array, Array{T,N}, (Any, Any, Any), Array{T,N}, a, dims)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># reshaping to different # of dimensions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function reshape(a::Array{T}, dims::NTuple{N,Int}) where T where N
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if prod(dims) != length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _throw_dmrsa(dims, length(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_reshape_array, Array{T,N}, (Any, Any, Any), Array{T,N}, a, dims)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _throw_dmrsa(dims, len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_noinline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    throw(DimensionMismatch(&quot;new dimensions $(dims) must be consistent with array size $len&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Constructors ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">similar(a::Array{T,1}) where {T}                    = Vector{T}(undef, size(a,1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">similar(a::Array{T,2}) where {T}                    = Matrix{T}(undef, size(a,1), size(a,2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">similar(a::Array{T,1}, S::Type) where {T}           = Vector{S}(undef, size(a,1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">similar(a::Array{T,2}, S::Type) where {T}           = Matrix{S}(undef, size(a,1), size(a,2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">similar(a::Array{T}, m::Int) where {T}              = Vector{T}(undef, m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">similar(a::Array, T::Type, dims::Dims{N}) where {N} = Array{T,N}(undef, dims)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">similar(a::Array{T}, dims::Dims{N}) where {T,N}     = Array{T,N}(undef, dims)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># T[x...] constructs Array{T,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    getindex(type[, elements...])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Construct a 1-d array of the specified type. This is usually called with the syntax
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`Type[]`. Element values can be specified using `Type[a,b,c,...]`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Int8[1, 2, 3]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Int8,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; getindex(Int8, 1, 2, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Int8,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(::Type{T}, vals...) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a = Vector{T}(undef, length(vals))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds for i = 1:length(vals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a[i] = vals[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getindex(::Type{T}) where {T} = (@_inline_meta; Vector{T}())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getindex(::Type{T}, x) where {T} = (@_inline_meta; a = Vector{T}(undef, 1); @inbounds a[1] = x; a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getindex(::Type{T}, x, y) where {T} = (@_inline_meta; a = Vector{T}(undef, 2); @inbounds (a[1] = x; a[2] = y); a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getindex(::Type{T}, x, y, z) where {T} = (@_inline_meta; a = Vector{T}(undef, 3); @inbounds (a[1] = x; a[2] = y; a[3] = z); a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(::Type{Any}, @nospecialize vals...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a = Vector{Any}(undef, length(vals))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds for i = 1:length(vals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a[i] = vals[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getindex(::Type{Any}) = Vector{Any}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fill!(a::Union{Array{UInt8}, Array{Int8}}, x::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:memset, Ptr{Cvoid}, (Ptr{Cvoid}, Cint, Csize_t), a, x, length(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fill!(a::Array{T}, x) where T&lt;:Union{Integer,AbstractFloat}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_noinline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    xT = convert(T, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i in eachindex(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds a[i] = xT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to_dim(d::Integer) = d
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to_dim(d::OneTo) = last(d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fill(x, dims)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create an array filled with the value `x`. For example, `fill(1.0, (5,5))` returns a 5×5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">array of floats, with each element initialized to `1.0`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; fill(1.0, (5,5))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5×5 Array{Float64,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1.0  1.0  1.0  1.0  1.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1.0  1.0  1.0  1.0  1.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1.0  1.0  1.0  1.0  1.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1.0  1.0  1.0  1.0  1.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1.0  1.0  1.0  1.0  1.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `x` is an object reference, all elements will refer to the same object. `fill(Foo(),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">dims)` will return an array filled with the result of evaluating `Foo()` once.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fill(v, dims::DimOrInd...) = fill(v, dims)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fill(v, dims::NTuple{N, Union{Integer, OneTo}}) where {N} = fill(v, map(to_dim, dims))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fill(v, dims::NTuple{N, Integer}) where {N} = fill!(Array{typeof(v),N}(undef, dims), v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fill(v, dims::Tuple{}) = fill!(Array{typeof(v),0}(undef, dims), v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    zeros([T=Float64,] dims...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create an `Array`, with element type `T`, of all zeros with size specified by `dims`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also [`fill`](@ref), [`ones`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; zeros(1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1-element Array{Float64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 0.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; zeros(Int8, 2, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×3 Array{Int8,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 0  0  0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 0  0  0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function zeros end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ones([T=Float64,] dims...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create an `Array`, with element type `T`, of all ones with size specified by `dims`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also: [`fill`](@ref), [`zeros`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; ones(1,2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1×2 Array{Float64,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1.0  1.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; ones(ComplexF64, 2, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×3 Array{Complex{Float64},2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1.0+0.0im  1.0+0.0im  1.0+0.0im
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1.0+0.0im  1.0+0.0im  1.0+0.0im
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function ones end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for (fname, felt) in ((:zeros, :zero), (:ones, :one))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @eval begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        $fname(dims::DimOrInd...) = $fname(dims)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        $fname(::Type{T}, dims::DimOrInd...) where {T} = $fname(T, dims)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        $fname(dims::Tuple{Vararg{DimOrInd}}) = $fname(Float64, dims)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        $fname(::Type{T}, dims::NTuple{N, Union{Integer, OneTo}}) where {T,N} = $fname(T, map(to_dim, dims))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        $fname(::Type{T}, dims::NTuple{N, Integer}) where {T,N} = fill!(Array{T,N}(undef, map(to_dim, dims)), $felt(T))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        $fname(::Type{T}, dims::Tuple{}) where {T} = fill!(Array{T}(undef), $felt(T))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _one(unit::T, x::AbstractMatrix) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert !has_offset_axes(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    m,n = size(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    m==n || throw(DimensionMismatch(&quot;multiplicative identity defined only for square matrices&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Matrix{T}(I, m, m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    I = zeros(T, m, m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i in 1:m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        I[i,i] = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    I
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">one(x::AbstractMatrix{T}) where {T} = _one(one(T), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">oneunit(x::AbstractMatrix{T}) where {T} = _one(oneunit(T), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Conversions ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">convert(::Type{T}, a::AbstractArray) where {T&lt;:Array} = a isa T ? a : T(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(a::Type{Array{T,n}}, b::Type{Array{S,n}}) where {T,n,S} = el_same(promote_type(T,S), a, b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Constructors ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if nameof(@__MODULE__) === :Base  # avoid method overwrite
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># constructors should make copies
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,N}(x::AbstractArray{S,N})         where {T,N,S} = copyto!(Array{T,N}(undef, size(x)), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">AbstractArray{T,N}(A::AbstractArray{S,N}) where {T,N,S} = copyto!(similar(A,T), A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## copying iterators to containers
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    collect(element_type, collection)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return an `Array` with the given element type of all items in a collection or iterable.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The result has the same shape and number of dimensions as `collection`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; collect(Float64, 1:2:5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Float64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">collect(::Type{T}, itr) where {T} = _collect(T, itr, IteratorSize(itr))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_collect(::Type{T}, itr, isz::HasLength) where {T} = copyto!(Vector{T}(undef, Int(length(itr)::Integer)), itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_collect(::Type{T}, itr, isz::HasShape) where {T}  = copyto!(similar(Array{T}, axes(itr)), itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _collect(::Type{T}, itr, isz::SizeUnknown) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a = Vector{T}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in itr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(a,x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># make a collection similar to `c` and appropriate for collecting `itr`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_similar_for(c::AbstractArray, T, itr, ::SizeUnknown) = similar(c, T, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_similar_for(c::AbstractArray, T, itr, ::HasLength) = similar(c, T, Int(length(itr)::Integer))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_similar_for(c::AbstractArray, T, itr, ::HasShape) = similar(c, T, axes(itr))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_similar_for(c, T, itr, isz) = similar(c, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    collect(collection)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return an `Array` of all items in a collection or iterator. For dictionaries, returns
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`Pair{KeyType, ValType}`. If the argument is array-like or is an iterator with the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`HasShape`](@ref IteratorSize) trait, the result will have the same shape
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and number of dimensions as the argument.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; collect(1:2:13)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">7-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  7
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  9
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 11
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 13
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">collect(itr) = _collect(1:1 #= Array =#, itr, IteratorEltype(itr), IteratorSize(itr))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">collect(A::AbstractArray) = _collect_indices(axes(A), A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">collect_similar(cont, itr) = _collect(cont, itr, IteratorEltype(itr), IteratorSize(itr))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_collect(cont, itr, ::HasEltype, isz::Union{HasLength,HasShape}) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    copyto!(_similar_for(cont, eltype(itr), itr, isz), itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _collect(cont, itr, ::HasEltype, isz::SizeUnknown)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a = _similar_for(cont, eltype(itr), itr, isz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in itr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(a,x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_collect_indices(::Tuple{}, A) = copyto!(Array{eltype(A),0}(undef), A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_collect_indices(indsA::Tuple{Vararg{OneTo}}, A) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    copyto!(Array{eltype(A)}(undef, length.(indsA)), A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _collect_indices(indsA, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    B = Array{eltype(A)}(undef, length.(indsA))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    copyto!(B, CartesianIndices(axes(B)), A, CartesianIndices(indsA))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># define this as a macro so that the call to Core.Compiler
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># gets inlined into the caller before recursion detection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># gets a chance to see it, so that recursive calls to the caller
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># don&#39;t trigger the inference limiter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if isdefined(Core, :Compiler)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    macro default_eltype(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        I = esc(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return quote
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if $I isa Generator &amp;&amp; ($I).f isa Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ($I).f
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Core.Compiler.return_type(first, Tuple{typeof($I)})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    macro default_eltype(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        I = esc(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return quote
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if $I isa Generator &amp;&amp; ($I).f isa Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ($I).f
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-603"></a>603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_array_for(::Type{T}, itr, ::HasLength) where {T} = Vector{T}(undef, Int(length(itr)::Integer))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-611"></a>611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_array_for(::Type{T}, itr, ::HasShape{N}) where {T,N} = similar(Array{T,N}, axes(itr))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function collect(itr::Generator)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isz = IteratorSize(itr.iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    et = @default_eltype(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(isz, SizeUnknown)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return grow_to!(Vector{et}(), itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y = iterate(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if y === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return _array_for(et, itr.iter, isz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        v1, st = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        collect_to_with_first!(_array_for(typeof(v1), itr.iter, isz), v1, itr, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_collect(c, itr, ::EltypeUnknown, isz::SizeUnknown) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    grow_to!(_similar_for(c, @default_eltype(itr), itr, isz), itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _collect(c, itr, ::EltypeUnknown, isz::Union{HasLength,HasShape})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = iterate(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if y === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return _similar_for(c, @default_eltype(itr), itr, isz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    v1, st = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    collect_to_with_first!(_similar_for(c, typeof(v1), itr, isz), v1, itr, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function collect_to_with_first!(dest::AbstractArray, v1, itr, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i1 = first(LinearIndices(dest))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dest[i1] = v1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return collect_to!(dest, itr, i1+1, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function collect_to_with_first!(dest, v1, itr, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(dest, v1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-648"></a>648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return grow_to!(dest, itr, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-649"></a>649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-650"></a>650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-651"></a>651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function collect_to!(dest::AbstractArray{T}, itr, offs, st) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-652"></a>652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # collect to dest array, checking the type of each result. if a result does not
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-653"></a>653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # match, widen the result type and re-dispatch.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-654"></a>654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = offs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-655"></a>655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-656"></a>656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y = iterate(itr, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-657"></a>657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y === nothing &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-658"></a>658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        el, st = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-659"></a>659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if el isa T || typeof(el) === T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-660"></a>660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @inbounds dest[i] = el::T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-661"></a>661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            i += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-662"></a>662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-663"></a>663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            R = promote_typejoin(T, typeof(el))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-664"></a>664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            new = similar(dest, R)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-665"></a>665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            copyto!(new,1, dest,1, i-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-666"></a>666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @inbounds new[i] = el
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-667"></a>667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return collect_to!(new, itr, i+1, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-668"></a>668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-669"></a>669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-670"></a>670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return dest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-671"></a>671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-672"></a>672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-673"></a>673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function grow_to!(dest, itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-674"></a>674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = iterate(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-675"></a>675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y === nothing &amp;&amp; return dest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-676"></a>676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dest2 = empty(dest, typeof(y[1]))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-677"></a>677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(dest2, y[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-678"></a>678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    grow_to!(dest2, itr, y[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-679"></a>679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-680"></a>680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-681"></a>681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function grow_to!(dest, itr, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-682"></a>682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    T = eltype(dest)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-683"></a>683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = iterate(itr, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-684"></a>684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while y !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-685"></a>685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        el, st = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-686"></a>686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        S = typeof(el)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-687"></a>687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if S === T || S &lt;: T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-688"></a>688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(dest, el::T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-689"></a>689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-690"></a>690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            new = sizehint!(empty(dest, promote_typejoin(T, S)), length(dest))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-691"></a>691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if new isa AbstractSet
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-692"></a>692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # TODO: merge back these two branches when copy! is re-enabled for sets/vectors
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-693"></a>693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                union!(new, dest)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-694"></a>694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-695"></a>695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                append!(new, dest)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-696"></a>696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-697"></a>697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(new, el)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-698"></a>698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return grow_to!(new, itr, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-699"></a>699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-700"></a>700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y = iterate(itr, st)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-701"></a>701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-702"></a>702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return dest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-703"></a>703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-704"></a>704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-705"></a>705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Iteration ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-706"></a>706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-707"></a>707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iterate(A::Array, i=1) = (@_inline_meta; (i % UInt) - 1 &lt; length(A) ? (@inbounds A[i], i + 1) : nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-708"></a>708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-709"></a>709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Indexing: getindex ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-710"></a>710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-711"></a>711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-712"></a>712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    getindex(collection, key...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-713"></a>713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-714"></a>714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Retrieve the value(s) stored at the given key or index within a collection. The syntax
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-715"></a>715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`a[i,j,...]` is converted by the compiler to `getindex(a, i, j, ...)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-716"></a>716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-717"></a>717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-718"></a>718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-719"></a>719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = Dict(&quot;a&quot; =&gt; 1, &quot;b&quot; =&gt; 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-720"></a>720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Dict{String,Int64} with 2 entries:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-721"></a>721</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  &quot;b&quot; =&gt; 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-722"></a>722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  &quot;a&quot; =&gt; 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-723"></a>723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-724"></a>724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; getindex(A, &quot;a&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-725"></a>725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-726"></a>726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-727"></a>727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-728"></a>728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-729"></a>729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-730"></a>730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This is more complicated than it needs to be in order to get Win64 through bootstrap
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-731"></a>731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval getindex(A::Array, i1::Int) = arrayref($(Expr(:boundscheck)), A, i1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-732"></a>732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval getindex(A::Array, i1::Int, i2::Int, I::Int...) = (@_inline_meta; arrayref($(Expr(:boundscheck)), A, i1, i2, I...))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-733"></a>733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-734"></a>734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Faster contiguous indexing using copyto! for UnitRange and Colon
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-735"></a>735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(A::Array, I::UnitRange{Int})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-736"></a>736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-737"></a>737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck checkbounds(A, I)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-738"></a>738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lI = length(I)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-739"></a>739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    X = similar(A, lI)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-740"></a>740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if lI &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-741"></a>741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_copyto!(X, 1, A, first(I), lI)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-742"></a>742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-743"></a>743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return X
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-744"></a>744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-745"></a>745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(A::Array, c::Colon)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-746"></a>746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lI = length(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-747"></a>747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    X = similar(A, lI)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-748"></a>748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if lI &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-749"></a>749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_copyto!(X, 1, A, 1, lI)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-750"></a>750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-751"></a>751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return X
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-752"></a>752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-753"></a>753</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-754"></a>754</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This is redundant with the abstract fallbacks, but needed for bootstrap
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-755"></a>755</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(A::Array{S}, I::AbstractRange{Int}) where S
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-756"></a>756</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return S[ A[i] for i in I ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-757"></a>757</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-758"></a>758</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-759"></a>759</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Indexing: setindex! ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-760"></a>760</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-761"></a>761</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-762"></a>762</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    setindex!(collection, value, key...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-763"></a>763</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-764"></a>764</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Store the given value at the given key or index within a collection. The syntax `a[i,j,...] =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-765"></a>765</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">x` is converted by the compiler to `(setindex!(a, x, i, j, ...); x)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-766"></a>766</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-767"></a>767</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function setindex! end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-768"></a>768</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-769"></a>769</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval setindex!(A::Array{T}, x, i1::Int) where {T} = arrayset($(Expr(:boundscheck)), A, convert(T,x)::T, i1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-770"></a>770</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval setindex!(A::Array{T}, x, i1::Int, i2::Int, I::Int...) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-771"></a>771</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (@_inline_meta; arrayset($(Expr(:boundscheck)), A, convert(T,x)::T, i1, i2, I...))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-772"></a>772</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-773"></a>773</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This is redundant with the abstract fallbacks but needed and helpful for bootstrap
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-774"></a>774</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function setindex!(A::Array, X::AbstractArray, I::AbstractVector{Int})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-775"></a>775</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_propagate_inbounds_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-776"></a>776</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck setindex_shape_check(X, length(I))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-777"></a>777</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert !has_offset_axes(X)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-778"></a>778</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    X′ = unalias(A, X)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-779"></a>779</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    I′ = unalias(A, I)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-780"></a>780</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    count = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-781"></a>781</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i in I′
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-782"></a>782</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds x = X′[count]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-783"></a>783</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        A[i] = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-784"></a>784</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        count += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-785"></a>785</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-786"></a>786</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-787"></a>787</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-788"></a>788</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-789"></a>789</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Faster contiguous setindex! with copyto!
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-790"></a>790</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function setindex!(A::Array{T}, X::Array{T}, I::UnitRange{Int}) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-791"></a>791</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-792"></a>792</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck checkbounds(A, I)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-793"></a>793</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lI = length(I)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-794"></a>794</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck setindex_shape_check(X, lI)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-795"></a>795</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if lI &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-796"></a>796</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_copyto!(A, first(I), X, 1, lI)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-797"></a>797</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-798"></a>798</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-799"></a>799</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-800"></a>800</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function setindex!(A::Array{T}, X::Array{T}, c::Colon) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-801"></a>801</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-802"></a>802</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lI = length(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-803"></a>803</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck setindex_shape_check(X, lI)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-804"></a>804</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if lI &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-805"></a>805</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_copyto!(A, 1, X, 1, lI)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-806"></a>806</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-807"></a>807</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-808"></a>808</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-809"></a>809</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-810"></a>810</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># efficiently grow an array
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-811"></a>811</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-812"></a>812</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_growbeg!(a::Vector, delta::Integer) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-813"></a>813</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_array_grow_beg, Cvoid, (Any, UInt), a, delta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-814"></a>814</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_growend!(a::Vector, delta::Integer) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-815"></a>815</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_array_grow_end, Cvoid, (Any, UInt), a, delta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-816"></a>816</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_growat!(a::Vector, i::Integer, delta::Integer) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-817"></a>817</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_array_grow_at, Cvoid, (Any, Int, UInt), a, i - 1, delta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-818"></a>818</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-819"></a>819</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># efficiently delete part of an array
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-820"></a>820</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-821"></a>821</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_deletebeg!(a::Vector, delta::Integer) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-822"></a>822</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_array_del_beg, Cvoid, (Any, UInt), a, delta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-823"></a>823</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-_deleteend-823"></a>
+              1 (2.38%) samples spent in _deleteend!<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              resize!
+              <a href="array-jl-e331915c4fb281d94775-line.html#Larray-jl-e331915c4fb281d94775-line.html-1011">line 1011</a><br />
+            </div>
+            <span class="code">_deleteend!(a::Vector, delta::Integer) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-824"></a>824</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_array_del_end, Cvoid, (Any, UInt), a, delta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-825"></a>825</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_deleteat!(a::Vector, i::Integer, delta::Integer) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-826"></a>826</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_array_del_at, Cvoid, (Any, Int, UInt), a, i - 1, delta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-827"></a>827</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-828"></a>828</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Dequeue functionality ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-829"></a>829</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-830"></a>830</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-831"></a>831</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(collection, items...) -&gt; collection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-832"></a>832</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-833"></a>833</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Insert one or more `items` at the end of `collection`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-834"></a>834</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-835"></a>835</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-836"></a>836</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-837"></a>837</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; push!([1, 2, 3], 4, 5, 6)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-838"></a>838</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">6-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-839"></a>839</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-840"></a>840</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-841"></a>841</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-842"></a>842</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-843"></a>843</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-844"></a>844</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-845"></a>845</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-846"></a>846</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-847"></a>847</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Use [`append!`](@ref) to add all the elements of another collection to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-848"></a>848</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`collection`. The result of the preceding example is equivalent to `append!([1, 2, 3], [4,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-849"></a>849</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5, 6])`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-850"></a>850</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-851"></a>851</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function push! end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-852"></a>852</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-853"></a>853</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function push!(a::Array{T,1}, item) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-854"></a>854</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # convert first so we don&#39;t grow the array if the assignment won&#39;t work
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-855"></a>855</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    itemT = convert(T, item)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-856"></a>856</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _growend!(a, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-857"></a>857</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a[end] = itemT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-858"></a>858</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-859"></a>859</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-860"></a>860</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-861"></a>861</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function push!(a::Array{Any,1}, @nospecialize item)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-862"></a>862</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _growend!(a, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-863"></a>863</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    arrayset(true, a, item, length(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-864"></a>864</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-865"></a>865</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-866"></a>866</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-867"></a>867</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-868"></a>868</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    append!(collection, collection2) -&gt; collection.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-869"></a>869</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-870"></a>870</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Add the elements of `collection2` to the end of `collection`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-871"></a>871</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-872"></a>872</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-873"></a>873</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-874"></a>874</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; append!([1],[2,3])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-875"></a>875</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-876"></a>876</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-877"></a>877</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-878"></a>878</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-879"></a>879</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-880"></a>880</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; append!([1, 2, 3], [4, 5, 6])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-881"></a>881</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">6-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-882"></a>882</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-883"></a>883</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-884"></a>884</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-885"></a>885</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-886"></a>886</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-887"></a>887</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-888"></a>888</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-889"></a>889</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-890"></a>890</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Use [`push!`](@ref) to add individual items to `collection` which are not already
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-891"></a>891</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">themselves in another collection. The result of the preceding example is equivalent to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-892"></a>892</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`push!([1, 2, 3], 4, 5, 6)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-893"></a>893</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-894"></a>894</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function append!(a::Array{&lt;:Any,1}, items::AbstractVector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-895"></a>895</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    itemindices = eachindex(items)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-896"></a>896</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = length(itemindices)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-897"></a>897</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _growend!(a, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-898"></a>898</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    copyto!(a, length(a)-n+1, items, first(itemindices), n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-899"></a>899</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-900"></a>900</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-901"></a>901</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-902"></a>902</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">append!(a::Vector, iter) = _append!(a, IteratorSize(iter), iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-903"></a>903</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">push!(a::Vector, iter...) = append!(a, iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-904"></a>904</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-905"></a>905</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _append!(a, ::Union{HasLength,HasShape}, iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-906"></a>906</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert !has_offset_axes(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-907"></a>907</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-908"></a>908</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(a, n+length(iter))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-909"></a>909</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds for (i,item) in zip(n+1:length(a), iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-910"></a>910</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a[i] = item
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-911"></a>911</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-912"></a>912</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-913"></a>913</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-914"></a>914</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-915"></a>915</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _append!(a, ::IteratorSize, iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-916"></a>916</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for item in iter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-917"></a>917</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(a, item)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-918"></a>918</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-919"></a>919</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-920"></a>920</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-921"></a>921</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-922"></a>922</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-923"></a>923</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    prepend!(a::Vector, items) -&gt; collection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-924"></a>924</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-925"></a>925</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Insert the elements of `items` to the beginning of `a`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-926"></a>926</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-927"></a>927</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-928"></a>928</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-929"></a>929</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; prepend!([3],[1,2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-930"></a>930</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-931"></a>931</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-932"></a>932</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-933"></a>933</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-934"></a>934</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-935"></a>935</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-936"></a>936</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function prepend! end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-937"></a>937</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-938"></a>938</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function prepend!(a::Array{&lt;:Any,1}, items::AbstractVector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-939"></a>939</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    itemindices = eachindex(items)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-940"></a>940</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = length(itemindices)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-941"></a>941</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _growbeg!(a, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-942"></a>942</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if a === items
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-943"></a>943</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        copyto!(a, 1, items, n+1, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-944"></a>944</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-945"></a>945</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        copyto!(a, 1, items, first(itemindices), n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-946"></a>946</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-947"></a>947</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-948"></a>948</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-949"></a>949</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-950"></a>950</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">prepend!(a::Vector, iter) = _prepend!(a, IteratorSize(iter), iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-951"></a>951</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">pushfirst!(a::Vector, iter...) = prepend!(a, iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-952"></a>952</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-953"></a>953</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _prepend!(a, ::Union{HasLength,HasShape}, iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-954"></a>954</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert !has_offset_axes(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-955"></a>955</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = length(iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-956"></a>956</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _growbeg!(a, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-957"></a>957</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-958"></a>958</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for item in iter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-959"></a>959</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds a[i += 1] = item
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-960"></a>960</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-961"></a>961</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-962"></a>962</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-963"></a>963</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _prepend!(a, ::IteratorSize, iter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-964"></a>964</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-965"></a>965</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for item in iter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-966"></a>966</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-967"></a>967</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        pushfirst!(a, item)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-968"></a>968</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-969"></a>969</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    reverse!(a, 1, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-970"></a>970</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-971"></a>971</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-972"></a>972</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-973"></a>973</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-974"></a>974</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(a::Vector, n::Integer) -&gt; Vector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-975"></a>975</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-976"></a>976</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Resize `a` to contain `n` elements. If `n` is smaller than the current collection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-977"></a>977</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">length, the first `n` elements will be retained. If `n` is larger, the new elements are not
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-978"></a>978</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">guaranteed to be initialized.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-979"></a>979</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-980"></a>980</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-981"></a>981</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-982"></a>982</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; resize!([6, 5, 4, 3, 2, 1], 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-983"></a>983</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-984"></a>984</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-985"></a>985</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-986"></a>986</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-987"></a>987</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-988"></a>988</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a = resize!([6, 5, 4, 3, 2, 1], 8);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-989"></a>989</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-990"></a>990</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-991"></a>991</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-992"></a>992</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-993"></a>993</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a[1:6]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-994"></a>994</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">6-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-995"></a>995</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-996"></a>996</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-997"></a>997</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-998"></a>998</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-999"></a>999</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1000"></a>1000</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1001"></a>1001</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1002"></a>1002</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1003"></a>1003</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function resize!(a::Vector, nl::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1004"></a>1004</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    l = length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1005"></a>1005</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if nl &gt; l
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1006"></a>1006</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _growend!(a, nl-l)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1007"></a>1007</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif nl != l
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1008"></a>1008</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if nl &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1009"></a>1009</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            throw(ArgumentError(&quot;new length must be ≥ 0&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1010"></a>1010</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1011"></a>1011</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-resize-1011"></a>
+              1 (2.38%) samples spent in resize!<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              print_to_string
+              <a href="io-jl-f839edf29063078eece4-line.html#Lio-jl-f839edf29063078eece4-line.html-124">line 124</a><br />
+            </div>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="array-jl-e331915c4fb281d94775-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-_deleteend-823">_deleteend!</a><br />
+            </div>
+            <span class="code">        _deleteend!(a, l-nl)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1012"></a>1012</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1013"></a>1013</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1014"></a>1014</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1015"></a>1015</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1016"></a>1016</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1017"></a>1017</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sizehint!(s, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1018"></a>1018</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1019"></a>1019</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Suggest that collection `s` reserve capacity for at least `n` elements. This can improve performance.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1020"></a>1020</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1021"></a>1021</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function sizehint! end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1022"></a>1022</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1023"></a>1023</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function sizehint!(a::Vector, sz::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1024"></a>1024</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_array_sizehint, Cvoid, (Any, UInt), a, sz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1025"></a>1025</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1026"></a>1026</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1027"></a>1027</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1028"></a>1028</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1029"></a>1029</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pop!(collection) -&gt; item
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1030"></a>1030</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1031"></a>1031</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Remove an item in `collection` and return it. If `collection` is an
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1032"></a>1032</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ordered container, the last item is returned.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1033"></a>1033</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1034"></a>1034</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1035"></a>1035</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1036"></a>1036</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A=[1, 2, 3]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1037"></a>1037</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1038"></a>1038</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1039"></a>1039</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1040"></a>1040</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1041"></a>1041</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1042"></a>1042</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; pop!(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1043"></a>1043</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1044"></a>1044</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1045"></a>1045</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1046"></a>1046</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1047"></a>1047</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1048"></a>1048</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1049"></a>1049</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1050"></a>1050</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; S = Set([1, 2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1051"></a>1051</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Set([2, 1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1052"></a>1052</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1053"></a>1053</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; pop!(S)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1054"></a>1054</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1055"></a>1055</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1056"></a>1056</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; S
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1057"></a>1057</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Set([1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1058"></a>1058</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1059"></a>1059</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; pop!(Dict(1=&gt;2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1060"></a>1060</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1 =&gt; 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1061"></a>1061</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1062"></a>1062</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1063"></a>1063</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function pop!(a::Vector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1064"></a>1064</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isempty(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1065"></a>1065</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;array must be non-empty&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1066"></a>1066</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1067"></a>1067</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    item = a[end]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1068"></a>1068</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _deleteend!(a, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1069"></a>1069</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return item
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1070"></a>1070</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1071"></a>1071</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1072"></a>1072</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1073"></a>1073</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pushfirst!(collection, items...) -&gt; collection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1074"></a>1074</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1075"></a>1075</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Insert one or more `items` at the beginning of `collection`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1076"></a>1076</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1077"></a>1077</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1078"></a>1078</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1079"></a>1079</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; pushfirst!([1, 2, 3, 4], 5, 6)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1080"></a>1080</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">6-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1081"></a>1081</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1082"></a>1082</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1083"></a>1083</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1084"></a>1084</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1085"></a>1085</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1086"></a>1086</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1087"></a>1087</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1088"></a>1088</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1089"></a>1089</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function pushfirst!(a::Array{T,1}, item) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1090"></a>1090</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    item = convert(T, item)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1091"></a>1091</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _growbeg!(a, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1092"></a>1092</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a[1] = item
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1093"></a>1093</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1094"></a>1094</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1095"></a>1095</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1096"></a>1096</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1097"></a>1097</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    popfirst!(collection) -&gt; item
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1098"></a>1098</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1099"></a>1099</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Remove the first `item` from `collection`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1100"></a>1100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1101"></a>1101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1102"></a>1102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1103"></a>1103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [1, 2, 3, 4, 5, 6]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1104"></a>1104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">6-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1105"></a>1105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1106"></a>1106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1107"></a>1107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1108"></a>1108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1109"></a>1109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1110"></a>1110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1111"></a>1111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1112"></a>1112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; popfirst!(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1113"></a>1113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1114"></a>1114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1115"></a>1115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1116"></a>1116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1117"></a>1117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1118"></a>1118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1119"></a>1119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1120"></a>1120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1121"></a>1121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1122"></a>1122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1123"></a>1123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1124"></a>1124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function popfirst!(a::Vector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1125"></a>1125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isempty(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1126"></a>1126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;array must be non-empty&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1127"></a>1127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1128"></a>1128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    item = a[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1129"></a>1129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _deletebeg!(a, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1130"></a>1130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return item
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1131"></a>1131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1132"></a>1132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1133"></a>1133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1134"></a>1134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    insert!(a::Vector, index::Integer, item)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1135"></a>1135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1136"></a>1136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Insert an `item` into `a` at the given `index`. `index` is the index of `item` in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1137"></a>1137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the resulting `a`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1138"></a>1138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1139"></a>1139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1140"></a>1140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1141"></a>1141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; insert!([6, 5, 4, 2, 1], 4, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1142"></a>1142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">6-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1143"></a>1143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1144"></a>1144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1145"></a>1145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1146"></a>1146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1147"></a>1147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1148"></a>1148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1149"></a>1149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1150"></a>1150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1151"></a>1151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function insert!(a::Array{T,1}, i::Integer, item) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1152"></a>1152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Throw convert error before changing the shape of the array
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1153"></a>1153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _item = convert(T, item)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1154"></a>1154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _growat!(a, i, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1155"></a>1155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # _growat! already did bound check
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1156"></a>1156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds a[i] = _item
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1157"></a>1157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1158"></a>1158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1159"></a>1159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1160"></a>1160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1161"></a>1161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    deleteat!(a::Vector, i::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1162"></a>1162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1163"></a>1163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Remove the item at the given `i` and return the modified `a`. Subsequent items
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1164"></a>1164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">are shifted to fill the resulting gap.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1165"></a>1165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1166"></a>1166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1167"></a>1167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1168"></a>1168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; deleteat!([6, 5, 4, 3, 2, 1], 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1169"></a>1169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1170"></a>1170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1171"></a>1171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1172"></a>1172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1173"></a>1173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1174"></a>1174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1175"></a>1175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1176"></a>1176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1177"></a>1177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">deleteat!(a::Vector, i::Integer) = (_deleteat!(a, i, 1); a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1178"></a>1178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1179"></a>1179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function deleteat!(a::Vector, r::UnitRange{&lt;:Integer})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1180"></a>1180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1181"></a>1181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isempty(r) || _deleteat!(a, first(r), length(r))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1182"></a>1182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1183"></a>1183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1184"></a>1184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1185"></a>1185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1186"></a>1186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    deleteat!(a::Vector, inds)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1187"></a>1187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1188"></a>1188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Remove the items at the indices given by `inds`, and return the modified `a`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1189"></a>1189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Subsequent items are shifted to fill the resulting gap.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1190"></a>1190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1191"></a>1191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`inds` can be either an iterator or a collection of sorted and unique integer indices,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1192"></a>1192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">or a boolean vector of the same length as `a` with `true` indicating entries to delete.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1193"></a>1193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1194"></a>1194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1195"></a>1195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1196"></a>1196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; deleteat!([6, 5, 4, 3, 2, 1], 1:2:5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1197"></a>1197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1198"></a>1198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1199"></a>1199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1200"></a>1200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1201"></a>1201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1202"></a>1202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; deleteat!([6, 5, 4, 3, 2, 1], [true, false, true, false, true, false])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1203"></a>1203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1204"></a>1204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1205"></a>1205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1206"></a>1206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1207"></a>1207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1208"></a>1208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; deleteat!([6, 5, 4, 3, 2, 1], (2, 2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1209"></a>1209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ERROR: ArgumentError: indices must be unique and sorted
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1210"></a>1210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Stacktrace:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1211"></a>1211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[...]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1212"></a>1212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1213"></a>1213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1214"></a>1214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">deleteat!(a::Vector, inds) = _deleteat!(a, inds)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1215"></a>1215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">deleteat!(a::Vector, inds::AbstractVector) = _deleteat!(a, to_indices(a, (inds,))[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1216"></a>1216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1217"></a>1217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _deleteat!(a::Vector, inds)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1218"></a>1218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1219"></a>1219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = iterate(inds)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1220"></a>1220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y === nothing &amp;&amp; return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1221"></a>1221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (p, s) = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1222"></a>1222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    q = p+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1223"></a>1223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1224"></a>1224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y = iterate(inds, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1225"></a>1225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y === nothing &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1226"></a>1226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (i,s) = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1227"></a>1227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !(q &lt;= i &lt;= n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1228"></a>1228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if i &lt; q
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1229"></a>1229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                throw(ArgumentError(&quot;indices must be unique and sorted&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1230"></a>1230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1231"></a>1231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1232"></a>1232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1233"></a>1233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1234"></a>1234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while q &lt; i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1235"></a>1235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @inbounds a[p] = a[q]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1236"></a>1236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            p += 1; q += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1237"></a>1237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1238"></a>1238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        q = i+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1239"></a>1239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1240"></a>1240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while q &lt;= n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1241"></a>1241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds a[p] = a[q]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1242"></a>1242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        p += 1; q += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1243"></a>1243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1244"></a>1244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _deleteend!(a, n-p+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1245"></a>1245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1246"></a>1246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1247"></a>1247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1248"></a>1248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Simpler and more efficient version for logical indexing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1249"></a>1249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function deleteat!(a::Vector, inds::AbstractVector{Bool})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1250"></a>1250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1251"></a>1251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    length(inds) == n || throw(BoundsError(a, inds))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1252"></a>1252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1253"></a>1253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (q, i) in enumerate(inds)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1254"></a>1254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds a[p] = a[q]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1255"></a>1255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        p += !i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1256"></a>1256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1257"></a>1257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _deleteend!(a, n-p+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1258"></a>1258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1259"></a>1259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1260"></a>1260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1261"></a>1261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const _default_splice = []
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1262"></a>1262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1263"></a>1263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1264"></a>1264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    splice!(a::Vector, index::Integer, [replacement]) -&gt; item
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1265"></a>1265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1266"></a>1266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Remove the item at the given index, and return the removed item.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1267"></a>1267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Subsequent items are shifted left to fill the resulting gap.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1268"></a>1268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If specified, replacement values from an ordered
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1269"></a>1269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">collection will be spliced in place of the removed item.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1270"></a>1270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1271"></a>1271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1272"></a>1272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest splice!
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1273"></a>1273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [6, 5, 4, 3, 2, 1]; splice!(A, 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1274"></a>1274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1275"></a>1275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1276"></a>1276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1277"></a>1277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1278"></a>1278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1279"></a>1279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1280"></a>1280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1281"></a>1281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1282"></a>1282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1283"></a>1283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1284"></a>1284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; splice!(A, 5, -1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1285"></a>1285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1286"></a>1286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1287"></a>1287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1288"></a>1288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1289"></a>1289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1290"></a>1290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1291"></a>1291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1292"></a>1292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1293"></a>1293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1294"></a>1294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1295"></a>1295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; splice!(A, 1, [-1, -2, -3])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1296"></a>1296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1297"></a>1297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1298"></a>1298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1299"></a>1299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">7-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1300"></a>1300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1301"></a>1301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1302"></a>1302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1303"></a>1303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1304"></a>1304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1305"></a>1305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1306"></a>1306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1307"></a>1307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1308"></a>1308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1309"></a>1309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">To insert `replacement` before an index `n` without removing any items, use
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1310"></a>1310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`splice!(collection, n:n-1, replacement)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1311"></a>1311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1312"></a>1312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function splice!(a::Vector, i::Integer, ins=_default_splice)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1313"></a>1313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    v = a[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1314"></a>1314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    m = length(ins)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1315"></a>1315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if m == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1316"></a>1316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _deleteat!(a, i, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1317"></a>1317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif m == 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1318"></a>1318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a[i] = ins[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1319"></a>1319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1320"></a>1320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _growat!(a, i, m-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1321"></a>1321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        k = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1322"></a>1322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for x in ins
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1323"></a>1323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            a[i+k-1] = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1324"></a>1324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            k += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1325"></a>1325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1326"></a>1326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1327"></a>1327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1328"></a>1328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1329"></a>1329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1330"></a>1330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1331"></a>1331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    splice!(a::Vector, range, [replacement]) -&gt; items
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1332"></a>1332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1333"></a>1333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Remove items in the specified index range, and return a collection containing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1334"></a>1334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the removed items.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1335"></a>1335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Subsequent items are shifted left to fill the resulting gap.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1336"></a>1336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If specified, replacement values from an ordered collection will be spliced in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1337"></a>1337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">place of the removed items.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1338"></a>1338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1339"></a>1339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">To insert `replacement` before an index `n` without removing any items, use
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1340"></a>1340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`splice!(collection, n:n-1, replacement)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1341"></a>1341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1342"></a>1342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1343"></a>1343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest splice!
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1344"></a>1344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; splice!(A, 4:3, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1345"></a>1345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0-element Array{Int64,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1346"></a>1346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1347"></a>1347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1348"></a>1348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">8-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1349"></a>1349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1350"></a>1350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1351"></a>1351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1352"></a>1352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1353"></a>1353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1354"></a>1354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1355"></a>1355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1356"></a>1356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1357"></a>1357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1358"></a>1358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1359"></a>1359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function splice!(a::Vector, r::UnitRange{&lt;:Integer}, ins=_default_splice)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1360"></a>1360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    v = a[r]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1361"></a>1361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    m = length(ins)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1362"></a>1362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if m == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1363"></a>1363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        deleteat!(a, r)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1364"></a>1364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1365"></a>1365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1366"></a>1366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1367"></a>1367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1368"></a>1368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f = first(r)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1369"></a>1369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    l = last(r)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1370"></a>1370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    d = length(r)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1371"></a>1371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1372"></a>1372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if m &lt; d
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1373"></a>1373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        delta = d - m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1374"></a>1374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _deleteat!(a, (f - 1 &lt; n - l) ? f : (l - delta + 1), delta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1375"></a>1375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif m &gt; d
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1376"></a>1376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _growat!(a, (f - 1 &lt; n - l) ? f : (l + 1), m - d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1377"></a>1377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1378"></a>1378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1379"></a>1379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    k = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1380"></a>1380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in ins
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1381"></a>1381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a[f+k-1] = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1382"></a>1382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        k += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1383"></a>1383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1384"></a>1384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1385"></a>1385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1386"></a>1386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1387"></a>1387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function empty!(a::Vector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1388"></a>1388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _deleteend!(a, length(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1389"></a>1389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1390"></a>1390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1391"></a>1391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1392"></a>1392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_memcmp(a, b, len) = ccall(:memcmp, Int32, (Ptr{Cvoid}, Ptr{Cvoid}, Csize_t), a, b, len) % Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1393"></a>1393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1394"></a>1394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># use memcmp for cmp on byte arrays
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1395"></a>1395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function cmp(a::Array{UInt8,1}, b::Array{UInt8,1})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1396"></a>1396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    c = _memcmp(a, b, min(length(a),length(b)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1397"></a>1397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return c &lt; 0 ? -1 : c &gt; 0 ? +1 : cmp(length(a),length(b))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1398"></a>1398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1399"></a>1399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1400"></a>1400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitIntegerArray{N} = Union{map(T-&gt;Array{T,N}, BitInteger_types)...} where N
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1401"></a>1401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># use memcmp for == on bit integer types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1402"></a>1402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(a::Arr, b::Arr) where {Arr &lt;: BitIntegerArray} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1403"></a>1403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    size(a) == size(b) &amp;&amp; 0 == _memcmp(a, b, sizeof(eltype(Arr)) * length(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1404"></a>1404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1405"></a>1405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># this is ~20% faster than the generic implementation above for very small arrays
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1406"></a>1406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function ==(a::Arr, b::Arr) where Arr &lt;: BitIntegerArray{1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1407"></a>1407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    len = length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1408"></a>1408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    len == length(b) &amp;&amp; 0 == _memcmp(a, b, sizeof(eltype(Arr)) * len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1409"></a>1409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1410"></a>1410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1411"></a>1411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1412"></a>1412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    reverse(v [, start=1 [, stop=length(v) ]] )
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1413"></a>1413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1414"></a>1414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return a copy of `v` reversed from start to stop.  See also [`Iterators.reverse`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1415"></a>1415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for reverse-order iteration without making a copy.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1416"></a>1416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1417"></a>1417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1418"></a>1418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1419"></a>1419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = Vector(1:5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1420"></a>1420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1421"></a>1421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1422"></a>1422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1423"></a>1423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1424"></a>1424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1425"></a>1425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1426"></a>1426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1427"></a>1427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; reverse(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1428"></a>1428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1429"></a>1429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1430"></a>1430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1431"></a>1431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1432"></a>1432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1433"></a>1433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1434"></a>1434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1435"></a>1435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; reverse(A, 1, 4)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1436"></a>1436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1437"></a>1437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1438"></a>1438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1439"></a>1439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1440"></a>1440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1441"></a>1441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1442"></a>1442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1443"></a>1443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; reverse(A, 3, 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1444"></a>1444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1445"></a>1445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1446"></a>1446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1447"></a>1447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1448"></a>1448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1449"></a>1449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1450"></a>1450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1451"></a>1451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1452"></a>1452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function reverse(A::AbstractVector, s=first(LinearIndices(A)), n=last(LinearIndices(A)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1453"></a>1453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    B = similar(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1454"></a>1454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = first(LinearIndices(A)):s-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1455"></a>1455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        B[i] = A[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1456"></a>1456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1457"></a>1457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = s:n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1458"></a>1458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        B[i] = A[n+s-i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1459"></a>1459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1460"></a>1460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = n+1:last(LinearIndices(A))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1461"></a>1461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        B[i] = A[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1462"></a>1462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1463"></a>1463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return B
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1464"></a>1464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1465"></a>1465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1466"></a>1466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># to resolve ambiguity with reverse(A; dims)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1467"></a>1467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">reverse(A::Vector) = invoke(reverse, Tuple{AbstractVector}, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1468"></a>1468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1469"></a>1469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function reverseind(a::AbstractVector, i::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1470"></a>1470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    li = LinearIndices(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1471"></a>1471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    first(li) + last(li) - i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1472"></a>1472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1473"></a>1473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1474"></a>1474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1475"></a>1475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    reverse!(v [, start=1 [, stop=length(v) ]]) -&gt; v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1476"></a>1476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1477"></a>1477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">In-place version of [`reverse`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1478"></a>1478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1479"></a>1479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1480"></a>1480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1481"></a>1481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = Vector(1:5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1482"></a>1482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1483"></a>1483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1484"></a>1484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1485"></a>1485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1486"></a>1486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1487"></a>1487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1488"></a>1488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1489"></a>1489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; reverse!(A);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1490"></a>1490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1491"></a>1491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1492"></a>1492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1493"></a>1493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1494"></a>1494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1495"></a>1495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1496"></a>1496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1497"></a>1497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1498"></a>1498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1499"></a>1499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1500"></a>1500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function reverse!(v::AbstractVector, s=first(LinearIndices(v)), n=last(LinearIndices(v)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1501"></a>1501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    liv = LinearIndices(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1502"></a>1502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if n &lt;= s  # empty case; ok
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1503"></a>1503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif !(first(liv) ≤ s ≤ last(liv))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1504"></a>1504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(BoundsError(v, s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1505"></a>1505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif !(first(liv) ≤ n ≤ last(liv))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1506"></a>1506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(BoundsError(v, n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1507"></a>1507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1508"></a>1508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    r = n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1509"></a>1509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds for i in s:div(s+n-1, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1510"></a>1510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        v[i], v[r] = v[r], v[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1511"></a>1511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        r -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1512"></a>1512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1513"></a>1513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1514"></a>1514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1515"></a>1515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1516"></a>1516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># concatenations of homogeneous combinations of vectors, horizontal and vertical
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1517"></a>1517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1518"></a>1518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">vcat() = Vector{Any}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1519"></a>1519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">hcat() = Vector{Any}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1520"></a>1520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1521"></a>1521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function hcat(V::Vector{T}...) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1522"></a>1522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    height = length(V[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1523"></a>1523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for j = 2:length(V)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1524"></a>1524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if length(V[j]) != height
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1525"></a>1525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            throw(DimensionMismatch(&quot;vectors must have same lengths&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1526"></a>1526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1527"></a>1527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1528"></a>1528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return [ V[j][i]::T for i=1:length(V[1]), j=1:length(V) ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1529"></a>1529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1530"></a>1530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1531"></a>1531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function vcat(arrays::Vector{T}...) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1532"></a>1532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1533"></a>1533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for a in arrays
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1534"></a>1534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n += length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1535"></a>1535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1536"></a>1536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    arr = Vector{T}(undef, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1537"></a>1537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ptr = pointer(arr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1538"></a>1538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isbitstype(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1539"></a>1539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elsz = Core.sizeof(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1540"></a>1540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isbitsunion(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1541"></a>1541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elsz = bitsunionsize(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1542"></a>1542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        selptr = ccall(:jl_array_typetagdata, Ptr{UInt8}, (Any,), arr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1543"></a>1543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1544"></a>1544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elsz = Core.sizeof(Ptr{Cvoid})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1545"></a>1545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1546"></a>1546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = @_gc_preserve_begin arr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1547"></a>1547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for a in arrays
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1548"></a>1548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        na = length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1549"></a>1549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nba = na * elsz
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1550"></a>1550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isbitstype(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1551"></a>1551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ccall(:memcpy, Ptr{Cvoid}, (Ptr{Cvoid}, Ptr{Cvoid}, UInt),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1552"></a>1552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                  ptr, a, nba)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1553"></a>1553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isbitsunion(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1554"></a>1554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ccall(:memcpy, Ptr{Cvoid}, (Ptr{Cvoid}, Ptr{Cvoid}, UInt),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1555"></a>1555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                  ptr, a, nba)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1556"></a>1556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # copy selector bytes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1557"></a>1557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ccall(:memcpy, Ptr{Cvoid}, (Ptr{Cvoid}, Ptr{Cvoid}, UInt),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1558"></a>1558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                  selptr, ccall(:jl_array_typetagdata, Ptr{UInt8}, (Any,), a), na)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1559"></a>1559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            selptr += na
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1560"></a>1560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1561"></a>1561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ccall(:jl_array_ptr_copy, Cvoid, (Any, Ptr{Cvoid}, Any, Ptr{Cvoid}, Int),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1562"></a>1562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                  arr, ptr, a, pointer(a), na)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1563"></a>1563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1564"></a>1564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ptr += nba
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1565"></a>1565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1566"></a>1566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_gc_preserve_end t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1567"></a>1567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return arr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1568"></a>1568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1569"></a>1569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1570"></a>1570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_cat(n::Integer, x::Integer...) = reshape([x...], (ntuple(x-&gt;1, n-1)..., length(x)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1571"></a>1571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1572"></a>1572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## find ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1573"></a>1573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1574"></a>1574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1575"></a>1575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findnext(A, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1576"></a>1576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1577"></a>1577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Find the next index after or including `i` of a `true` element of `A`,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1578"></a>1578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">or `nothing` if not found.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1579"></a>1579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1580"></a>1580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Indices are of the same type as those returned by [`keys(A)`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1581"></a>1581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and [`pairs(A)`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1582"></a>1582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1583"></a>1583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1584"></a>1584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1585"></a>1585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [false, false, true, false]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1586"></a>1586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4-element Array{Bool,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1587"></a>1587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1588"></a>1588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1589"></a>1589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1590"></a>1590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1591"></a>1591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1592"></a>1592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findnext(A, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1593"></a>1593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1594"></a>1594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1595"></a>1595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findnext(A, 4) # returns nothing, but not printed in the REPL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1596"></a>1596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1597"></a>1597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [false false; true false]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1598"></a>1598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×2 Array{Bool,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1599"></a>1599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false  false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1600"></a>1600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true  false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1601"></a>1601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1602"></a>1602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findnext(A, CartesianIndex(1, 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1603"></a>1603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">CartesianIndex(2, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1604"></a>1604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1605"></a>1605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1606"></a>1606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findnext(A, start)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1607"></a>1607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    l = last(keys(A))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1608"></a>1608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = start
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1609"></a>1609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while i &lt;= l
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1610"></a>1610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if A[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1611"></a>1611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1612"></a>1612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1613"></a>1613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i = nextind(A, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1614"></a>1614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1615"></a>1615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1616"></a>1616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1617"></a>1617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1618"></a>1618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1619"></a>1619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findfirst(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1620"></a>1620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1621"></a>1621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the index or key of the first `true` value in `A`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1622"></a>1622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `nothing` if no such value is found.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1623"></a>1623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">To search for other kinds of values, pass a predicate as the first argument.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1624"></a>1624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1625"></a>1625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Indices or keys are of the same type as those returned by [`keys(A)`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1626"></a>1626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and [`pairs(A)`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1627"></a>1627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1628"></a>1628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1629"></a>1629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1630"></a>1630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [false, false, true, false]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1631"></a>1631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4-element Array{Bool,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1632"></a>1632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1633"></a>1633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1634"></a>1634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1635"></a>1635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1636"></a>1636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1637"></a>1637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findfirst(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1638"></a>1638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1639"></a>1639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1640"></a>1640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findfirst(falses(3)) # returns nothing, but not printed in the REPL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1641"></a>1641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1642"></a>1642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [false false; true false]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1643"></a>1643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×2 Array{Bool,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1644"></a>1644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false  false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1645"></a>1645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true  false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1646"></a>1646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1647"></a>1647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findfirst(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1648"></a>1648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">CartesianIndex(2, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1649"></a>1649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1650"></a>1650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1651"></a>1651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findfirst(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1652"></a>1652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (i, a) in pairs(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1653"></a>1653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1654"></a>1654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1655"></a>1655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1656"></a>1656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1657"></a>1657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1658"></a>1658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1659"></a>1659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1660"></a>1660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Needed for bootstrap, and allows defining only an optimized findnext method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1661"></a>1661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findfirst(A::Union{AbstractArray, AbstractString}) = findnext(A, first(keys(A)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1662"></a>1662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1663"></a>1663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1664"></a>1664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findnext(predicate::Function, A, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1665"></a>1665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1666"></a>1666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Find the next index after or including `i` of an element of `A`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1667"></a>1667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for which `predicate` returns `true`, or `nothing` if not found.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1668"></a>1668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1669"></a>1669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Indices are of the same type as those returned by [`keys(A)`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1670"></a>1670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and [`pairs(A)`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1671"></a>1671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1672"></a>1672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1673"></a>1673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1674"></a>1674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [1, 4, 2, 2];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1675"></a>1675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1676"></a>1676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findnext(isodd, A, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1677"></a>1677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1678"></a>1678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1679"></a>1679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findnext(isodd, A, 2) # returns nothing, but not printed in the REPL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1680"></a>1680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1681"></a>1681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [1 4; 2 2];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1682"></a>1682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1683"></a>1683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findnext(isodd, A, CartesianIndex(1, 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1684"></a>1684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">CartesianIndex(1, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1685"></a>1685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1686"></a>1686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1687"></a>1687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findnext(testf::Function, A, start)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1688"></a>1688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    l = last(keys(A))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1689"></a>1689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = start
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1690"></a>1690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while i &lt;= l
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1691"></a>1691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if testf(A[i])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1692"></a>1692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1693"></a>1693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1694"></a>1694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i = nextind(A, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1695"></a>1695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1696"></a>1696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1697"></a>1697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1698"></a>1698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1699"></a>1699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1700"></a>1700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findfirst(predicate::Function, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1701"></a>1701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1702"></a>1702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the index or key of the first element of `A` for which `predicate` returns `true`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1703"></a>1703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `nothing` if there is no such element.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1704"></a>1704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1705"></a>1705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Indices or keys are of the same type as those returned by [`keys(A)`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1706"></a>1706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and [`pairs(A)`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1707"></a>1707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1708"></a>1708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1709"></a>1709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1710"></a>1710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [1, 4, 2, 2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1711"></a>1711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1712"></a>1712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1713"></a>1713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1714"></a>1714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1715"></a>1715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1716"></a>1716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1717"></a>1717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findfirst(iseven, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1718"></a>1718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1719"></a>1719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1720"></a>1720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findfirst(x -&gt; x&gt;10, A) # returns nothing, but not printed in the REPL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1721"></a>1721</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1722"></a>1722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findfirst(isequal(4), A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1723"></a>1723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1724"></a>1724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1725"></a>1725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [1 4; 2 2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1726"></a>1726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×2 Array{Int64,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1727"></a>1727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1  4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1728"></a>1728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2  2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1729"></a>1729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1730"></a>1730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findfirst(iseven, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1731"></a>1731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">CartesianIndex(2, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1732"></a>1732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1733"></a>1733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1734"></a>1734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findfirst(testf::Function, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1735"></a>1735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (i, a) in pairs(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1736"></a>1736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        testf(a) &amp;&amp; return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1737"></a>1737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1738"></a>1738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1739"></a>1739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1740"></a>1740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1741"></a>1741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Needed for bootstrap, and allows defining only an optimized findnext method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1742"></a>1742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findfirst(testf::Function, A::Union{AbstractArray, AbstractString}) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1743"></a>1743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findnext(testf, A, first(keys(A)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1744"></a>1744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1745"></a>1745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1746"></a>1746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findprev(A, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1747"></a>1747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1748"></a>1748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Find the previous index before or including `i` of a `true` element of `A`,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1749"></a>1749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">or `nothing` if not found.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1750"></a>1750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1751"></a>1751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Indices are of the same type as those returned by [`keys(A)`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1752"></a>1752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and [`pairs(A)`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1753"></a>1753</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1754"></a>1754</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1755"></a>1755</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1756"></a>1756</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [false, false, true, true]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1757"></a>1757</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4-element Array{Bool,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1758"></a>1758</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1759"></a>1759</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1760"></a>1760</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1761"></a>1761</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1762"></a>1762</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1763"></a>1763</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findprev(A, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1764"></a>1764</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1765"></a>1765</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1766"></a>1766</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findprev(A, 1) # returns nothing, but not printed in the REPL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1767"></a>1767</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1768"></a>1768</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [false false; true true]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1769"></a>1769</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×2 Array{Bool,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1770"></a>1770</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false  false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1771"></a>1771</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true   true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1772"></a>1772</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1773"></a>1773</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findprev(A, CartesianIndex(2, 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1774"></a>1774</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">CartesianIndex(2, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1775"></a>1775</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1776"></a>1776</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1777"></a>1777</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findprev(A, start)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1778"></a>1778</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = start
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1779"></a>1779</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while i &gt;= first(keys(A))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1780"></a>1780</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        A[i] &amp;&amp; return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1781"></a>1781</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i = prevind(A, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1782"></a>1782</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1783"></a>1783</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1784"></a>1784</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1785"></a>1785</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1786"></a>1786</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1787"></a>1787</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findlast(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1788"></a>1788</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1789"></a>1789</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the index or key of the last `true` value in `A`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1790"></a>1790</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `nothing` if there is no `true` value in `A`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1791"></a>1791</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1792"></a>1792</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Indices or keys are of the same type as those returned by [`keys(A)`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1793"></a>1793</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and [`pairs(A)`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1794"></a>1794</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1795"></a>1795</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1796"></a>1796</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1797"></a>1797</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [true, false, true, false]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1798"></a>1798</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4-element Array{Bool,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1799"></a>1799</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1800"></a>1800</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1801"></a>1801</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1802"></a>1802</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1803"></a>1803</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1804"></a>1804</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findlast(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1805"></a>1805</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1806"></a>1806</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1807"></a>1807</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = falses(2,2);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1808"></a>1808</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1809"></a>1809</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findlast(A) # returns nothing, but not printed in the REPL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1810"></a>1810</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1811"></a>1811</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [true false; true false]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1812"></a>1812</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×2 Array{Bool,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1813"></a>1813</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> true  false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1814"></a>1814</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> true  false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1815"></a>1815</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1816"></a>1816</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findlast(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1817"></a>1817</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">CartesianIndex(2, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1818"></a>1818</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1819"></a>1819</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1820"></a>1820</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findlast(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1821"></a>1821</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (i, a) in Iterators.reverse(pairs(A))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1822"></a>1822</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1823"></a>1823</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1824"></a>1824</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1825"></a>1825</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1826"></a>1826</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1827"></a>1827</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1828"></a>1828</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1829"></a>1829</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Needed for bootstrap, and allows defining only an optimized findprev method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1830"></a>1830</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findlast(A::Union{AbstractArray, AbstractString}) = findprev(A, last(keys(A)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1831"></a>1831</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1832"></a>1832</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1833"></a>1833</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findprev(predicate::Function, A, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1834"></a>1834</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1835"></a>1835</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Find the previous index before or including `i` of an element of `A`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1836"></a>1836</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for which `predicate` returns `true`, or `nothing` if not found.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1837"></a>1837</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1838"></a>1838</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Indices are of the same type as those returned by [`keys(A)`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1839"></a>1839</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and [`pairs(A)`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1840"></a>1840</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1841"></a>1841</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1842"></a>1842</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1843"></a>1843</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [4, 6, 1, 2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1844"></a>1844</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1845"></a>1845</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1846"></a>1846</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1847"></a>1847</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1848"></a>1848</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1849"></a>1849</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1850"></a>1850</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findprev(isodd, A, 1) # returns nothing, but not printed in the REPL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1851"></a>1851</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1852"></a>1852</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findprev(isodd, A, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1853"></a>1853</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1854"></a>1854</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1855"></a>1855</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [4 6; 1 2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1856"></a>1856</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×2 Array{Int64,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1857"></a>1857</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4  6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1858"></a>1858</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1  2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1859"></a>1859</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1860"></a>1860</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findprev(isodd, A, CartesianIndex(1, 2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1861"></a>1861</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">CartesianIndex(2, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1862"></a>1862</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1863"></a>1863</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1864"></a>1864</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findprev(testf::Function, A, start)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1865"></a>1865</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = start
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1866"></a>1866</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while i &gt;= first(keys(A))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1867"></a>1867</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        testf(A[i]) &amp;&amp; return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1868"></a>1868</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i = prevind(A, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1869"></a>1869</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1870"></a>1870</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1871"></a>1871</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1872"></a>1872</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1873"></a>1873</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1874"></a>1874</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findlast(predicate::Function, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1875"></a>1875</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1876"></a>1876</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the index or key of the last element of `A` for which `predicate` returns `true`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1877"></a>1877</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `nothing` if there is no such element.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1878"></a>1878</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1879"></a>1879</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Indices or keys are of the same type as those returned by [`keys(A)`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1880"></a>1880</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and [`pairs(A)`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1881"></a>1881</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1882"></a>1882</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1883"></a>1883</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1884"></a>1884</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [1, 2, 3, 4]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1885"></a>1885</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1886"></a>1886</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1887"></a>1887</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1888"></a>1888</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1889"></a>1889</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1890"></a>1890</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1891"></a>1891</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findlast(isodd, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1892"></a>1892</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1893"></a>1893</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1894"></a>1894</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findlast(x -&gt; x &gt; 5, A) # returns nothing, but not printed in the REPL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1895"></a>1895</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1896"></a>1896</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [1 2; 3 4]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1897"></a>1897</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×2 Array{Int64,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1898"></a>1898</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1  2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1899"></a>1899</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3  4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1900"></a>1900</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1901"></a>1901</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findlast(isodd, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1902"></a>1902</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">CartesianIndex(2, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1903"></a>1903</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1904"></a>1904</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1905"></a>1905</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findlast(testf::Function, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1906"></a>1906</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (i, a) in Iterators.reverse(pairs(A))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1907"></a>1907</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        testf(a) &amp;&amp; return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1908"></a>1908</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1909"></a>1909</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1910"></a>1910</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1911"></a>1911</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1912"></a>1912</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Needed for bootstrap, and allows defining only an optimized findprev method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1913"></a>1913</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findlast(testf::Function, A::Union{AbstractArray, AbstractString}) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1914"></a>1914</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findprev(testf, A, last(keys(A)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1915"></a>1915</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1916"></a>1916</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1917"></a>1917</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findall(f::Function, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1918"></a>1918</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1919"></a>1919</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return a vector `I` of the indices or keys of `A` where `f(A[I])` returns `true`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1920"></a>1920</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If there are no such elements of `A`, return an empty array.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1921"></a>1921</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1922"></a>1922</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Indices or keys are of the same type as those returned by [`keys(A)`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1923"></a>1923</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and [`pairs(A)`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1924"></a>1924</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1925"></a>1925</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1926"></a>1926</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1927"></a>1927</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; x = [1, 3, 4]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1928"></a>1928</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1929"></a>1929</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1930"></a>1930</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1931"></a>1931</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1932"></a>1932</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1933"></a>1933</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findall(isodd, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1934"></a>1934</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1935"></a>1935</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1936"></a>1936</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1937"></a>1937</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1938"></a>1938</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [1 2 0; 3 4 0]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1939"></a>1939</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×3 Array{Int64,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1940"></a>1940</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1  2  0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1941"></a>1941</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3  4  0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1942"></a>1942</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findall(isodd, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1943"></a>1943</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2-element Array{CartesianIndex{2},1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1944"></a>1944</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> CartesianIndex(1, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1945"></a>1945</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> CartesianIndex(2, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1946"></a>1946</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1947"></a>1947</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findall(!iszero, A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1948"></a>1948</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4-element Array{CartesianIndex{2},1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1949"></a>1949</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> CartesianIndex(1, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1950"></a>1950</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> CartesianIndex(2, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1951"></a>1951</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> CartesianIndex(1, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1952"></a>1952</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> CartesianIndex(2, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1953"></a>1953</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1954"></a>1954</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; d = Dict(:A =&gt; 10, :B =&gt; -1, :C =&gt; 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1955"></a>1955</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Dict{Symbol,Int64} with 3 entries:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1956"></a>1956</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  :A =&gt; 10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1957"></a>1957</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  :B =&gt; -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1958"></a>1958</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  :C =&gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1959"></a>1959</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1960"></a>1960</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findall(x -&gt; x &gt;= 0, d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1961"></a>1961</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2-element Array{Symbol,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1962"></a>1962</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> :A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1963"></a>1963</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> :C
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1964"></a>1964</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1965"></a>1965</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1966"></a>1966</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1967"></a>1967</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findall(testf::Function, A) = collect(first(p) for p in pairs(A) if testf(last(p)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1968"></a>1968</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1969"></a>1969</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1970"></a>1970</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findall(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1971"></a>1971</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1972"></a>1972</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return a vector `I` of the `true` indices or keys of `A`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1973"></a>1973</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If there are no such elements of `A`, return an empty array.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1974"></a>1974</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">To search for other kinds of values, pass a predicate as the first argument.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1975"></a>1975</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1976"></a>1976</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Indices or keys are of the same type as those returned by [`keys(A)`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1977"></a>1977</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and [`pairs(A)`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1978"></a>1978</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1979"></a>1979</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1980"></a>1980</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1981"></a>1981</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [true, false, false, true]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1982"></a>1982</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4-element Array{Bool,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1983"></a>1983</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1984"></a>1984</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1985"></a>1985</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1986"></a>1986</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1987"></a>1987</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1988"></a>1988</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findall(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1989"></a>1989</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1990"></a>1990</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1991"></a>1991</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1992"></a>1992</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1993"></a>1993</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [true false; false true]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1994"></a>1994</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×2 Array{Bool,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1995"></a>1995</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  true  false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1996"></a>1996</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> false   true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1997"></a>1997</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1998"></a>1998</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findall(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-1999"></a>1999</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2-element Array{CartesianIndex{2},1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2000"></a>2000</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> CartesianIndex(1, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2001"></a>2001</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> CartesianIndex(2, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2002"></a>2002</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2003"></a>2003</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findall(falses(3))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2004"></a>2004</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0-element Array{Int64,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2005"></a>2005</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2006"></a>2006</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2007"></a>2007</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findall(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2008"></a>2008</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    collect(first(p) for p in pairs(A) if last(p))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2009"></a>2009</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2010"></a>2010</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Allocating result upfront is faster (possible only when collection can be iterated twice)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2011"></a>2011</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findall(A::AbstractArray{Bool})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2012"></a>2012</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = count(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2013"></a>2013</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    I = Vector{eltype(keys(A))}(undef, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2014"></a>2014</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cnt = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2015"></a>2015</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (i,a) in pairs(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2016"></a>2016</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2017"></a>2017</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            I[cnt] = i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2018"></a>2018</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cnt += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2019"></a>2019</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2020"></a>2020</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2021"></a>2021</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    I
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2022"></a>2022</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2023"></a>2023</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2024"></a>2024</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findall(x::Bool) = x ? [1] : Vector{Int}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2025"></a>2025</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findall(testf::Function, x::Number) = testf(x) ? [1] : Vector{Int}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2026"></a>2026</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findall(p::Fix2{typeof(in)}, x::Number) = x in p.x ? [1] : Vector{Int}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2027"></a>2027</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2028"></a>2028</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2029"></a>2029</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findmax(itr) -&gt; (x, index)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2030"></a>2030</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2031"></a>2031</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the maximum element of the collection `itr` and its index. If there are multiple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2032"></a>2032</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">maximal elements, then the first one will be returned.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2033"></a>2033</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If any data element is `NaN`, this element is returned.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2034"></a>2034</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The result is in line with `max`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2035"></a>2035</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2036"></a>2036</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The collection must not be empty.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2037"></a>2037</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2038"></a>2038</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2039"></a>2039</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2040"></a>2040</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findmax([8,0.1,-9,pi])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2041"></a>2041</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(8.0, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2042"></a>2042</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2043"></a>2043</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findmax([1,7,7,6])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2044"></a>2044</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(7, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2045"></a>2045</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2046"></a>2046</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findmax([1,7,7,NaN])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2047"></a>2047</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(NaN, 4)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2048"></a>2048</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2049"></a>2049</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2050"></a>2050</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findmax(a) = _findmax(a, :)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2051"></a>2051</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2052"></a>2052</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _findmax(a, ::Colon)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2053"></a>2053</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = pairs(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2054"></a>2054</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = iterate(p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2055"></a>2055</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if y === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2056"></a>2056</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;collection must be non-empty&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2057"></a>2057</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2058"></a>2058</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (mi, m), s = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2059"></a>2059</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = mi
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2060"></a>2060</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2061"></a>2061</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y = iterate(p, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2062"></a>2062</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y === nothing &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2063"></a>2063</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        m != m &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2064"></a>2064</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (i, ai), s = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2065"></a>2065</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if ai != ai || isless(m, ai)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2066"></a>2066</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            m = ai
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2067"></a>2067</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            mi = i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2068"></a>2068</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2069"></a>2069</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2070"></a>2070</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (m, mi)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2071"></a>2071</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2072"></a>2072</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2073"></a>2073</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2074"></a>2074</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    findmin(itr) -&gt; (x, index)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2075"></a>2075</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2076"></a>2076</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the minimum element of the collection `itr` and its index. If there are multiple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2077"></a>2077</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">minimal elements, then the first one will be returned.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2078"></a>2078</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If any data element is `NaN`, this element is returned.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2079"></a>2079</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The result is in line with `min`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2080"></a>2080</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2081"></a>2081</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The collection must not be empty.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2082"></a>2082</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2083"></a>2083</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2084"></a>2084</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2085"></a>2085</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findmin([8,0.1,-9,pi])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2086"></a>2086</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(-9.0, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2087"></a>2087</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2088"></a>2088</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findmin([7,1,1,6])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2089"></a>2089</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(1, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2090"></a>2090</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2091"></a>2091</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; findmin([7,1,1,NaN])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2092"></a>2092</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(NaN, 4)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2093"></a>2093</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2094"></a>2094</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2095"></a>2095</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findmin(a) = _findmin(a, :)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2096"></a>2096</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2097"></a>2097</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _findmin(a, ::Colon)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2098"></a>2098</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = pairs(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2099"></a>2099</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = iterate(p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2100"></a>2100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if y === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2101"></a>2101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;collection must be non-empty&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2102"></a>2102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2103"></a>2103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (mi, m), s = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2104"></a>2104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = mi
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2105"></a>2105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2106"></a>2106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y = iterate(p, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2107"></a>2107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y === nothing &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2108"></a>2108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        m != m &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2109"></a>2109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (i, ai), s = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2110"></a>2110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if ai != ai || isless(ai, m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2111"></a>2111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            m = ai
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2112"></a>2112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            mi = i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2113"></a>2113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2114"></a>2114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2115"></a>2115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (m, mi)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2116"></a>2116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2117"></a>2117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2118"></a>2118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2119"></a>2119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    argmax(itr) -&gt; Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2120"></a>2120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2121"></a>2121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the index of the maximum element in a collection. If there are multiple maximal
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2122"></a>2122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">elements, then the first one will be returned.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2123"></a>2123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2124"></a>2124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The collection must not be empty.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2125"></a>2125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2126"></a>2126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2127"></a>2127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2128"></a>2128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; argmax([8,0.1,-9,pi])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2129"></a>2129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2130"></a>2130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2131"></a>2131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; argmax([1,7,7,6])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2132"></a>2132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2133"></a>2133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2134"></a>2134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; argmax([1,7,7,NaN])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2135"></a>2135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2136"></a>2136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2137"></a>2137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2138"></a>2138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">argmax(a) = findmax(a)[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2139"></a>2139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2140"></a>2140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2141"></a>2141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    argmin(itr) -&gt; Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2142"></a>2142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2143"></a>2143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the index of the minimum element in a collection. If there are multiple minimal
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2144"></a>2144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">elements, then the first one will be returned.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2145"></a>2145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2146"></a>2146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The collection must not be empty.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2147"></a>2147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2148"></a>2148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2149"></a>2149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2150"></a>2150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; argmin([8,0.1,-9,pi])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2151"></a>2151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2152"></a>2152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2153"></a>2153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; argmin([7,1,1,6])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2154"></a>2154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2155"></a>2155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2156"></a>2156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; argmin([7,1,1,NaN])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2157"></a>2157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2158"></a>2158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2159"></a>2159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2160"></a>2160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">argmin(a) = findmin(a)[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2161"></a>2161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2162"></a>2162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># similar to Matlab&#39;s ismember
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2163"></a>2163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2164"></a>2164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    indexin(a, b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2165"></a>2165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2166"></a>2166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return an array containing the first index in `b` for
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2167"></a>2167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">each value in `a` that is a member of `b`. The output
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2168"></a>2168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">array contains `nothing` wherever `a` is not a member of `b`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2169"></a>2169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2170"></a>2170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2171"></a>2171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2172"></a>2172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a = [&#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;b&#39;, &#39;d&#39;, &#39;a&#39;];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2173"></a>2173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2174"></a>2174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; b = [&#39;a&#39;, &#39;b&#39;, &#39;c&#39;];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2175"></a>2175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2176"></a>2176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; indexin(a, b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2177"></a>2177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">6-element Array{Union{Nothing, Int64},1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2178"></a>2178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2179"></a>2179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2180"></a>2180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2181"></a>2181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2182"></a>2182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2183"></a>2183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2184"></a>2184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2185"></a>2185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; indexin(b, a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2186"></a>2186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Union{Nothing, Int64},1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2187"></a>2187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2188"></a>2188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2189"></a>2189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2190"></a>2190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2191"></a>2191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2192"></a>2192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function indexin(a, b::AbstractArray)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2193"></a>2193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    inds = keys(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2194"></a>2194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bdict = Dict{eltype(b),eltype(inds)}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2195"></a>2195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (val, ind) in zip(b, inds)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2196"></a>2196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        get!(bdict, val, ind)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2197"></a>2197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2198"></a>2198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Union{eltype(inds), Nothing}[
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2199"></a>2199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        get(bdict, i, nothing) for i in a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2200"></a>2200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2201"></a>2201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2202"></a>2202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2203"></a>2203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _findin(a, b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2204"></a>2204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ind  = Int[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2205"></a>2205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bset = Set(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2206"></a>2206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds for (i,ai) in enumerate(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2207"></a>2207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ai in bset &amp;&amp; push!(ind, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2208"></a>2208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2209"></a>2209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ind
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2210"></a>2210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2211"></a>2211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2212"></a>2212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># If two collections are already sorted, _findin can be computed with
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2213"></a>2213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># a single traversal of the two collections. This is much faster than
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2214"></a>2214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># using a hash table (although it has the same complexity).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2215"></a>2215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _sortedfindin(v, w)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2216"></a>2216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    viter, witer = eachindex(v), eachindex(w)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2217"></a>2217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    out  = eltype(viter)[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2218"></a>2218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    vy, wy = iterate(viter), iterate(witer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2219"></a>2219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if vy === nothing || wy === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2220"></a>2220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return out
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2221"></a>2221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2222"></a>2222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    viteri, i = vy
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2223"></a>2223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    witerj, j = wy
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2224"></a>2224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2225"></a>2225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        vi, wj = v[viteri], w[witerj]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2226"></a>2226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2227"></a>2227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isless(vi, wj)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2228"></a>2228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                vy = iterate(viter, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2229"></a>2229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if vy === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2230"></a>2230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2231"></a>2231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2232"></a>2232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                viteri, i = vy
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2233"></a>2233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                vi        = v[viteri]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2234"></a>2234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif isless(wj, vi)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2235"></a>2235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                wy = iterate(witer, j)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2236"></a>2236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if wy === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2237"></a>2237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2238"></a>2238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2239"></a>2239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                witerj, j = wy
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2240"></a>2240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                wj        = w[witerj]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2241"></a>2241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2242"></a>2242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(out, viteri)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2243"></a>2243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                vy = iterate(viter, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2244"></a>2244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if vy === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2245"></a>2245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2246"></a>2246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2247"></a>2247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # We only increment the v iterator because v can have
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2248"></a>2248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # repeated matches to a single value in w
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2249"></a>2249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                viteri, i = vy
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2250"></a>2250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                vi        = v[viteri]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2251"></a>2251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2252"></a>2252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2253"></a>2253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2254"></a>2254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return out
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2255"></a>2255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2256"></a>2256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2257"></a>2257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function findall(pred::Fix2{typeof(in),&lt;:Union{Array{&lt;:Real},Real}}, x::Array{&lt;:Real})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2258"></a>2258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if issorted(x, Sort.Forward) &amp;&amp; issorted(pred.x, Sort.Forward)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2259"></a>2259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return _sortedfindin(x, pred.x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2260"></a>2260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2261"></a>2261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return _findin(x, pred.x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2262"></a>2262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2263"></a>2263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2264"></a>2264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># issorted fails for some element types so the method above has to be restricted
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2265"></a>2265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># to element with isless/&lt; defined.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2266"></a>2266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">findall(pred::Fix2{typeof(in)}, x::Union{AbstractArray, Tuple}) = _findin(x, pred.x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2267"></a>2267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2268"></a>2268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Copying subregions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2269"></a>2269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function indcopy(sz::Dims, I::Vector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2270"></a>2270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = length(I)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2271"></a>2271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = sz[n]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2272"></a>2272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = n+1:length(sz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2273"></a>2273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        s *= sz[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2274"></a>2274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2275"></a>2275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dst = eltype(I)[_findin(I[i], i &lt; n ? (1:sz[i]) : (1:s)) for i = 1:n]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2276"></a>2276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    src = eltype(I)[I[i][_findin(I[i], i &lt; n ? (1:sz[i]) : (1:s))] for i = 1:n]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2277"></a>2277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dst, src
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2278"></a>2278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2279"></a>2279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2280"></a>2280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function indcopy(sz::Dims, I::Tuple{Vararg{RangeIndex}})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2281"></a>2281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = length(I)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2282"></a>2282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = sz[n]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2283"></a>2283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = n+1:length(sz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2284"></a>2284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        s *= sz[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2285"></a>2285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2286"></a>2286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dst::typeof(I) = ntuple(i-&gt; _findin(I[i], i &lt; n ? (1:sz[i]) : (1:s)), n)::typeof(I)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2287"></a>2287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    src::typeof(I) = ntuple(i-&gt; I[i][_findin(I[i], i &lt; n ? (1:sz[i]) : (1:s))], n)::typeof(I)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2288"></a>2288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dst, src
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2289"></a>2289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2290"></a>2290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2291"></a>2291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Filter ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2292"></a>2292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2293"></a>2293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2294"></a>2294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    filter(f, a::AbstractArray)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2295"></a>2295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2296"></a>2296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return a copy of `a`, removing elements for which `f` is `false`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2297"></a>2297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The function `f` is passed one argument.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2298"></a>2298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2299"></a>2299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2300"></a>2300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2301"></a>2301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a = 1:10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2302"></a>2302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1:10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2303"></a>2303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2304"></a>2304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; filter(isodd, a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2305"></a>2305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2306"></a>2306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2307"></a>2307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2308"></a>2308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2309"></a>2309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 7
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2310"></a>2310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 9
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2311"></a>2311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2312"></a>2312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2313"></a>2313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">filter(f, As::AbstractArray) = As[map(f, As)::AbstractArray{Bool}]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2314"></a>2314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2315"></a>2315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2316"></a>2316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    filter!(f, a::AbstractVector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2317"></a>2317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2318"></a>2318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Update `a`, removing elements for which `f` is `false`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2319"></a>2319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The function `f` is passed one argument.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2320"></a>2320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2321"></a>2321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2322"></a>2322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2323"></a>2323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; filter!(isodd, Vector(1:10))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2324"></a>2324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2325"></a>2325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2326"></a>2326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2327"></a>2327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2328"></a>2328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 7
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2329"></a>2329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 9
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2330"></a>2330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2331"></a>2331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2332"></a>2332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function filter!(f, a::AbstractVector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2333"></a>2333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    idx = eachindex(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2334"></a>2334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = iterate(idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2335"></a>2335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y === nothing &amp;&amp; return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2336"></a>2336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i, state = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2337"></a>2337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2338"></a>2338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for acurr in a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2339"></a>2339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if f(acurr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2340"></a>2340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            a[i] = acurr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2341"></a>2341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            y = iterate(idx, state)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2342"></a>2342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            y === nothing &amp;&amp; (i += 1; break)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2343"></a>2343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            i, state = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2344"></a>2344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2345"></a>2345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2346"></a>2346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2347"></a>2347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    deleteat!(a, i:last(idx))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2348"></a>2348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2349"></a>2349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2350"></a>2350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2351"></a>2351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2352"></a>2352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">filter(f, a::Vector) = mapfilter(f, push!, a, empty(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2353"></a>2353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2354"></a>2354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># set-like operators for vectors
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2355"></a>2355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># These are moderately efficient, preserve order, and remove dupes.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2356"></a>2356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2357"></a>2357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_unique_filter!(pred, update!, state) = function (x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2358"></a>2358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if pred(x, state)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2359"></a>2359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        update!(state, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2360"></a>2360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2361"></a>2361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2362"></a>2362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2363"></a>2363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2364"></a>2364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2365"></a>2365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2366"></a>2366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_grow_filter!(seen) = _unique_filter!(∉, push!, seen)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2367"></a>2367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_shrink_filter!(keep) = _unique_filter!(∈, pop!, keep)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2368"></a>2368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2369"></a>2369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _grow!(pred!, v::AbstractVector, itrs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2370"></a>2370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    filter!(pred!, v) # uniquify v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2371"></a>2371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for itr in itrs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2372"></a>2372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        mapfilter(pred!, push!, itr, v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2373"></a>2373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2374"></a>2374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2375"></a>2375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2376"></a>2376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2377"></a>2377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">union!(v::AbstractVector{T}, itrs...) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2378"></a>2378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _grow!(_grow_filter!(sizehint!(Set{T}(), length(v))), v, itrs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2379"></a>2379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2380"></a>2380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">symdiff!(v::AbstractVector{T}, itrs...) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2381"></a>2381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _grow!(_shrink_filter!(symdiff!(Set{T}(), v, itrs...)), v, itrs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2382"></a>2382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2383"></a>2383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _shrink!(shrinker!, v::AbstractVector, itrs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2384"></a>2384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    seen = Set{eltype(v)}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2385"></a>2385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    filter!(_grow_filter!(seen), v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2386"></a>2386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    shrinker!(seen, itrs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2387"></a>2387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    filter!(_in(seen), v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2388"></a>2388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2389"></a>2389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2390"></a>2390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">intersect!(v::AbstractVector, itrs...) = _shrink!(intersect!, v, itrs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2391"></a>2391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">setdiff!(  v::AbstractVector, itrs...) = _shrink!(setdiff!, v, itrs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2392"></a>2392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2393"></a>2393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">vectorfilter(f, v::AbstractVector) = filter(f, v) # TODO: do we want this special case?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2394"></a>2394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">vectorfilter(f, v) = [x for x in v if f(x)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2395"></a>2395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2396"></a>2396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _shrink(shrinker!, itr, itrs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2397"></a>2397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    keep = shrinker!(Set(itr), itrs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2398"></a>2398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    vectorfilter(_shrink_filter!(keep), itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2399"></a>2399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2400"></a>2400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2401"></a>2401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">intersect(itr, itrs...) = _shrink(intersect!, itr, itrs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Larray-jl-e331915c4fb281d94775-line.html-2402"></a>2402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">setdiff(  itr, itrs...) = _shrink(setdiff!, itr, itrs)
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/bignums-jl-e031ee9c77e42cd3aafb-line.html b/profiling/statprof/bignums-jl-e031ee9c77e42cd3aafb-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..3694c581cea3a9b3988b0a5ae7256b8d5e61972b
--- /dev/null
+++ b/profiling/statprof/bignums-jl-e031ee9c77e42cd3aafb-line.html
@@ -0,0 +1,4987 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/bignums.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia, but is derived from
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># https://github.com/google/double-conversion which has the following license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Copyright 2006-2014, the V8 project authors. All rights reserved.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Redistribution and use in source and binary forms, with or without
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># modification, are permitted provided that the following conditions are
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># met:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#     * Redistributions of source code must retain the above copyright
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       notice, this list of conditions and the following disclaimer.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#     * Redistributions in binary form must reproduce the above
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       copyright notice, this list of conditions and the following
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       disclaimer in the documentation and/or other materials provided
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       with the distribution.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#     * Neither the name of Google Inc. nor the names of its
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       contributors may be used to endorse or promote products derived
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       from this software without specific prior written permission.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">module Bignums
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">import Base: ==, &lt;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">export Bignum
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kMaxSignificantBits = 3584
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const Chunk = UInt32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DoubleChunk = UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kChunkSize = sizeof(Chunk) * 8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kDoubleChunkSize = sizeof(DoubleChunk) * 8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># With bigit size of 28 we loose some bits, but a double still fits easily
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># into two chunks, and more importantly we can use the Comba multiplication.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kBigitSize = 28
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kBigitMask = Chunk((1 &lt;&lt; kBigitSize) - 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Every instance allocates kBigitLength chunks on the stack. Bignums cannot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># grow. There are no checks if the stack-allocated space is sufficient.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kBigitCapacity = div(kMaxSignificantBits, kBigitSize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct Bignum
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bigits::Vector{UInt32}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    used_digits::Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    exponent::Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function Bignum()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigits = Vector{UInt32}(undef, kBigitCapacity)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds for i = 1:kBigitCapacity
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            bigits[i] = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new(bigits,0,0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(a::Bignum,b::Bignum) = compare(a,b) == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;(a::Bignum,b::Bignum) = compare(a,b) &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">times10!(x::Bignum) = multiplybyuint32!(x,UInt32(10))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">plusequal(a,b,c) = pluscompare(a,b,c) == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">pluslessequal(a,b,c) = pluscompare(a,b,c) &lt;= 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">plusless(a,b,c) = pluscompare(a,b,c) &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">lessequal(a::Bignum,b::Bignum) = compare(a,b) &lt;= 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">less(a::Bignum,b::Bignum) = compare(a,b) &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">bigitlength(x::Bignum) = x.used_digits + x.exponent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">bitsize(value) = 8 * sizeof(value)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function zero!(x::Bignum)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds x.bigits[i] = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.used_digits = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.exponent = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function clamp!(x::Bignum)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds while (x.used_digits &gt; 0 &amp;&amp; x.bigits[x.used_digits] == 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.used_digits -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.used_digits == 0 &amp;&amp; (x.exponent = 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isclamped(x::Bignum) = x.used_digits == 0 || x.bigits[x.used_digits] != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function align!(x::Bignum,other::Bignum)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds if x.exponent &gt; other.exponent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        zero_digits = x.exponent - other.exponent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = x.used_digits:-1:1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            x.bigits[i + zero_digits] = x.bigits[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 1:zero_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            x.bigits[i] = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.used_digits += zero_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.exponent -= zero_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function bigitshiftleft!(x::Bignum,shift_amount)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    carry::UInt32 = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_carry::Chunk = x.bigits[i] &gt;&gt; (kBigitSize - shift_amount)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i] = ((x.bigits[i] &lt;&lt; shift_amount) + carry) &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        carry = new_carry
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if carry != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[x.used_digits+1] = carry
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.used_digits += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function subtracttimes!(x::Bignum,other::Bignum,factor)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if factor &lt; 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 1:factor
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            subtractbignum!(x,other)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    borrow::Chunk = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    exponent_diff = other.exponent - x.exponent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:other.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        product::DoubleChunk = DoubleChunk(factor) * other.bigits[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        remove::DoubleChunk = borrow + product
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        difference::Chunk = (x.bigits[i+exponent_diff] - (remove &amp; kBigitMask)) % Chunk
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i+exponent_diff] = difference &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        borrow = ((difference &gt;&gt; (kChunkSize - 1)) + (remove &gt;&gt; kBigitSize)) % Chunk
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = (other.used_digits + exponent_diff + 1):x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        borrow == 0 &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        difference::Chunk = x.bigits[i] - borrow
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i] = difference &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        borrow = difference &gt;&gt; (kChunkSize - 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    clamp!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function assignuint16!(x::Bignum,value::UInt16)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    zero!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    value == 0 &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.bigits[1] = value
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.used_digits = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kUInt64Size = 64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function assignuint64!(x::Bignum,value::UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    zero!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    value == 0 &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    needed_bigits = div(kUInt64Size,kBigitSize) + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds for i = 1:needed_bigits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i] = value &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        value &gt;&gt;= kBigitSize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.used_digits = needed_bigits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    clamp!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function assignbignum!(x::Bignum,other::Bignum)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.exponent = other.exponent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:other.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i] = other.bigits[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = (other.used_digits+1):x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i] = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.used_digits = other.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function adduint64!(x::Bignum,operand::UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    operand == 0 &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    other = Bignum()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    assignuint64!(other,operand)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    addbignum!(x,other)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function addbignum!(x::Bignum,other::Bignum)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    align!(x,other)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    carry::Chunk = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bigit_pos = other.exponent - x.exponent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds for i = 1:other.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sum::Chunk = x.bigits[bigit_pos+1] + other.bigits[i] + carry
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[bigit_pos+1] = sum &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        carry = sum &gt;&gt; kBigitSize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigit_pos += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds while carry != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sum = x.bigits[bigit_pos+1] + carry
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[bigit_pos+1] = sum &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        carry = sum &gt;&gt; kBigitSize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigit_pos += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.used_digits = max(bigit_pos,x.used_digits)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function subtractbignum!(x::Bignum,other::Bignum)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    align!(x,other)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    offset = other.exponent - x.exponent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    borrow = Chunk(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:other.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        difference = x.bigits[i+offset] - other.bigits[i] - borrow
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i+offset] = difference &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        borrow = difference &gt;&gt; (kChunkSize - 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = other.used_digits+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while borrow != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        difference = x.bigits[i+offset] - borrow
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i+offset] = difference &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        borrow = difference &gt;&gt; (kChunkSize - 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    clamp!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function shiftleft!(x::Bignum,shift_amount)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.used_digits == 0 &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.exponent += div(shift_amount,kBigitSize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    local_shift = shift_amount % kBigitSize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bigitshiftleft!(x,local_shift)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function multiplybyuint32!(x::Bignum,factor::UInt32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    factor == 1 &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if factor == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        zero!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.used_digits == 0 &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    carry::DoubleChunk = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        product::DoubleChunk = (factor % DoubleChunk) * x.bigits[i] + carry
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i] = (product &amp; kBigitMask) % Chunk
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        carry = product &gt;&gt; kBigitSize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while carry != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[x.used_digits+1] = carry &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.used_digits += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        carry &gt;&gt;= kBigitSize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function multiplybyuint64!(x::Bignum,factor::UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    factor == 1 &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if factor == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        zero!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    carry::UInt64 = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    low::UInt64 = factor &amp; 0xFFFFFFFF
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    high::UInt64 = factor &gt;&gt; 32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        product_low::UInt64 = low * x.bigits[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        product_high::UInt64 = high * x.bigits[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        tmp::UInt64 = (carry &amp; kBigitMask) + product_low
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i] = tmp &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        carry = (carry &gt;&gt; kBigitSize) + (tmp &gt;&gt; kBigitSize) +
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                (product_high &lt;&lt; (32 - kBigitSize))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while carry != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[x.used_digits+1] = carry &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.used_digits += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        carry &gt;&gt;= kBigitSize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive27 = UInt64(0x6765c793fa10079d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive1 = UInt16(5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive2 = UInt16(kFive1 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive3 = UInt16(kFive2 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive4 = UInt16(kFive3 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive5 = UInt16(kFive4 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive6 = UInt16(kFive5 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive7 = UInt32(kFive6 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive8 = UInt32(kFive7 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive9 = UInt32(kFive8 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive10 = UInt32(kFive9 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive11 = UInt32(kFive10 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive12 = UInt32(kFive11 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive13 = UInt32(kFive12 * 5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kFive1_to_12 = UInt32[kFive1, kFive2, kFive3, kFive4, kFive5, kFive6,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        kFive7, kFive8, kFive9, kFive10, kFive11, kFive12]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function multiplybypoweroften!(x::Bignum,exponent)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    exponent == 0 &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.used_digits == 0 &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    remaining_exponent = exponent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while remaining_exponent &gt;= 27
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        multiplybyuint64!(x,kFive27)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        remaining_exponent -= 27
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while remaining_exponent &gt;= 13
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        multiplybyuint32!(x,kFive13)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        remaining_exponent -= 13
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    remaining_exponent &gt; 0 &amp;&amp; multiplybyuint32!(x,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            kFive1_to_12[remaining_exponent])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    shiftleft!(x,exponent)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function square!(x::Bignum)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    product_length = 2 * x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (1 &lt;&lt; (2 * (kChunkSize - kBigitSize))) &lt;= x.used_digits &amp;&amp; error(&quot;unimplemented&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    accumulator::DoubleChunk = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    copy_offset = x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[copy_offset + i] = x.bigits[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigit_index1 = i-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigit_index2 = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while bigit_index1 &gt;= 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            chunk1::Chunk = x.bigits[copy_offset + bigit_index1 + 1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            chunk2::Chunk = x.bigits[copy_offset + bigit_index2 + 1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            accumulator += (chunk1 % DoubleChunk) * chunk2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            bigit_index1 -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            bigit_index2 += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i] = (accumulator % Chunk) &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        accumulator &gt;&gt;= kBigitSize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = x.used_digits+1:product_length
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigit_index1 = x.used_digits - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigit_index2 = i - bigit_index1 - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while bigit_index2 &lt; x.used_digits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            chunk1::Chunk = x.bigits[copy_offset + bigit_index1 + 1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            chunk2::Chunk = x.bigits[copy_offset + bigit_index2 + 1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            accumulator += (chunk1 % DoubleChunk) * chunk2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            bigit_index1 -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            bigit_index2 += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[i] = (accumulator % Chunk) &amp; kBigitMask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        accumulator &gt;&gt;= kBigitSize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.used_digits = product_length
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.exponent *= 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    clamp!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function assignpoweruint16!(x::Bignum,base::UInt16,power_exponent::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if power_exponent == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        assignuint16!(x,UInt16(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    zero!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    shifts::Int = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while base &amp; UInt16(1) == UInt16(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        base &gt;&gt;= UInt16(1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        shifts += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bit_size::Int = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tmp_base::Int= base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while tmp_base != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        tmp_base &gt;&gt;= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bit_size += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    final_size = bit_size * power_exponent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mask::Int = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while power_exponent &gt;= mask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        mask &lt;&lt;= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mask &gt;&gt;= 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    this_value::UInt64 = base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    delayed_multiplication = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    max_32bits::UInt64 = 0xFFFFFFFF
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while mask != 0 &amp;&amp; this_value &lt;= max_32bits
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        this_value *= this_value
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if (power_exponent &amp; mask) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            base_bits_mask::UInt64 = ~(UInt64(1) &lt;&lt; (64 - bit_size) - 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            high_bits_zero = (this_value &amp; base_bits_mask) == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if high_bits_zero
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                this_value *= base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                delayed_multiplication = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        mask &gt;&gt;= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    assignuint64!(x,this_value)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    delayed_multiplication &amp;&amp; multiplybyuint32!(x,UInt32(base))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while mask != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        square!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (power_exponent &amp; mask) != 0 &amp;&amp; multiplybyuint32!(x,UInt32(base))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        mask &gt;&gt;= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    shiftleft!(x,shifts * power_exponent)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-bignums-jl-dividemodulointbignum-420"></a>
+              1 (2.38%) samples spent in dividemodulointbignum!<br />
+            </div>
+            <span class="code">function dividemodulointbignum!(x::Bignum,other::Bignum)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-421"></a>421</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <span class="code">    bigitlength(x) &lt; bigitlength(other) &amp;&amp; return UInt16(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    align!(x,other)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result::UInt16 = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while bigitlength(x) &gt; bigitlength(other)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result += x.bigits[x.used_digits] % UInt16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        subtracttimes!(x,other,x.bigits[x.used_digits])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    this_bigit::Chunk = x.bigits[x.used_digits]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    other_bigit::Chunk = other.bigits[other.used_digits]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if other.used_digits == 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        quotient = reinterpret(Int32,div(this_bigit,other_bigit))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.bigits[x.used_digits] = this_bigit - other_bigit * reinterpret(UInt32,quotient)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result += quotient % UInt16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        clamp!(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    division_estimate = reinterpret(Int32,div(this_bigit,other_bigit+Chunk(1)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result += division_estimate % UInt16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    subtracttimes!(x,other,division_estimate)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    other_bigit * (division_estimate+1) &gt; this_bigit &amp;&amp; return result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while lessequal(other, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        subtractbignum!(x,other)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result += UInt16(1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function pluscompare(a::Bignum,b::Bignum,c::Bignum)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bigitlength(a) &lt; bigitlength(b) &amp;&amp; return pluscompare(b,a,c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bigitlength(a) + 1 &lt; bigitlength(c) &amp;&amp; return -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bigitlength(a) &gt; bigitlength(c) &amp;&amp; return 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a.exponent &gt;= bigitlength(b) &amp;&amp; bigitlength(a) &lt; bigitlength(c) &amp;&amp; return -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    borrow::Chunk = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    min_exponent = min(a.exponent,b.exponent,c.exponent)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = (bigitlength(c)-1):-1:min_exponent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        chunk_a::Chunk = bigitat(a,i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        chunk_b::Chunk = bigitat(b,i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        chunk_c::Chunk = bigitat(c,i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sum::Chunk = chunk_a + chunk_b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if sum &gt; chunk_c + borrow
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            borrow = chunk_c + borrow - sum
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            borrow &gt; 1 &amp;&amp; return -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            borrow &lt;&lt;= kBigitSize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    borrow == 0 &amp;&amp; return 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-bignums-jl-compare-474"></a>
+              1 (2.38%) samples spent in compare<br />
+            </div>
+            <span class="code">function compare(a::Bignum,b::Bignum)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-475"></a>475</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <span class="code">    bigit_length_a = bigitlength(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bigit_length_b = bigitlength(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bigit_length_a &lt; bigit_length_b &amp;&amp; return -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bigit_length_a &gt; bigit_length_b &amp;&amp; return 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = (bigit_length_a-1):-1:min(a.exponent,b.exponent)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigit_a::Chunk = bigitat(a,i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigit_b::Chunk = bigitat(b,i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigit_a &lt; bigit_b &amp;&amp; return -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bigit_a &gt; bigit_b &amp;&amp; return 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function bigitat(x::Bignum,index)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    index &gt;= bigitlength(x) &amp;&amp; return Chunk(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    index &lt; x.exponent &amp;&amp; return Chunk(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds ret = x.bigits[index - x.exponent+1]::Chunk
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lbignums-jl-e031ee9c77e42cd3aafb-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end # module
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/boot-jl-1c95b3ccecba8d7f1acb-line.html b/profiling/statprof/boot-jl-1c95b3ccecba8d7f1acb-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..d766e667c37b09184215193c9c8049e5b361f438
--- /dev/null
+++ b/profiling/statprof/boot-jl-1c95b3ccecba8d7f1acb-line.html
@@ -0,0 +1,7563 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># commented-out definitions are implemented in C
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#abstract type Any &lt;: Any end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#abstract type Type{T} end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#abstract type Vararg{T} end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    #opaque
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct TypeName
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    name::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct DataType &lt;: Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    name::TypeName
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    super::Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    parameters::Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    names::Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    types::Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    ctor
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    instance
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    size::Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    abstract::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    mutable::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    pointerfree::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct Union &lt;: Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct TypeVar
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    name::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    lb::Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    ub::Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct UnionAll
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    var::TypeVar
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    body
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct Nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#const nothing = Nothing()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#abstract type AbstractArray{T,N} end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#abstract type DenseArray{T,N} &lt;: AbstractArray{T,N} end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct Array{T,N} &lt;: DenseArray{T,N}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    name::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct Method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct MethodInstance
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct CodeInfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct TypeMapLevel
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct TypeMapEntry
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#abstract type Ref{T} end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#primitive type Ptr{T} &lt;: Ref{T} {32|64} end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># types for the front end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct Expr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    head::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    args::Array{Any,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct LineNumberNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    line::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    file::Any # nominally Union{Symbol,Nothing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct LineInfoNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    mod::Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    method::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    file::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    line::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    inlined_at::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct GotoNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    label::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct PiNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct PhiNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    edges::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    values::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct PhiCNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    values::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct UpsilonNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct QuoteNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    value
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct GlobalRef
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    mod::Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    name::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mutable struct Task
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    parent::Task
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    storage::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    state::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    donenotify::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    result::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    exception::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    backtrace::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    logstate::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    code::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">export
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # key types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Any, DataType, Vararg, NTuple,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Tuple, Type, UnionAll, TypeVar, Union, Nothing, Cvoid,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    AbstractArray, DenseArray, NamedTuple,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # special objects
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Function, Method,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Module, Symbol, Task, Array, UndefInitializer, undef, WeakRef, VecElement,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # numeric types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Number, Real, Integer, Bool, Ref, Ptr,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    AbstractFloat, Float16, Float32, Float64,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Signed, Int, Int8, Int16, Int32, Int64, Int128,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Unsigned, UInt, UInt8, UInt16, UInt32, UInt64, UInt128,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # string types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    AbstractChar, Char, AbstractString, String, IO,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # errors
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ErrorException, BoundsError, DivideError, DomainError, Exception,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    InterruptException, InexactError, OutOfMemoryError, ReadOnlyMemoryError,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    OverflowError, StackOverflowError, SegmentationFault, UndefRefError, UndefVarError,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    TypeError, ArgumentError, MethodError, AssertionError, LoadError, InitError,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    UndefKeywordError,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # AST representation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Expr, QuoteNode, LineNumberNode, GlobalRef,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # object model functions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fieldtype, getfield, setfield!, nfields, throw, tuple, ===, isdefined, eval, ifelse,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # sizeof    # not exported, to avoid conflicting with Base.sizeof
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # type reflection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &lt;:, typeof, isa, typeassert,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # method reflection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    applicable, invoke,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # constants
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing, Main
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const getproperty = getfield
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const setproperty! = setfield!
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type Number end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type Real     &lt;: Number end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type AbstractFloat &lt;: Real end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type Integer  &lt;: Real end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type Signed   &lt;: Integer end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type Unsigned &lt;: Integer end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">primitive type Float16 &lt;: AbstractFloat 16 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">primitive type Float32 &lt;: AbstractFloat 32 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">primitive type Float64 &lt;: AbstractFloat 64 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#primitive type Bool &lt;: Integer 8 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type AbstractChar end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">primitive type Char &lt;: AbstractChar 32 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">primitive type Int8    &lt;: Signed   8 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#primitive type UInt8   &lt;: Unsigned 8 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">primitive type Int16   &lt;: Signed   16 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">primitive type UInt16  &lt;: Unsigned 16 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#primitive type Int32   &lt;: Signed   32 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#primitive type UInt32  &lt;: Unsigned 32 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#primitive type Int64   &lt;: Signed   64 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#primitive type UInt64  &lt;: Unsigned 64 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">primitive type Int128  &lt;: Signed   128 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">primitive type UInt128 &lt;: Unsigned 128 end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Int === Int64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const UInt = UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const UInt = UInt32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function Typeof end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ccall(:jl_toplevel_eval_in, Any, (Any, Any),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">      Core, quote
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">      (f::typeof(Typeof))(x) = ($(_expr(:meta,:nospecialize,:x)); isa(x,Type) ? Type{x} : typeof(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">      end)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro nospecialize(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _expr(:meta, :nospecialize, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Expr(@nospecialize args...) = _expr(args...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct ErrorException &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    msg::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro _inline_meta()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Expr(:meta, :inline)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro _noinline_meta()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Expr(:meta, :noinline)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct BoundsError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    BoundsError() = new()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    BoundsError(@nospecialize(a)) = (@_noinline_meta; new(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    BoundsError(@nospecialize(a), i) = (@_noinline_meta; new(a,i))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct DivideError         &lt;: Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct OutOfMemoryError    &lt;: Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct ReadOnlyMemoryError &lt;: Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct SegmentationFault   &lt;: Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct StackOverflowError  &lt;: Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct UndefRefError       &lt;: Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct UndefVarError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    var::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct InterruptException &lt;: Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct DomainError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    msg::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    DomainError(@nospecialize(val)) = (@_noinline_meta; new(val, &quot;&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    DomainError(@nospecialize(val), @nospecialize(msg)) = (@_noinline_meta; new(val, msg))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct TypeError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    func::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    context::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    expected::Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    got
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct InexactError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    func::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    T  # Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    InexactError(f::Symbol, @nospecialize(T), @nospecialize(val)) = (@_noinline_meta; new(f, T, val))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct OverflowError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    msg::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct ArgumentError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    msg::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct UndefKeywordError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    var::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct MethodError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    args
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    world::UInt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    MethodError(@nospecialize(f), @nospecialize(args), world::UInt) = new(f, args, world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const typemax_UInt = ccall(:jl_typemax_uint, Any, (Any,), UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">MethodError(@nospecialize(f), @nospecialize(args)) = MethodError(f, args, typemax_UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct AssertionError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    msg::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">AssertionError() = AssertionError(&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type WrappedException &lt;: Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct LoadError &lt;: WrappedException
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    file::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    line::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    error
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct InitError &lt;: WrappedException
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mod::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    error
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">String(s::String) = s  # no constructor yet
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const Cvoid = Nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Nothing() = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This should always be inlined
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getptls() = ccall(:jl_get_ptls_states, Ptr{Cvoid}, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-317"></a>317</td>
+          <td></td>
+          <td>40 (95.24%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-boot-jl-include-317"></a>
+              40 (95.24%) samples spent in include<br />
+              0 (ex.),
+              40 (100.00%) (incl.)
+              when called from
+              include_relative
+              <a href="loading-jl-267f08df202e5203e249-line.html#Lloading-jl-267f08df202e5203e249-line.html-1044">line 1044</a><br />
+            </div>
+            <div class="callees">
+              40 (100.00%)
+              samples spent calling
+              <a href="Profile-jl-e79abb67faac09cf5e9b-line.html#S-buildworker-worker-package_linux64-build-usr-share-julia-stdlib-v1-0-Profile-src-Profile-jl-top-level-scope-25">top-level scope</a><br />
+            </div>
+            <span class="code">include(m::Module, fname::String) = ccall(:jl_load_, Any, (Any, Any), m, fname)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(m::Module, @nospecialize(e)) = ccall(:jl_toplevel_eval_in, Any, (Any, Any), m, e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">kwfunc(@nospecialize(f)) = ccall(:jl_get_keyword_sorter, Any, (Any,), f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">kwftype(@nospecialize(t)) = typeof(ccall(:jl_get_kwsorter, Any, (Any,), t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct Box
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    contents::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Box(@nospecialize(x)) = new(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Box() = new()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># constructors for built-in types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct WeakRef
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    value
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    WeakRef() = WeakRef(nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    WeakRef(@nospecialize(v)) = ccall(:jl_gc_new_weakref_th, Ref{WeakRef},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      (Ptr{Cvoid}, Any), getptls(), v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">TypeVar(n::Symbol) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_new_typevar, Ref{TypeVar}, (Any, Any, Any), n, Union{}, Any)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">TypeVar(n::Symbol, @nospecialize(ub)) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_new_typevar, Ref{TypeVar}, (Any, Any, Any), n, Union{}, ub)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">TypeVar(n::Symbol, @nospecialize(lb), @nospecialize(ub)) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_new_typevar, Ref{TypeVar}, (Any, Any, Any), n, lb, ub)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">UnionAll(v::TypeVar, @nospecialize(t)) = ccall(:jl_type_unionall, Any, (Any, Any), v, t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(::Type{Tuple{}})() = () # Tuple{}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct VecElement{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    value::T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    VecElement{T}(value::T) where {T} = new(value) # disable converting constructor in Core
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">VecElement(arg::T) where {T} = VecElement{T}(arg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_new(typ::Symbol, argty::Symbol) = eval(Core, :($typ(@nospecialize n::$argty) = $(Expr(:new, typ, :n))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_new(:GotoNode, :Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_new(:NewvarNode, :SlotNumber)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_new(:QuoteNode, :Any)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_new(:SSAValue, :Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(LineNumberNode(l::Int) = $(Expr(:new, :LineNumberNode, :l, nothing))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(LineNumberNode(l::Int, @nospecialize(f)) = $(Expr(:new, :LineNumberNode, :l, :f))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(GlobalRef(m::Module, s::Symbol) = $(Expr(:new, :GlobalRef, :m, :s))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(SlotNumber(n::Int) = $(Expr(:new, :SlotNumber, :n))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(TypedSlot(n::Int, @nospecialize(t)) = $(Expr(:new, :TypedSlot, :n, :t))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(PhiNode(edges::Array{Any, 1}, values::Array{Any, 1}) = $(Expr(:new, :PhiNode, :edges, :values))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(PiNode(val, typ) = $(Expr(:new, :PiNode, :val, :typ))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(PhiCNode(values::Array{Any, 1}) = $(Expr(:new, :PhiCNode, :values))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(UpsilonNode(val) = $(Expr(:new, :UpsilonNode, :val))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(UpsilonNode() = $(Expr(:new, :UpsilonNode))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(Core, :(LineInfoNode(mod::Module, method::Symbol, file::Symbol, line::Int, inlined_at::Int) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             $(Expr(:new, :LineInfoNode, :mod, :method, :file, :line, :inlined_at))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Module(name::Symbol=:anonymous, std_imports::Bool=true) = ccall(:jl_f_new_module, Ref{Module}, (Any, Bool), name, std_imports)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Task(@nospecialize(f)) = ccall(:jl_new_task, Ref{Task}, (Any, Int), f, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># simple convert for use by constructors of types in Core
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># note that there is no actual conversion defined here,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># so the methods and ccall&#39;s in Core aren&#39;t permitted to use convert
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">convert(::Type{Any}, @nospecialize(x)) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">convert(::Type{T}, x::T) where {T} = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">cconvert(::Type{T}, x) where {T} = convert(T, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_convert(::Type{T}, x::T) where {T} = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const NTuple{N,T} = Tuple{Vararg{T,N}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## primitive Array constructors
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct UndefInitializer end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const undef = UndefInitializer()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># type and dimensionality specified, accepting dims as series of Ints
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,1}(::UndefInitializer, m::Int) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_alloc_array_1d, Array{T,1}, (Any, Int), Array{T,1}, m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,2}(::UndefInitializer, m::Int, n::Int) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_alloc_array_2d, Array{T,2}, (Any, Int, Int), Array{T,2}, m, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,3}(::UndefInitializer, m::Int, n::Int, o::Int) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_alloc_array_3d, Array{T,3}, (Any, Int, Int, Int), Array{T,3}, m, n, o)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,N}(::UndefInitializer, d::Vararg{Int,N}) where {T,N} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_new_array, Array{T,N}, (Any, Any), Array{T,N}, d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># type and dimensionality specified, accepting dims as tuples of Ints
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,1}(::UndefInitializer, d::NTuple{1,Int}) where {T} = Array{T,1}(undef, getfield(d,1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,2}(::UndefInitializer, d::NTuple{2,Int}) where {T} = Array{T,2}(undef, getfield(d,1), getfield(d,2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,3}(::UndefInitializer, d::NTuple{3,Int}) where {T} = Array{T,3}(undef, getfield(d,1), getfield(d,2), getfield(d,3))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,N}(::UndefInitializer, d::NTuple{N,Int}) where {T,N} = ccall(:jl_new_array, Array{T,N}, (Any, Any), Array{T,N}, d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># type but not dimensionality specified
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::UndefInitializer, m::Int) where {T} = Array{T,1}(undef, m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::UndefInitializer, m::Int, n::Int) where {T} = Array{T,2}(undef, m, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::UndefInitializer, m::Int, n::Int, o::Int) where {T} = Array{T,3}(undef, m, n, o)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::UndefInitializer, d::NTuple{N,Int}) where {T,N} = Array{T,N}(undef, d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># empty vector constructor
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,1}() where {T} = Array{T,1}(undef, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(::Type{Array{T,N} where T})(x::AbstractArray{S,N}) where {S,N} = Array{S,N}(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array(A::AbstractArray{T,N})    where {T,N}   = Array{T,N}(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(A::AbstractArray{S,N}) where {T,N,S} = Array{T,N}(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">AbstractArray{T}(A::AbstractArray{S,N}) where {T,S,N} = AbstractArray{T,N}(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># primitive Symbol constructors
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function Symbol(s::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ccall(:jl_symbol_n, Ref{Symbol}, (Ptr{UInt8}, Int),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                 ccall(:jl_string_ptr, Ptr{UInt8}, (Any,), s),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                 sizeof(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function Symbol(a::Array{UInt8,1})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ccall(:jl_symbol_n, Ref{Symbol}, (Ptr{UInt8}, Int),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                 ccall(:jl_array_ptr, Ptr{UInt8}, (Any,), a),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                 Intrinsics.arraylen(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Symbol(s::Symbol) = s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># module providing the IR object model
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">module IR
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">export CodeInfo, MethodInstance, GotoNode,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    NewvarNode, SSAValue, Slot, SlotNumber, TypedSlot,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    PiNode, PhiNode, PhiCNode, UpsilonNode, LineInfoNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">import Core: CodeInfo, MethodInstance, GotoNode,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    NewvarNode, SSAValue, Slot, SlotNumber, TypedSlot,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    PiNode, PhiNode, PhiCNode, UpsilonNode, LineInfoNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># docsystem basics
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const unescape = Symbol(&quot;hygienic-scope&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro doc(x...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    docex = atdoc(__source__, __module__, x...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(docex, Expr) &amp;&amp; docex.head === :escape &amp;&amp; return docex
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Expr(:escape, Expr(unescape, docex, typeof(atdoc).name.module))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro __doc__(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Expr(:escape, Expr(:block, Expr(:meta, :doc), x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">atdoc     = (source, mod, str, expr) -&gt; Expr(:escape, expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">atdoc!(λ) = global atdoc = λ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># simple stand-alone print definitions for debugging
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type IO end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct CoreSTDOUT &lt;: IO end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct CoreSTDERR &lt;: IO end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const stdout = CoreSTDOUT()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const stderr = CoreSTDERR()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">io_pointer(::CoreSTDOUT) = Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stdout, Ptr{Cvoid}), 1, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">io_pointer(::CoreSTDERR) = Intrinsics.pointerref(Intrinsics.cglobal(:jl_uv_stderr, Ptr{Cvoid}), 1, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_write(io::IO, x::Ptr{UInt8}, nb::UInt) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (ccall(:jl_uv_puts, Cvoid, (Ptr{Cvoid}, Ptr{UInt8}, UInt), io_pointer(io), x, nb); nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_write(io::IO, x::Ptr{UInt8}, nb::Int) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (ccall(:jl_uv_puts, Cvoid, (Ptr{Cvoid}, Ptr{UInt8}, Int), io_pointer(io), x, nb); nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(io::IO, x::UInt8) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (ccall(:jl_uv_putb, Cvoid, (Ptr{Cvoid}, UInt8), io_pointer(io), x); 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(io::IO, x::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nb = sizeof(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsafe_write(io, ccall(:jl_string_ptr, Ptr{UInt8}, (Any,), x), nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(io::IO, @nospecialize x) = ccall(:jl_static_show, Cvoid, (Ptr{Cvoid}, Any), io_pointer(io), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(io::IO, x::AbstractChar) = ccall(:jl_uv_putc, Cvoid, (Ptr{Cvoid}, Char), io_pointer(io), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(io::IO, x::String) = (write(io, x); nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(io::IO, @nospecialize x) = show(io, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(io::IO, @nospecialize(x), @nospecialize a...) = (print(io, x); print(io, a...))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">println(io::IO) = (write(io, 0x0a); nothing) # 0x0a = &#39;\n&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">println(io::IO, @nospecialize x...) = (print(io, x...); println(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(@nospecialize a) = show(stdout, a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(@nospecialize a...) = print(stdout, a...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">println(@nospecialize a...) = println(stdout, a...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct GeneratedFunctionStub
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    gen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    argnames::Array{Any,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    spnames::Union{Nothing, Array{Any,1}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    line::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    file::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    expand_early::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># invoke and wrap the results of @generated
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function (g::GeneratedFunctionStub)(@nospecialize args...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    body = g.gen(args...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if body isa CodeInfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return body
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lam = Expr(:lambda, g.argnames,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">               Expr(Symbol(&quot;scope-block&quot;),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    Expr(:block,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                         LineNumberNode(g.line, g.file),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                         Expr(:meta, :push_loc, g.file, Symbol(&quot;@generated body&quot;)),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                         Expr(:return, body),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                         Expr(:meta, :pop_loc))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if g.spnames === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return lam
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Expr(Symbol(&quot;with-static-parameters&quot;), lam, g.spnames...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">NamedTuple() = NamedTuple{(),Tuple{}}(())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    NamedTuple{names}(args::Tuple)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Construct a named tuple with the given `names` (a tuple of Symbols) from a tuple of values.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">NamedTuple{names}(args::Tuple) where {names} = NamedTuple{names,typeof(args)}(args)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Intrinsics: sle_int, add_int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro generated()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Expr(:generated)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function NamedTuple{names,T}(args::T) where {names, T &lt;: Tuple}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if @generated
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        N = nfields(names)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        flds = Array{Any,1}(undef, N)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while sle_int(i, N)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            arrayset(false, flds, :(getfield(args, $i)), i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            i = add_int(i, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        Expr(:new, :(NamedTuple{names,T}), flds...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        N = nfields(names)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        NT = NamedTuple{names,T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        flds = Array{Any,1}(undef, N)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while sle_int(i, N)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            arrayset(false, flds, getfield(args, i), i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            i = add_int(i, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:jl_new_structv, Any, (Any, Ptr{Cvoid}, UInt32), NT,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              ccall(:jl_array_ptr, Ptr{Cvoid}, (Any,), flds), toUInt32(N))::NT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># constructors for built-in types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">import .Intrinsics: eq_int, trunc_int, lshr_int, sub_int, shl_int, bitcast, sext_int, zext_int, and_int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">throw_inexacterror(f::Symbol, @nospecialize(T), val) = (@_noinline_meta; throw(InexactError(f, T, val)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function is_top_bit_set(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eq_int(trunc_int(UInt8, lshr_int(x, sub_int(shl_int(sizeof(x), 3), 1))), trunc_int(UInt8, 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function is_top_bit_set(x::Union{Int8,UInt8})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eq_int(lshr_int(x, 7), trunc_int(typeof(x), 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function check_top_bit(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    is_top_bit_set(x) &amp;&amp; throw_inexacterror(:check_top_bit, typeof(x), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function checked_trunc_sint(::Type{To}, x::From) where {To,From}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = trunc_int(To, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    back = sext_int(From, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eq_int(x, back) || throw_inexacterror(:trunc, To, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function checked_trunc_uint(::Type{To}, x::From) where {To,From}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = trunc_int(To, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    back = zext_int(From, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eq_int(x, back) || throw_inexacterror(:trunc, To, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::Int8)       = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::Int16)      = checked_trunc_sint(Int8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-603"></a>603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::Int32)      = checked_trunc_sint(Int8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::Int64)      = checked_trunc_sint(Int8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::Int128)     = checked_trunc_sint(Int8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::UInt8)      = bitcast(Int8, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::UInt16)     = checked_trunc_sint(Int8, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::UInt32)     = checked_trunc_sint(Int8, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::UInt64)     = checked_trunc_sint(Int8, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::UInt128)    = checked_trunc_sint(Int8, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-611"></a>611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt8(x::Bool)       = and_int(zext_int(Int8, x), Int8(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::Int8)      = sext_int(Int16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::Int16)     = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::Int32)     = checked_trunc_sint(Int16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::Int64)     = checked_trunc_sint(Int16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::Int128)    = checked_trunc_sint(Int16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::UInt8)     = zext_int(Int16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::UInt16)    = bitcast(Int16, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::UInt32)    = checked_trunc_sint(Int16, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::UInt64)    = checked_trunc_sint(Int16, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::UInt128)   = checked_trunc_sint(Int16, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt16(x::Bool)      = and_int(zext_int(Int16, x), Int16(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::Int8)      = sext_int(Int32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::Int16)     = sext_int(Int32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::Int32)     = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::Int64)     = checked_trunc_sint(Int32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::Int128)    = checked_trunc_sint(Int32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::UInt8)     = zext_int(Int32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::UInt16)    = zext_int(Int32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::UInt32)    = bitcast(Int32, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::UInt64)    = checked_trunc_sint(Int32, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::UInt128)   = checked_trunc_sint(Int32, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt32(x::Bool)      = and_int(zext_int(Int32, x), Int32(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::Int8)      = sext_int(Int64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::Int16)     = sext_int(Int64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::Int32)     = sext_int(Int64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::Int64)     = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::Int128)    = checked_trunc_sint(Int64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::UInt8)     = zext_int(Int64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::UInt16)    = zext_int(Int64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::UInt32)    = zext_int(Int64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::UInt64)    = bitcast(Int64, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::UInt128)   = checked_trunc_sint(Int64, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt64(x::Bool)      = and_int(zext_int(Int64, x), Int64(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::Int8)     = sext_int(Int128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::Int16)    = sext_int(Int128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::Int32)    = sext_int(Int128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-648"></a>648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::Int64)    = sext_int(Int128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-649"></a>649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::Int128)   = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-650"></a>650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::UInt8)    = zext_int(Int128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-651"></a>651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::UInt16)   = zext_int(Int128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-652"></a>652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::UInt32)   = zext_int(Int128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-653"></a>653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::UInt64)   = zext_int(Int128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-654"></a>654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::UInt128)  = bitcast(Int128, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-655"></a>655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toInt128(x::Bool)     = and_int(zext_int(Int128, x), Int128(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-656"></a>656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::Int8)      = bitcast(UInt8, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-657"></a>657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::Int16)     = checked_trunc_uint(UInt8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-658"></a>658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::Int32)     = checked_trunc_uint(UInt8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-659"></a>659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::Int64)     = checked_trunc_uint(UInt8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-660"></a>660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::Int128)    = checked_trunc_uint(UInt8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-661"></a>661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::UInt8)     = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-662"></a>662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::UInt16)    = checked_trunc_uint(UInt8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-663"></a>663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::UInt32)    = checked_trunc_uint(UInt8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-664"></a>664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::UInt64)    = checked_trunc_uint(UInt8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-665"></a>665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::UInt128)   = checked_trunc_uint(UInt8, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-666"></a>666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt8(x::Bool)      = and_int(zext_int(UInt8, x), UInt8(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-667"></a>667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::Int8)     = sext_int(UInt16, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-668"></a>668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::Int16)    = bitcast(UInt16, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-669"></a>669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::Int32)    = checked_trunc_uint(UInt16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-670"></a>670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::Int64)    = checked_trunc_uint(UInt16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-671"></a>671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::Int128)   = checked_trunc_uint(UInt16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-672"></a>672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::UInt8)    = zext_int(UInt16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-673"></a>673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::UInt16)   = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-674"></a>674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::UInt32)   = checked_trunc_uint(UInt16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-675"></a>675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::UInt64)   = checked_trunc_uint(UInt16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-676"></a>676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::UInt128)  = checked_trunc_uint(UInt16, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-677"></a>677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt16(x::Bool)     = and_int(zext_int(UInt16, x), UInt16(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-678"></a>678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::Int8)     = sext_int(UInt32, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-679"></a>679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::Int16)    = sext_int(UInt32, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-680"></a>680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::Int32)    = bitcast(UInt32, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-681"></a>681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::Int64)    = checked_trunc_uint(UInt32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-682"></a>682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::Int128)   = checked_trunc_uint(UInt32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-683"></a>683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::UInt8)    = zext_int(UInt32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-684"></a>684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::UInt16)   = zext_int(UInt32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-685"></a>685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::UInt32)   = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-686"></a>686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::UInt64)   = checked_trunc_uint(UInt32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-687"></a>687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::UInt128)  = checked_trunc_uint(UInt32, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-688"></a>688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt32(x::Bool)     = and_int(zext_int(UInt32, x), UInt32(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-689"></a>689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::Int8)     = sext_int(UInt64, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-690"></a>690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::Int16)    = sext_int(UInt64, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-691"></a>691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::Int32)    = sext_int(UInt64, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-692"></a>692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::Int64)    = bitcast(UInt64, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-693"></a>693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::Int128)   = checked_trunc_uint(UInt64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-694"></a>694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::UInt8)    = zext_int(UInt64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-695"></a>695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::UInt16)   = zext_int(UInt64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-696"></a>696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::UInt32)   = zext_int(UInt64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-697"></a>697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::UInt64)   = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-698"></a>698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::UInt128)  = checked_trunc_uint(UInt64, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-699"></a>699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt64(x::Bool)     = and_int(zext_int(UInt64, x), UInt64(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-700"></a>700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::Int8)    = sext_int(UInt128, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-701"></a>701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::Int16)   = sext_int(UInt128, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-702"></a>702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::Int32)   = sext_int(UInt128, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-703"></a>703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::Int64)   = sext_int(UInt128, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-704"></a>704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::Int128)  = bitcast(UInt128, check_top_bit(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-705"></a>705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::UInt8)   = zext_int(UInt128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-706"></a>706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::UInt16)  = zext_int(UInt128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-707"></a>707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::UInt32)  = zext_int(UInt128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-708"></a>708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::UInt64)  = zext_int(UInt128, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-709"></a>709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::UInt128) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-710"></a>710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">toUInt128(x::Bool)    = and_int(zext_int(UInt128, x), UInt128(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-711"></a>711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-712"></a>712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># TODO: this is here to work around the 4 method limit in inference (#23210).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-713"></a>713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BuiltinInts = Union{Int128, Int16, Int32, Int64, Int8, UInt128, UInt16, UInt32, UInt64, UInt8, Bool}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-714"></a>714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Int8(x::BuiltinInts)    = toInt8(x)::Int8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-715"></a>715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Int16(x::BuiltinInts)   = toInt16(x)::Int16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-716"></a>716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Int32(x::BuiltinInts)   = toInt32(x)::Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-717"></a>717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Int64(x::BuiltinInts)   = toInt64(x)::Int64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-718"></a>718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Int128(x::BuiltinInts)  = toInt128(x)::Int128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-719"></a>719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">UInt8(x::BuiltinInts)   = toUInt8(x)::UInt8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-720"></a>720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">UInt16(x::BuiltinInts)  = toUInt16(x)::UInt16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-721"></a>721</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">UInt32(x::BuiltinInts)  = toUInt32(x)::UInt32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-722"></a>722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">UInt64(x::BuiltinInts)  = toUInt64(x)::UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-723"></a>723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">UInt128(x::BuiltinInts) = toUInt128(x)::UInt128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-724"></a>724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-725"></a>725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(::Type{T})(x::T) where {T&lt;:Number} = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-726"></a>726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-727"></a>727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Int(x::Ptr)  = bitcast(Int, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-728"></a>728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">UInt(x::Ptr) = bitcast(UInt, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-729"></a>729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Int === Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-730"></a>730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Int64(x::Ptr) = Int64(UInt32(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-731"></a>731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">UInt64(x::Ptr) = UInt64(UInt32(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-732"></a>732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-733"></a>733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Ptr{T}(x::Union{Int,UInt,Ptr}) where {T} = bitcast(Ptr{T}, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-734"></a>734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-735"></a>735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Signed(x::UInt8)    = Int8(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-736"></a>736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Unsigned(x::Int8)   = UInt8(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-737"></a>737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Signed(x::UInt16)   = Int16(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-738"></a>738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Unsigned(x::Int16)  = UInt16(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-739"></a>739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Signed(x::UInt32)   = Int32(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-740"></a>740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Unsigned(x::Int32)  = UInt32(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-741"></a>741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Signed(x::UInt64)   = Int64(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-742"></a>742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Unsigned(x::Int64)  = UInt64(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-743"></a>743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Signed(x::UInt128)  = Int128(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-744"></a>744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Unsigned(x::Int128) = UInt128(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-745"></a>745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-746"></a>746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Signed(x::Union{Float32, Float64, Bool})   = Int(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-747"></a>747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Unsigned(x::Union{Float32, Float64, Bool}) = UInt(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-748"></a>748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-749"></a>749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Integer(x::Integer) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-750"></a>750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Integer(x::Union{Float32, Float64}) = Int(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-751"></a>751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lboot-jl-1c95b3ccecba8d7f1acb-line.html-752"></a>752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ccall(:jl_set_istopmod, Cvoid, (Any, Bool), Core, true)
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/clickable_stacks.attrs b/profiling/statprof/clickable_stacks.attrs
new file mode 100644
index 0000000000000000000000000000000000000000..bfce528795475a757d4024c13672e56946faf791
--- /dev/null
+++ b/profiling/statprof/clickable_stacks.attrs
@@ -0,0 +1,56 @@
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:+:803	href=int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-803	function=+
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035	href=loading-jl-267f08df202e5203e249-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-loading-jl-include_relative-1035	function=include_relative
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155	function=string	href=io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-string-155
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22	function=include	href=sysimg-jl-58aafbf6293fe483e566-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-sysimg-jl-include-22
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl:normalize:48	function=normalize	href=float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-normalize-48
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./array.jl:_deleteend!:823	function=_deleteend!	href=array-jl-e331915c4fb281d94775-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-_deleteend-823
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:StringVector:71	function=StringVector	href=string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-StringVector-71
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317	function=include	href=boot-jl-1c95b3ccecba8d7f1acb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-boot-jl-include-317
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7	href=test-jl-6f8538a27ff3da5824d9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-profiling-test-jl-f-7	function=f
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./gcutils.jl:write:163	href=gcutils-jl-226c838c61f0891410cd-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-gcutils-jl-write-163	function=write
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:165	function=print	href=io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-165
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:ensureroom:293	href=iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-ensureroom-293	function=ensureroom
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/bignums.jl:compare:474	function=compare	href=bignums-jl-e031ee9c77e42cd3aafb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-bignums-jl-compare-474
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./libuv.jl:process_events:98	function=process_events	href=libuv-jl-530c66ad95b5a57763e9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-libuv-jl-process_events-98
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111	function=print_to_string	href=io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print_to_string-111
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28	href=io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-28	function=print
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:roundweed:34	href=fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-roundweed-34	function=roundweed
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105	href=fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-fastshortest-105	function=fastshortest
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:_string_n:60	href=string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_string_n-60	function=_string_n
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./coreio.jl:print:2	href=coreio-jl-465d134c20f8b0bc664b-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-coreio-jl-print-2	function=print
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193	href=client-jl-74fbd6bc37c8328be022-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-client-jl-exec_options-193	function=exec_options
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52	function=grisu	href=grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-grisu-52
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151	function=show	href=grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-show-151
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:digitgen:64	function=digitgen	href=fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-digitgen-64
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/bignums.jl:dividemodulointbignum!:420	function=dividemodulointbignum!	href=bignums-jl-e031ee9c77e42cd3aafb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-bignums-jl-dividemodulointbignum-420
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:*:54	href=int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-54	function=*
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:>>:448	function=>>	href=int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-448
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420	href=client-jl-74fbd6bc37c8328be022-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-client-jl-_start-420	function=_start
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:tostr_sizehint:106	href=io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-tostr_sizehint-106	function=tostr_sizehint
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl:>>:603	function=>>	href=operators-jl-714ade2c8745dd55a410-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-operators-jl-603
+nothing:Type	function=Type	href=nothing-0feca720e2c29dafb2c9-line.html#Snothing-Type
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./event.jl:wait:243	function=wait	href=event-jl-9f2b370029d9fd3c8bef-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-event-jl-wait-243
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl:normalizedbound:120	function=normalizedbound	href=float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-normalizedbound-120
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:166	href=io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-166	function=print
+/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25	href=Profile-jl-e79abb67faac09cf5e9b-line.html#S-buildworker-worker-package_linux64-build-usr-share-julia-stdlib-v1-0-Profile-src-Profile-jl-top-level-scope-25	function=top-level scope
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:div	function=div	href=int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-div
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:#IOBuffer#302:111	href=iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-IOBuffer-302-111	function=#IOBuffer#302
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./gcutils.jl:print:165	function=print	href=gcutils-jl-226c838c61f0891410cd-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-gcutils-jl-print-165
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./promotion.jl:==:425	function===	href=promotion-jl-fe649671ed190521a171-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-promotion-jl-425
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl:binexp_cache:253	function=binexp_cache	href=float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-binexp_cache-253
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./stream.jl:uv_write:773	function=uv_write	href=stream-jl-9a841f596a6f3ffbe5b9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-stream-jl-uv_write-773
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:+:53	href=int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-53	function=+
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:>>:442	href=int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-442	function=>>
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:StringVector:31	function=StringVector	href=iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-StringVector-31
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89	href=grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-_show-89	function=_show
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./array.jl:resize!:1011	function=resize!	href=array-jl-e331915c4fb281d94775-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-resize-1011
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:Type:39	function=Type	href=string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-Type-39
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:lastindex:110	href=string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-lastindex-110	function=lastindex
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl:>:286	href=operators-jl-714ade2c8745dd55a410-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-operators-jl-286	function=>
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./io.jl:unsafe_write:509	href=io-jl-7061b86fd468f75a7694-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-io-jl-unsafe_write-509	function=unsafe_write
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./stream.jl:unsafe_write:828	function=unsafe_write	href=stream-jl-9a841f596a6f3ffbe5b9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-stream-jl-unsafe_write-828
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:==:432	href=int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-432	function===
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:_thisind_str:113	href=string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_thisind_str-113	function=_thisind_str
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:unsafe_write:401	function=unsafe_write	href=iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-unsafe_write-401
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:<:427	function=<	href=int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-427
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:<:49	function=<	href=int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-49
diff --git a/profiling/statprof/clickable_stacks_by_time.svg b/profiling/statprof/clickable_stacks_by_time.svg
new file mode 100644
index 0000000000000000000000000000000000000000..735b92d66dcce6b41854a19b9d723fa08fc7debb
--- /dev/null
+++ b/profiling/statprof/clickable_stacks_by_time.svg
@@ -0,0 +1,642 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="1200" height="386" onload="init(evt)" viewBox="0 0 1200 386" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<!-- Flame graph stack visualization. See https://github.com/brendangregg/FlameGraph for latest version, and http://www.brendangregg.com/flamegraphs.html for examples. -->
+<defs >
+	<linearGradient id="background" y1="0" y2="1" x1="0" x2="0" >
+		<stop stop-color="#eeeeee" offset="5%" />
+		<stop stop-color="#eeeeb0" offset="95%" />
+	</linearGradient>
+</defs>
+<style type="text/css">
+	.func_g:hover { stroke:black; stroke-width:0.5; cursor:pointer; }
+</style>
+<script type="text/ecmascript">
+<![CDATA[
+	var details, searchbtn, matchedtxt, svg;
+	function init(evt) { 
+		details = document.getElementById("details").firstChild; 
+		searchbtn = document.getElementById("search");
+		matchedtxt = document.getElementById("matched");
+		svg = document.getElementsByTagName("svg")[0];
+		searching = 0;
+	}
+
+	// mouse-over for info
+	function s(node) {		// show
+		info = g_to_text(node);
+		details.nodeValue = "sub " + info;
+	}
+	function c() {			// clear
+		details.nodeValue = ' ';
+	}
+
+	// ctrl-F for search
+	window.addEventListener("keydown",function (e) {
+		if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) {
+			e.preventDefault();
+			search_prompt();
+		}
+	})
+
+	// functions
+	function find_child(parent, name, attr) {
+		var children = parent.childNodes;
+		for (var i=0; i<children.length;i++) {
+			if (children[i].tagName == name)
+				return (attr != undefined) ? children[i].attributes[attr].value : children[i];
+		}
+		return;
+	}
+	function orig_save(e, attr, val) {
+		if (e.attributes["_orig_"+attr] != undefined) return;
+		if (e.attributes[attr] == undefined) return;
+		if (val == undefined) val = e.attributes[attr].value;
+		e.setAttribute("_orig_"+attr, val);
+	}
+	function orig_load(e, attr) {
+		if (e.attributes["_orig_"+attr] == undefined) return;
+		e.attributes[attr].value = e.attributes["_orig_"+attr].value;
+		e.removeAttribute("_orig_"+attr);
+	}
+	function g_to_text(e) {
+		var text = find_child(e, "title").firstChild.nodeValue;
+		return (text)
+	}
+	function g_to_func(e) {
+		var func = g_to_text(e);
+		if (func != null)
+			func = func.replace(/ .*/, "");
+		return (func);
+	}
+	function update_text(e) {
+		var r = find_child(e, "rect");
+		var t = find_child(e, "text");
+		var w = parseFloat(r.attributes["width"].value) -3;
+		var txt = find_child(e, "title").textContent.replace(/\([^(]*\)$/,"");
+		t.attributes["x"].value = parseFloat(r.attributes["x"].value) +3;
+		
+		// Smaller than this size won't fit anything
+		if (w < 2*12*0.59) {
+			t.textContent = "";
+			return;
+		}
+		
+		t.textContent = txt;
+		// Fit in full text width
+		if (/^ *$/.test(txt) || t.getSubStringLength(0, txt.length) < w)
+			return;
+		
+		for (var x=txt.length-2; x>0; x--) {
+			if (t.getSubStringLength(0, x+2) <= w) { 
+				t.textContent = txt.substring(0,x) + "..";
+				return;
+			}
+		}
+		t.textContent = "";
+	}
+
+	// zoom
+	function zoom_reset(e) {
+		if (e.attributes != undefined) {
+			orig_load(e, "x");
+			orig_load(e, "width");
+		}
+		if (e.childNodes == undefined) return;
+		for(var i=0, c=e.childNodes; i<c.length; i++) {
+			zoom_reset(c[i]);
+		}
+	}
+	function zoom_child(e, x, ratio) {
+		if (e.attributes != undefined) {
+			if (e.attributes["x"] != undefined) {
+				orig_save(e, "x");
+				e.attributes["x"].value = (parseFloat(e.attributes["x"].value) - x - 10) * ratio + 10;
+				if(e.tagName == "text") e.attributes["x"].value = find_child(e.parentNode, "rect", "x") + 3;
+			}
+			if (e.attributes["width"] != undefined) {
+				orig_save(e, "width");
+				e.attributes["width"].value = parseFloat(e.attributes["width"].value) * ratio;
+			}
+		}
+		
+		if (e.childNodes == undefined) return;
+		for(var i=0, c=e.childNodes; i<c.length; i++) {
+			zoom_child(c[i], x-10, ratio);
+		}
+	}
+	function zoom_parent(e) {
+		if (e.attributes) {
+			if (e.attributes["x"] != undefined) {
+				orig_save(e, "x");
+				e.attributes["x"].value = 10;
+			}
+			if (e.attributes["width"] != undefined) {
+				orig_save(e, "width");
+				e.attributes["width"].value = parseInt(svg.width.baseVal.value) - (10*2);
+			}
+		}
+		if (e.childNodes == undefined) return;
+		for(var i=0, c=e.childNodes; i<c.length; i++) {
+			zoom_parent(c[i]);
+		}
+	}
+	function zoom(node) { 
+		var attr = find_child(node, "rect").attributes;
+		var width = parseFloat(attr["width"].value);
+		var xmin = parseFloat(attr["x"].value);
+		var xmax = parseFloat(xmin + width);
+		var ymin = parseFloat(attr["y"].value);
+		var ratio = (svg.width.baseVal.value - 2*10) / width;
+		
+		// XXX: Workaround for JavaScript float issues (fix me)
+		var fudge = 0.0001;
+		
+		var unzoombtn = document.getElementById("unzoom");
+		unzoombtn.style["opacity"] = "1.0";
+		
+		var el = document.getElementsByTagName("g");
+		for(var i=0;i<el.length;i++){
+			var e = el[i];
+			var a = find_child(e, "rect").attributes;
+			var ex = parseFloat(a["x"].value);
+			var ew = parseFloat(a["width"].value);
+			// Is it an ancestor
+			if (0 == 0) {
+				var upstack = parseFloat(a["y"].value) > ymin;
+			} else {
+				var upstack = parseFloat(a["y"].value) < ymin;
+			}
+			if (upstack) {
+				// Direct ancestor
+				if (ex <= xmin && (ex+ew+fudge) >= xmax) {
+					e.style["opacity"] = "0.5";
+					zoom_parent(e);
+					e.onclick = function(e){unzoom(); zoom(this);};
+					update_text(e);
+				}
+				// not in current path
+				else
+					e.style["display"] = "none";
+			}
+			// Children maybe
+			else {
+				// no common path
+				if (ex < xmin || ex + fudge >= xmax) {
+					e.style["display"] = "none";
+				}
+				else {
+					zoom_child(e, xmin, ratio);
+					e.onclick = function(e){zoom(this);};
+					update_text(e);
+				}
+			}
+		}
+	}
+	function unzoom() {
+		var unzoombtn = document.getElementById("unzoom");
+		unzoombtn.style["opacity"] = "0.0";
+		
+		var el = document.getElementsByTagName("g");
+		for(i=0;i<el.length;i++) {
+			el[i].style["display"] = "block";
+			el[i].style["opacity"] = "1";
+			zoom_reset(el[i]);
+			update_text(el[i]);
+		}
+	}	
+
+	// search
+	function reset_search() {
+		var el = document.getElementsByTagName("rect");
+		for (var i=0; i < el.length; i++) {
+			orig_load(el[i], "fill")
+		}
+	}
+	function search_prompt() {
+		if (!searching) {
+			var term = prompt("Enter a search term (regexp " +
+			    "allowed, eg: ^ext4_)", "");
+			if (term != null) {
+				search(term)
+			}
+		} else {
+			reset_search();
+			searching = 0;
+			searchbtn.style["opacity"] = "0.1";
+			searchbtn.firstChild.nodeValue = "Search"
+			matchedtxt.style["opacity"] = "0.0";
+			matchedtxt.firstChild.nodeValue = ""
+		}
+	}
+	function search(term) {
+		var re = new RegExp(term);
+		var el = document.getElementsByTagName("g");
+		var matches = new Object();
+		var maxwidth = 0;
+		for (var i = 0; i < el.length; i++) {
+			var e = el[i];
+			if (e.attributes["class"].value != "func_g")
+				continue;
+			var func = g_to_func(e);
+			var rect = find_child(e, "rect");
+			if (rect == null) {
+				// the rect might be wrapped in an anchor
+				// if nameattr href is being used
+				if (rect = find_child(e, "a")) {
+				    rect = find_child(r, "rect");
+				}
+			}
+			if (func == null || rect == null)
+				continue;
+
+			// Save max width. Only works as we have a root frame
+			var w = parseFloat(rect.attributes["width"].value);
+			if (w > maxwidth)
+				maxwidth = w;
+
+			if (func.match(re)) {
+				// highlight
+				var x = parseFloat(rect.attributes["x"].value);
+				orig_save(rect, "fill");
+				rect.attributes["fill"].value =
+				    "rgb(230,0,230)";
+
+				// remember matches
+				if (matches[x] == undefined) {
+					matches[x] = w;
+				} else {
+					if (w > matches[x]) {
+						// overwrite with parent
+						matches[x] = w;
+					}
+				}
+				searching = 1;
+			}
+		}
+		if (!searching)
+			return;
+
+		searchbtn.style["opacity"] = "1.0";
+		searchbtn.firstChild.nodeValue = "Reset Search"
+
+		// calculate percent matched, excluding vertical overlap
+		var count = 0;
+		var lastx = -1;
+		var lastw = 0;
+		var keys = Array();
+		for (k in matches) {
+			if (matches.hasOwnProperty(k))
+				keys.push(k);
+		}
+		// sort the matched frames by their x location
+		// ascending, then width descending
+		keys.sort(function(a, b){
+				return a - b;
+			if (a < b || a > b)
+				return a - b;
+			return matches[b] - matches[a];
+		});
+		// Step through frames saving only the biggest bottom-up frames
+		// thanks to the sort order. This relies on the tree property
+		// where children are always smaller than their parents.
+		for (var k in keys) {
+			var x = parseFloat(keys[k]);
+			var w = matches[keys[k]];
+			if (x >= lastx + lastw) {
+				count += w;
+				lastx = x;
+				lastw = w;
+			}
+		}
+		// display matched percent
+		matchedtxt.style["opacity"] = "1.0";
+		pct = 100 * count / maxwidth;
+		if (pct == 100)
+			pct = "100"
+		else
+			pct = pct.toFixed(1)
+		matchedtxt.firstChild.nodeValue = "Matched: " + pct + "%";
+	}
+	function searchover(e) {
+		searchbtn.style["opacity"] = "1.0";
+	}
+	function searchout(e) {
+		if (searching) {
+			searchbtn.style["opacity"] = "1.0";
+		} else {
+			searchbtn.style["opacity"] = "0.1";
+		}
+	}
+]]>
+</script>
+<rect x="0.0" y="0" width="1200.0" height="386.0" fill="url(#background)"  />
+<text text-anchor="middle" x="600.00" y="24" font-size="17" font-family="Verdana" fill="rgb(0,0,0)"  >Flame Graph</text>
+<text text-anchor="" x="10.00" y="369" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="details" > </text>
+<text text-anchor="" x="10.00" y="24" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="unzoom" onclick="unzoom()" style="opacity:0.0;cursor:pointer" >Reset Zoom</text>
+<text text-anchor="" x="1090.00" y="24" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="search" onmouseover="searchover()" onmouseout="searchout()" onclick="search_prompt()" style="opacity:0.1;cursor:pointer" >Search</text>
+<text text-anchor="" x="1090.00" y="369" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="matched" > </text>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>include (40 samples, 95.24%)</title><a xlink:href="boot-jl-1c95b3ccecba8d7f1acb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-boot-jl-include-317" target="_top"><rect x="10.0" y="257" width="1123.8" height="15.0" fill="rgb(243,181,51)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="267.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >include</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>unsafe_write (1 samples, 2.38%)</title><a xlink:href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-unsafe_write-401" target="_top"><rect x="656.2" y="113" width="28.1" height="15.0" fill="rgb(230,128,54)" rx="2" ry="2" />
+<text text-anchor="" x="659.19" y="123.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >u..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>+ (1 samples, 2.38%)</title><a xlink:href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-803" target="_top"><rect x="459.5" y="65" width="28.1" height="15.0" fill="rgb(242,82,21)" rx="2" ry="2" />
+<text text-anchor="" x="462.52" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >+</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>normalizedbound (1 samples, 2.38%)</title><a xlink:href="float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-normalizedbound-120" target="_top"><rect x="628.1" y="81" width="28.1" height="15.0" fill="rgb(226,126,13)" rx="2" ry="2" />
+<text text-anchor="" x="631.10" y="91.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >n..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>+ (1 samples, 2.38%)</title><a xlink:href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-53" target="_top"><rect x="459.5" y="49" width="28.1" height="15.0" fill="rgb(229,179,43)" rx="2" ry="2" />
+<text text-anchor="" x="462.52" y="59.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >+</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>write (1 samples, 2.38%)</title><a xlink:href="gcutils-jl-226c838c61f0891410cd-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-gcutils-jl-write-163" target="_top"><rect x="262.9" y="161" width="28.1" height="15.0" fill="rgb(206,1,20)" rx="2" ry="2" />
+<text text-anchor="" x="265.86" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >w..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>unsafe_write (1 samples, 2.38%)</title><a xlink:href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-unsafe_write-401" target="_top"><rect x="684.3" y="97" width="28.1" height="15.0" fill="rgb(253,172,21)" rx="2" ry="2" />
+<text text-anchor="" x="687.29" y="107.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >u..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>f (40 samples, 95.24%)</title><a xlink:href="test-jl-6f8538a27ff3da5824d9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-profiling-test-jl-f-7" target="_top"><rect x="10.0" y="225" width="1123.8" height="15.0" fill="rgb(214,132,23)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="235.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >f</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>resize! (1 samples, 2.38%)</title><a xlink:href="array-jl-e331915c4fb281d94775-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-resize-1011" target="_top"><rect x="234.8" y="177" width="28.1" height="15.0" fill="rgb(228,153,41)" rx="2" ry="2" />
+<text text-anchor="" x="237.76" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >r..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>show (14 samples, 33.33%)</title><a xlink:href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-show-151" target="_top"><rect x="319.0" y="161" width="393.4" height="15.0" fill="rgb(230,185,14)" rx="2" ry="2" />
+<text text-anchor="" x="322.05" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >show</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>Type (12 samples, 28.57%)</title><a xlink:href="nothing-0feca720e2c29dafb2c9-line.html#Snothing-Type" target="_top"><rect x="796.7" y="177" width="337.1" height="15.0" fill="rgb(205,29,4)" rx="2" ry="2" />
+<text text-anchor="" x="799.67" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >Type</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>normalize (1 samples, 2.38%)</title><a xlink:href="float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-normalize-48" target="_top"><rect x="628.1" y="65" width="28.1" height="15.0" fill="rgb(218,104,22)" rx="2" ry="2" />
+<text text-anchor="" x="631.10" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >n..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print_to_string (37 samples, 88.10%)</title><a xlink:href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print_to_string-111" target="_top"><rect x="94.3" y="193" width="1039.5" height="15.0" fill="rgb(226,199,36)" rx="2" ry="2" />
+<text text-anchor="" x="97.29" y="203.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >print_to_string</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>lastindex (1 samples, 2.38%)</title><a xlink:href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-lastindex-110" target="_top"><rect x="712.4" y="161" width="28.1" height="15.0" fill="rgb(246,78,6)" rx="2" ry="2" />
+<text text-anchor="" x="715.38" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >l..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>unsafe_write (1 samples, 2.38%)</title><a xlink:href="io-jl-7061b86fd468f75a7694-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-io-jl-unsafe_write-509" target="_top"><rect x="656.2" y="129" width="28.1" height="15.0" fill="rgb(230,50,17)" rx="2" ry="2" />
+<text text-anchor="" x="659.19" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >u..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:(:49 (1 samples, 2.38%)</title><rect x="656.2" y="81" width="28.1" height="15.0" fill="rgb(226,4,10)" rx="2" ry="2" />
+<text text-anchor="" x="659.19" y="91.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>unsafe_write (1 samples, 2.38%)</title><a xlink:href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-unsafe_write-401" target="_top"><rect x="262.9" y="145" width="28.1" height="15.0" fill="rgb(250,8,25)" rx="2" ry="2" />
+<text text-anchor="" x="265.86" y="155.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >u..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>exec_options (40 samples, 95.24%)</title><a xlink:href="client-jl-74fbd6bc37c8328be022-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-client-jl-exec_options-193" target="_top"><rect x="10.0" y="305" width="1123.8" height="15.0" fill="rgb(238,103,40)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="315.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >exec_options</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:)):442 (1 samples, 2.38%)</title><rect x="571.9" y="33" width="28.1" height="15.0" fill="rgb(215,166,33)" rx="2" ry="2" />
+<text text-anchor="" x="574.90" y="43.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>dividemodulointbignum! (1 samples, 2.38%)</title><a xlink:href="bignums-jl-e031ee9c77e42cd3aafb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-bignums-jl-dividemodulointbignum-420" target="_top"><rect x="1161.9" y="321" width="28.1" height="15.0" fill="rgb(217,151,49)" rx="2" ry="2" />
+<text text-anchor="" x="1164.90" y="331.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >d..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>string (37 samples, 88.10%)</title><a xlink:href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-string-155" target="_top"><rect x="94.3" y="209" width="1039.5" height="15.0" fill="rgb(240,113,33)" rx="2" ry="2" />
+<text text-anchor="" x="97.29" y="219.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >string</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>digitgen (8 samples, 19.05%)</title><a xlink:href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-digitgen-64" target="_top"><rect x="375.2" y="81" width="224.8" height="15.0" fill="rgb(211,162,3)" rx="2" ry="2" />
+<text text-anchor="" x="378.24" y="91.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >digitgen</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>#IOBuffer#302 (12 samples, 28.57%)</title><a xlink:href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-IOBuffer-302-111" target="_top"><rect x="796.7" y="161" width="337.1" height="15.0" fill="rgb(231,6,8)" rx="2" ry="2" />
+<text text-anchor="" x="799.67" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >#IOBuffer#302</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>compare (1 samples, 2.38%)</title><a xlink:href="bignums-jl-e031ee9c77e42cd3aafb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-bignums-jl-compare-474" target="_top"><rect x="1133.8" y="321" width="28.1" height="15.0" fill="rgb(233,210,54)" rx="2" ry="2" />
+<text text-anchor="" x="1136.81" y="331.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >c..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>== (1 samples, 2.38%)</title><a xlink:href="promotion-jl-fe649671ed190521a171-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-promotion-jl-425" target="_top"><rect x="628.1" y="33" width="28.1" height="15.0" fill="rgb(221,39,9)" rx="2" ry="2" />
+<text text-anchor="" x="631.10" y="43.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >==</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>ensureroom (1 samples, 2.38%)</title><a xlink:href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-ensureroom-293" target="_top"><rect x="262.9" y="129" width="28.1" height="15.0" fill="rgb(237,7,41)" rx="2" ry="2" />
+<text text-anchor="" x="265.86" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >e..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>_show (14 samples, 33.33%)</title><a xlink:href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-_show-89" target="_top"><rect x="319.0" y="145" width="393.4" height="15.0" fill="rgb(247,166,52)" rx="2" ry="2" />
+<text text-anchor="" x="322.05" y="155.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >_show</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>grisu (12 samples, 28.57%)</title><a xlink:href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-grisu-52" target="_top"><rect x="319.0" y="113" width="337.2" height="15.0" fill="rgb(208,81,0)" rx="2" ry="2" />
+<text text-anchor="" x="322.05" y="123.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >grisu</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>StringVector (6 samples, 14.29%)</title><a xlink:href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-StringVector-71" target="_top"><rect x="965.2" y="145" width="168.6" height="15.0" fill="rgb(207,8,54)" rx="2" ry="2" />
+<text text-anchor="" x="968.24" y="155.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >StringVector</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>+ (1 samples, 2.38%)</title><a xlink:href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-53" target="_top"><rect x="600.0" y="65" width="28.1" height="15.0" fill="rgb(219,141,18)" rx="2" ry="2" />
+<text text-anchor="" x="603.00" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >+</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print (1 samples, 2.38%)</title><a xlink:href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-165" target="_top"><rect x="262.9" y="177" width="28.1" height="15.0" fill="rgb(216,70,48)" rx="2" ry="2" />
+<text text-anchor="" x="265.86" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >p..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:(:427 (1 samples, 2.38%)</title><rect x="487.6" y="65" width="28.1" height="15.0" fill="rgb(214,34,27)" rx="2" ry="2" />
+<text text-anchor="" x="490.62" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print (1 samples, 2.38%)</title><a xlink:href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-166" target="_top"><rect x="684.3" y="129" width="28.1" height="15.0" fill="rgb(229,53,54)" rx="2" ry="2" />
+<text text-anchor="" x="687.29" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >p..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:)):448 (1 samples, 2.38%)</title><rect x="571.9" y="49" width="28.1" height="15.0" fill="rgb(205,204,25)" rx="2" ry="2" />
+<text text-anchor="" x="574.90" y="59.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>wait (3 samples, 7.14%)</title><a xlink:href="event-jl-9f2b370029d9fd3c8bef-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-event-jl-wait-243" target="_top"><rect x="10.0" y="145" width="84.3" height="15.0" fill="rgb(208,25,26)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="155.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >wait</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>top-level scope (40 samples, 95.24%)</title><a xlink:href="Profile-jl-e79abb67faac09cf5e9b-line.html#S-buildworker-worker-package_linux64-build-usr-share-julia-stdlib-v1-0-Profile-src-Profile-jl-top-level-scope-25" target="_top"><rect x="10.0" y="241" width="1123.8" height="15.0" fill="rgb(252,80,47)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="251.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >top-level scope</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>include_relative (40 samples, 95.24%)</title><a xlink:href="loading-jl-267f08df202e5203e249-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-loading-jl-include_relative-1035" target="_top"><rect x="10.0" y="273" width="1123.8" height="15.0" fill="rgb(229,229,9)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="283.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >include_relative</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>unsafe_write (3 samples, 7.14%)</title><a xlink:href="stream-jl-9a841f596a6f3ffbe5b9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-stream-jl-unsafe_write-828" target="_top"><rect x="10.0" y="177" width="84.3" height="15.0" fill="rgb(245,170,11)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >unsafe_wr..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print (3 samples, 7.14%)</title><a xlink:href="gcutils-jl-226c838c61f0891410cd-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-gcutils-jl-print-165" target="_top"><rect x="10.0" y="193" width="84.3" height="15.0" fill="rgb(233,155,21)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="203.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >print</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>_deleteend! (1 samples, 2.38%)</title><a xlink:href="array-jl-e331915c4fb281d94775-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-_deleteend-823" target="_top"><rect x="234.8" y="161" width="28.1" height="15.0" fill="rgb(248,139,13)" rx="2" ry="2" />
+<text text-anchor="" x="237.76" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >_..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>_start (40 samples, 95.24%)</title><a xlink:href="client-jl-74fbd6bc37c8328be022-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-client-jl-_start-420" target="_top"><rect x="10.0" y="321" width="1123.8" height="15.0" fill="rgb(223,62,1)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="331.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >_start</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print (15 samples, 35.71%)</title><a xlink:href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-28" target="_top"><rect x="291.0" y="177" width="421.4" height="15.0" fill="rgb(216,229,38)" rx="2" ry="2" />
+<text text-anchor="" x="293.95" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >print</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>_string_n (5 samples, 11.90%)</title><a xlink:href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_string_n-60" target="_top"><rect x="824.8" y="129" width="140.4" height="15.0" fill="rgb(226,188,45)" rx="2" ry="2" />
+<text text-anchor="" x="827.76" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >_string_n</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>grisu (12 samples, 28.57%)</title><a xlink:href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-grisu-52" target="_top"><rect x="319.0" y="129" width="337.2" height="15.0" fill="rgb(223,220,32)" rx="2" ry="2" />
+<text text-anchor="" x="322.05" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >grisu</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>div (2 samples, 4.76%)</title><a xlink:href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-div" target="_top"><rect x="515.7" y="65" width="56.2" height="15.0" fill="rgb(212,164,46)" rx="2" ry="2" />
+<text text-anchor="" x="518.71" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >div</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>include (40 samples, 95.24%)</title><a xlink:href="sysimg-jl-58aafbf6293fe483e566-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-sysimg-jl-include-22" target="_top"><rect x="10.0" y="289" width="1123.8" height="15.0" fill="rgb(243,131,38)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="299.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >include</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>write (1 samples, 2.38%)</title><a xlink:href="gcutils-jl-226c838c61f0891410cd-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-gcutils-jl-write-163" target="_top"><rect x="684.3" y="113" width="28.1" height="15.0" fill="rgb(221,139,36)" rx="2" ry="2" />
+<text text-anchor="" x="687.29" y="123.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >w..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>StringVector (5 samples, 11.90%)</title><a xlink:href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-StringVector-31" target="_top"><rect x="824.8" y="145" width="140.4" height="15.0" fill="rgb(213,117,34)" rx="2" ry="2" />
+<text text-anchor="" x="827.76" y="155.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >StringVector</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>uv_write (3 samples, 7.14%)</title><a xlink:href="stream-jl-9a841f596a6f3ffbe5b9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-stream-jl-uv_write-773" target="_top"><rect x="10.0" y="161" width="84.3" height="15.0" fill="rgb(221,36,36)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >uv_write</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>process_events (3 samples, 7.14%)</title><a xlink:href="libuv-jl-530c66ad95b5a57763e9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-libuv-jl-process_events-98" target="_top"><rect x="10.0" y="129" width="84.3" height="15.0" fill="rgb(212,149,13)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >process_e..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>fastshortest (11 samples, 26.19%)</title><a xlink:href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-fastshortest-105" target="_top"><rect x="347.1" y="97" width="309.1" height="15.0" fill="rgb(219,79,19)" rx="2" ry="2" />
+<text text-anchor="" x="350.14" y="107.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >fastshortest</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>roundweed (1 samples, 2.38%)</title><a xlink:href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-roundweed-34" target="_top"><rect x="403.3" y="65" width="28.1" height="15.0" fill="rgb(244,52,44)" rx="2" ry="2" />
+<text text-anchor="" x="406.33" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >r..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>tostr_sizehint (1 samples, 2.38%)</title><a xlink:href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-tostr_sizehint-106" target="_top"><rect x="712.4" y="177" width="28.1" height="15.0" fill="rgb(217,137,22)" rx="2" ry="2" />
+<text text-anchor="" x="715.38" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >t..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>binexp_cache (1 samples, 2.38%)</title><a xlink:href="float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-binexp_cache-253" target="_top"><rect x="600.0" y="81" width="28.1" height="15.0" fill="rgb(246,202,7)" rx="2" ry="2" />
+<text text-anchor="" x="603.00" y="91.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >b..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl:):286 (1 samples, 2.38%)</title><rect x="656.2" y="97" width="28.1" height="15.0" fill="rgb(250,144,38)" rx="2" ry="2" />
+<text text-anchor="" x="659.19" y="107.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>Type (1 samples, 2.38%)</title><a xlink:href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-Type-39" target="_top"><rect x="740.5" y="177" width="28.1" height="15.0" fill="rgb(213,199,22)" rx="2" ry="2" />
+<text text-anchor="" x="743.48" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >T..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>all (42 samples, 100%)</title><rect x="10.0" y="337" width="1180.0" height="15.0" fill="rgb(205,18,32)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="347.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  ></text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>== (1 samples, 2.38%)</title><a xlink:href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-432" target="_top"><rect x="628.1" y="49" width="28.1" height="15.0" fill="rgb(252,135,12)" rx="2" ry="2" />
+<text text-anchor="" x="631.10" y="59.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >==</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>_thisind_str (1 samples, 2.38%)</title><a xlink:href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_thisind_str-113" target="_top"><rect x="768.6" y="177" width="28.1" height="15.0" fill="rgb(251,121,11)" rx="2" ry="2" />
+<text text-anchor="" x="771.57" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >_..</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl:)):603 (1 samples, 2.38%)</title><rect x="571.9" y="65" width="28.1" height="15.0" fill="rgb(243,209,49)" rx="2" ry="2" />
+<text text-anchor="" x="574.90" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print (3 samples, 7.14%)</title><a xlink:href="coreio-jl-465d134c20f8b0bc664b-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-coreio-jl-print-2" target="_top"><rect x="10.0" y="209" width="84.3" height="15.0" fill="rgb(210,115,0)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="219.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >print</text>
+</a>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>* (1 samples, 2.38%)</title><a xlink:href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-54" target="_top"><rect x="431.4" y="65" width="28.1" height="15.0" fill="rgb(232,150,31)" rx="2" ry="2" />
+<text text-anchor="" x="434.43" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >*</text>
+</a>
+</g>
+</svg>
diff --git a/profiling/statprof/client-jl-74fbd6bc37c8328be022-line.html b/profiling/statprof/client-jl-74fbd6bc37c8328be022-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..c4050e8deb89c758779005aeeb736b62c69a77ca
--- /dev/null
+++ b/profiling/statprof/client-jl-74fbd6bc37c8328be022-line.html
@@ -0,0 +1,4382 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## client.jl - frontend handling command line options, environment setup,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">##             and REPL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">have_color = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">default_color_warn = :yellow
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">default_color_error = :light_red
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">default_color_info = :cyan
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">default_color_debug = :blue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">default_color_input = :normal
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">default_color_answer = :normal
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">color_normal = text_colors[:normal]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function repl_color(key, default)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    env_str = get(ENV, key, &quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    c = tryparse(Int, env_str)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    c_conv = something(c, Symbol(env_str))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    haskey(text_colors, c_conv) ? c_conv : default
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">error_color() = repl_color(&quot;JULIA_ERROR_COLOR&quot;, default_color_error)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">warn_color()  = repl_color(&quot;JULIA_WARN_COLOR&quot; , default_color_warn)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">info_color()  = repl_color(&quot;JULIA_INFO_COLOR&quot; , default_color_info)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">debug_color()  = repl_color(&quot;JULIA_DEBUG_COLOR&quot; , default_color_debug)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">input_color()  = text_colors[repl_color(&quot;JULIA_INPUT_COLOR&quot;, default_color_input)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">answer_color() = text_colors[repl_color(&quot;JULIA_ANSWER_COLOR&quot;, default_color_answer)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">stackframe_lineinfo_color() = repl_color(&quot;JULIA_STACKFRAME_LINEINFO_COLOR&quot;, :bold)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">stackframe_function_color() = repl_color(&quot;JULIA_STACKFRAME_FUNCTION_COLOR&quot;, :bold)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function repl_cmd(cmd, out)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    shell = shell_split(get(ENV, &quot;JULIA_SHELL&quot;, get(ENV, &quot;SHELL&quot;, &quot;/bin/sh&quot;)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    shell_name = Base.basename(shell[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Immediately expand all arguments, so that typing e.g. ~/bin/foo works.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cmd.exec .= expanduser.(cmd.exec)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isempty(cmd.exec)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;no cmd to execute&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif cmd.exec[1] == &quot;cd&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_oldpwd = pwd()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if length(cmd.exec) &gt; 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            throw(ArgumentError(&quot;cd method only takes one argument&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif length(cmd.exec) == 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            dir = cmd.exec[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if dir == &quot;-&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if !haskey(ENV, &quot;OLDPWD&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    error(&quot;cd: OLDPWD not set&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                cd(ENV[&quot;OLDPWD&quot;])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                @static if !Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # TODO: this is a rather expensive way to copy a string, remove?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # If it&#39;s intended to simulate `cd`, it should instead be doing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # more nearly `cd $dir &amp;&amp; printf %s \$PWD` (with appropriate quoting),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # since shell `cd` does more than just `echo` the result.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    dir = read(`$shell -c &quot;printf &#39;%s&#39; $(shell_escape_posixly(dir))&quot;`, String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                cd(dir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cd()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ENV[&quot;OLDPWD&quot;] = new_oldpwd
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        println(out, pwd())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @static if !Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if shell_name == &quot;fish&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                shell_escape_cmd = &quot;begin; $(shell_escape_posixly(cmd)); and true; end&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                shell_escape_cmd = &quot;($(shell_escape_posixly(cmd))) &amp;&amp; true&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cmd = `$shell -c $shell_escape_cmd`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        run(ignorestatus(cmd))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function ip_matches_func(ip, func::Symbol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for fr in StackTraces.lookup(ip)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if fr === StackTraces.UNKNOWN || fr.from_c
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        fr.func === func &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function display_error(io::IO, er, bt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    printstyled(io, &quot;ERROR: &quot;; bold=true, color=Base.error_color())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # remove REPL-related frames from interactive printing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eval_ind = findlast(addr-&gt;ip_matches_func(addr, :eval), bt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if eval_ind !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bt = bt[1:eval_ind-1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    showerror(IOContext(io, :limit =&gt; true), er, bt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    println(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">display_error(er, bt) = display_error(stderr, er, bt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">display_error(er) = display_error(er, [])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function eval_user_input(@nospecialize(ast), show_value::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    errcount, lasterr, bt = 0, (), nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if have_color
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                print(color_normal)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if errcount &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                invokelatest(display_error, lasterr, bt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                errcount, lasterr = 0, ()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ast = Meta.lower(Main, ast)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                value = Core.eval(Main, ast)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ccall(:jl_set_global, Cvoid, (Any, Any, Any), Main, :ans, value)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if !(value === nothing) &amp;&amp; show_value
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if have_color
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        print(answer_color())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        invokelatest(display, value)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    catch err
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        println(stderr, &quot;Evaluation succeeded, but an error occurred while showing value of type &quot;, typeof(value), &quot;:&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        rethrow(err)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    println()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        catch err
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if errcount &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                println(stderr, &quot;SYSTEM: show(lasterr) caused an error&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            errcount, lasterr = errcount+1, err
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if errcount &gt; 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                println(stderr, &quot;WARNING: it is likely that something important is broken, and Julia will not be able to continue normally&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            bt = catch_backtrace()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(stdin, TTY) &amp;&amp; println()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function parse_input_line(s::String; filename::String=&quot;none&quot;, depwarn=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # For now, assume all parser warnings are depwarns
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ex = if depwarn
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:jl_parse_input_line, Any, (Ptr{UInt8}, Csize_t, Ptr{UInt8}, Csize_t),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              s, sizeof(s), filename, sizeof(filename))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        with_logger(NullLogger()) do
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ccall(:jl_parse_input_line, Any, (Ptr{UInt8}, Csize_t, Ptr{UInt8}, Csize_t),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                  s, sizeof(s), filename, sizeof(filename))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ex
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">parse_input_line(s::AbstractString) = parse_input_line(String(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function parse_input_line(io::IO)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = &quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !eof(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        s *= readline(io, keep=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        e = parse_input_line(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !(isa(e,Expr) &amp;&amp; e.head === :incomplete)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return e
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># detect the reason which caused an :incomplete expression
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># from the error message
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># NOTE: the error messages are defined in src/julia-parser.scm
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">incomplete_tag(ex) = :none
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function incomplete_tag(ex::Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Meta.isexpr(ex, :incomplete) || return :none
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    msg = ex.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    occursin(&quot;string&quot;, msg) &amp;&amp; return :string
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    occursin(&quot;comment&quot;, msg) &amp;&amp; return :comment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    occursin(&quot;requires end&quot;, msg) &amp;&amp; return :block
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    occursin(&quot;\&quot;`\&quot;&quot;, msg) &amp;&amp; return :cmd
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    occursin(&quot;character&quot;, msg) &amp;&amp; return :char
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return :other
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># call include() on a file, ignoring if not found
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include_ifexists(mod::Module, path::AbstractString) = isfile(path) &amp;&amp; include(mod, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-client-jl-exec_options-193"></a>
+              40 (95.24%) samples spent in exec_options<br />
+              0 (ex.),
+              40 (100.00%) (incl.)
+              when called from
+              _start
+              <a href="client-jl-74fbd6bc37c8328be022-line.html#Lclient-jl-74fbd6bc37c8328be022-line.html-425">line 425</a><br />
+            </div>
+            <span class="code">function exec_options(opts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isempty(ARGS)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        idxs = findall(x -&gt; x == &quot;--&quot;, ARGS)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        length(idxs) &gt; 0 &amp;&amp; deleteat!(ARGS, idxs[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    quiet                 = (opts.quiet != 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    startup               = (opts.startupfile != 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    history_file          = (opts.historyfile != 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    color_set             = (opts.color != 0) # --color!=auto
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global have_color     = (opts.color == 1) # --color=on
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global is_interactive = (opts.isinteractive != 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # pre-process command line argument list
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    arg_is_program = !isempty(ARGS)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    repl = !arg_is_program
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cmds = unsafe_load_commands(opts.commands)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (cmd, arg) in cmds
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if cmd == &#39;e&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            arg_is_program = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            repl = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif cmd == &#39;E&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            arg_is_program = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            repl = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif cmd == &#39;L&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @warn &quot;Unexpected command -$cmd&#39;$arg&#39;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # remove filename from ARGS
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global PROGRAM_FILE = arg_is_program ? popfirst!(ARGS) : &quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Load Distributed module only if any of the Distributed options have been specified.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    distributed_mode = (opts.worker == 1) || (opts.nprocs &gt; 0) || (opts.machine_file != C_NULL)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if distributed_mode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        let Distributed = require(PkgId(UUID((0x8ba89e20_285c_5b6f, 0x9357_94700520ee1b)), &quot;Distributed&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Core.eval(Main, :(const Distributed = $Distributed))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Core.eval(Main, :(using .Distributed))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        invokelatest(Main.Distributed.process_opts, opts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # load ~/.julia/config/startup.jl file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    startup &amp;&amp; load_julia_startup()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # process cmds list
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (cmd, arg) in cmds
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if cmd == &#39;e&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Core.eval(Main, parse_input_line(arg))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif cmd == &#39;E&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            invokelatest(show, Core.eval(Main, parse_input_line(arg)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            println()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif cmd == &#39;L&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # load file immediately on all processors
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !distributed_mode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                include(Main, arg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # TODO: Move this logic to Distributed and use a callback
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                @sync for p in invokelatest(Main.procs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    @async invokelatest(Main.remotecall_wait, include, p, Main, arg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # load file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if arg_is_program
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # program
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !is_interactive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ccall(:jl_exit_on_sigint, Cvoid, (Cint,), 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-266"></a>266</td>
+          <td></td>
+          <td>40 (95.24%)</td>
+          <td>
+            <div class="callees">
+              40 (100.00%)
+              samples spent calling
+              <a href="sysimg-jl-58aafbf6293fe483e566-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-sysimg-jl-include-22">include</a><br />
+            </div>
+            <span class="code">        include(Main, PROGRAM_FILE)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    repl |= is_interactive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if repl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        interactiveinput = isa(stdin, TTY)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if interactiveinput
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            global is_interactive = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            banner = (opts.banner != 0) # --banner!=no
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            banner = (opts.banner == 1) # --banner=yes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        run_main_repl(interactiveinput, quiet, banner, history_file, color_set)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function load_julia_startup()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # If the user built us with a specific Base.SYSCONFDIR, check that location first for a startup.jl file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #   If it is not found, then continue on to the relative path based on Sys.BINDIR
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    BINDIR = Sys.BINDIR::String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    SYSCONFDIR = Base.SYSCONFDIR::String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isempty(SYSCONFDIR) &amp;&amp; isfile(joinpath(BINDIR, SYSCONFDIR, &quot;julia&quot;, &quot;startup.jl&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        include(Main, abspath(BINDIR, SYSCONFDIR, &quot;julia&quot;, &quot;startup.jl&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        include_ifexists(Main, abspath(BINDIR, &quot;..&quot;, &quot;etc&quot;, &quot;julia&quot;, &quot;startup.jl&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    include_ifexists(Main, abspath(homedir(), &quot;.julia&quot;, &quot;config&quot;, &quot;startup.jl&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const repl_hooks = []
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    atreplinit(f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Register a one-argument function to be called before the REPL interface is initialized in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">interactive sessions; this is useful to customize the interface. The argument of `f` is the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">REPL object. This function should be called from within the `.julia/config/startup.jl`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">initialization file.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">atreplinit(f::Function) = (pushfirst!(repl_hooks, f); nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function __atreplinit(repl)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for f in repl_hooks
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            f(repl)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        catch err
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            showerror(stderr, err)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            println(stderr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_atreplinit(repl) = invokelatest(__atreplinit, repl)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># The REPL stdlib hooks into Base using this Ref
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const REPL_MODULE_REF = Ref{Module}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># run the requested sort of evaluation loop on stdio
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global active_repl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # load interactive-only libraries
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isdefined(Main, :InteractiveUtils)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            let InteractiveUtils = require(PkgId(UUID(0xb77e0a4c_d291_57a0_90e8_8db25a27a240), &quot;InteractiveUtils&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Core.eval(Main, :(const InteractiveUtils = $InteractiveUtils))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Core.eval(Main, :(using .InteractiveUtils))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        catch ex
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @warn &quot;Failed to import InteractiveUtils into module Main&quot; exception=(ex, catch_backtrace())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if interactive &amp;&amp; isassigned(REPL_MODULE_REF)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        invokelatest(REPL_MODULE_REF[]) do REPL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            term_env = get(ENV, &quot;TERM&quot;, @static Sys.iswindows() ? &quot;&quot; : &quot;dumb&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            term = REPL.Terminals.TTYTerminal(term_env, stdin, stdout, stderr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            color_set || (global have_color = REPL.Terminals.hascolor(term))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            banner &amp;&amp; Base.banner(term)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if term.term_type == &quot;dumb&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                active_repl = REPL.BasicREPL(term)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                quiet || @warn &quot;Terminal not fully functional&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                active_repl = REPL.LineEditREPL(term, have_color, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                active_repl.history_file = history_file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # Make sure any displays pushed in .julia/config/startup.jl ends up above the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # REPLDisplay
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            pushdisplay(REPL.REPLDisplay(active_repl))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            _atreplinit(active_repl)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            REPL.run_repl(active_repl, backend-&gt;(global active_repl_backend = backend))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # otherwise provide a simple fallback
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if interactive &amp;&amp; !quiet
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @warn &quot;REPL provider not available: using basic fallback&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        banner &amp;&amp; Base.banner()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        let input = stdin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(input, File) || isa(input, IOStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # for files, we can slurp in the whole thing at once
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ex = parse_input_line(read(input, String))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if Meta.isexpr(ex, :toplevel)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # if we get back a list of statements, eval them sequentially
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # as if we had parsed them sequentially
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    for stmt in ex.args
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        eval_user_input(stmt, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    body = ex.args
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    eval_user_input(ex, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                while isopen(input) || !eof(input)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if interactive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        print(&quot;julia&gt; &quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        flush(stdout)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    eval_user_input(parse_input_line(input), true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">baremodule MainInclude
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(fname::AbstractString) = Main.Base.include(Main, fname)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(x) = Core.eval(Main, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eval(expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Evaluate an expression in the global scope of the containing module.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Every `Module` (except those defined with `baremodule`) has its own 1-argument
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">definition of `eval`, which evaluates expressions in that module.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">MainInclude.eval
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    include(path::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Evaluate the contents of the input source file in the global scope of the containing module.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Every module (except those defined with `baremodule`) has its own 1-argument
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">definition of `include`, which evaluates the file in that module.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Returns the result of the last evaluated expression of the input file. During including,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a task-local include path is set to the directory containing the file. Nested calls to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`include` will search relative to that path. This function is typically used to load source
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">interactively, or to combine files in packages that are broken into multiple source files.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Use [`Base.include`](@ref) to evaluate a file into another module.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">MainInclude.include
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-client-jl-_start-420"></a>
+              40 (95.24%) samples spent in _start<br />
+            </div>
+            <span class="code">function _start()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    empty!(ARGS)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    append!(ARGS, Core.ARGS)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @eval Main import Base.MainInclude: eval, include
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-425"></a>425</td>
+          <td></td>
+          <td>40 (95.24%)</td>
+          <td>
+            <div class="callees">
+              40 (100.00%)
+              samples spent calling
+              <a href="client-jl-74fbd6bc37c8328be022-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-client-jl-exec_options-193">exec_options</a><br />
+            </div>
+            <span class="code">        exec_options(JLOptions())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    catch err
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        invokelatest(display_error, err, catch_backtrace())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        exit(1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if is_interactive &amp;&amp; have_color
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(color_normal)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lclient-jl-74fbd6bc37c8328be022-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/coreio-jl-465d134c20f8b0bc664b-line.html b/profiling/statprof/coreio-jl-465d134c20f8b0bc664b-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..9c1d8da4cbe408895008e7b0064a9e7afa470526
--- /dev/null
+++ b/profiling/statprof/coreio-jl-465d134c20f8b0bc664b-line.html
@@ -0,0 +1,353 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./coreio.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-coreio-jl-print-2"></a>
+              3 (7.14%) samples spent in print<br />
+              0 (ex.),
+              3 (100.00%) (incl.)
+              when called from
+              f
+              <a href="test-jl-6f8538a27ff3da5824d9-line.html#Ltest-jl-6f8538a27ff3da5824d9-line.html-14">line 14</a><br />
+            </div>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-3"></a>3</td>
+          <td></td>
+          <td>3 (7.14%)</td>
+          <td>
+            <div class="callees">
+              3 (100.00%)
+              samples spent calling
+              <a href="gcutils-jl-226c838c61f0891410cd-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-gcutils-jl-print-165">print</a><br />
+            </div>
+            <span class="code">print(xs...)   = print(stdout::IO, xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">println(xs...) = println(stdout::IO, xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">println(io::IO) = print(io, &#39;\n&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct DevNull &lt;: IO end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const devnull = DevNull()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isreadable(::DevNull) = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iswritable(::DevNull) = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isopen(::DevNull) = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(::DevNull, ::Type{UInt8}) = throw(EOFError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(::DevNull, ::UInt8) = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_write(::DevNull, ::Ptr{UInt8}, n::UInt)::Int = n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">close(::DevNull) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flush(::DevNull) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">wait_connected(::DevNull) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">wait_readnb(::DevNull) = wait()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">wait_readbyte(::DevNull) = wait()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">wait_close(::DevNull) = wait()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eof(::DevNull) = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">let CoreIO = Union{Core.CoreSTDOUT, Core.CoreSTDERR}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global write, unsafe_write
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    write(io::CoreIO, x::UInt8) = Core.write(io, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsafe_write(io::CoreIO, x::Ptr{UInt8}, nb::UInt) = Core.unsafe_write(io, x, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">stdin = devnull
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">stdout = Core.stdout
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lcoreio-jl-465d134c20f8b0bc664b-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">stderr = Core.stderr
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/driver-jl-4d4652571be99309ac0c-line.html b/profiling/statprof/driver-jl-4d4652571be99309ac0c-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..c15448242c9718f688148822f5e36ac7b3e2d230
--- /dev/null
+++ b/profiling/statprof/driver-jl-4d4652571be99309ac0c-line.html
@@ -0,0 +1,1393 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./compiler/ssair/driver.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on ons  9 okt 2019 08:41:28</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using Core: LineInfoNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const NullLineInfo = LineInfoNode(@__MODULE__, Symbol(&quot;&quot;), Symbol(&quot;&quot;), 0, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    import Base: Base, @show
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    macro show(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return :(println(stdout, $(QuoteNode(s)), &quot; = &quot;, $(esc(s))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;compiler/ssair/ir.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;compiler/ssair/domtree.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;compiler/ssair/slot2ssa.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;compiler/ssair/queries.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;compiler/ssair/passes.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;compiler/ssair/inlining.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;compiler/ssair/verify.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;compiler/ssair/legacy.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#@isdefined(Base) &amp;&amp; include(&quot;compiler/ssair/show.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function normalize_expr(stmt::Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if stmt.head === :gotoifnot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return GotoIfNot(stmt.args[1], stmt.args[2]::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif stmt.head === :return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return (length(stmt.args) == 0) ? ReturnNode(nothing) : ReturnNode(stmt.args[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif stmt.head === :unreachable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return ReturnNode()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function normalize(@nospecialize(stmt), meta::Vector{Any})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(stmt, Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if stmt.head == :meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            args = stmt.args
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if length(args) &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(meta, stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif stmt.head === :line
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return nothing # deprecated - we shouldn&#39;t encounter this
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return normalize_expr(stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function just_construct_ssa(ci::CodeInfo, code::Vector{Any}, nargs::Int, sv::OptimizationState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Go through and add an unreachable node after every
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Union{} call. Then reindex labels.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    idx = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    oldidx = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    changemap = fill(0, length(code))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while idx &lt;= length(code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if code[idx] isa Expr &amp;&amp; ci.ssavaluetypes[idx] === Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !(idx &lt; length(code) &amp;&amp; isexpr(code[idx+1], :unreachable))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                insert!(code, idx + 1, ReturnNode())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                insert!(ci.codelocs, idx + 1, ci.codelocs[idx])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                insert!(ci.ssavaluetypes, idx + 1, Union{})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if oldidx &lt; length(changemap)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    changemap[oldidx + 1] = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                idx += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        idx += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        oldidx += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    renumber_ir_elements!(code, changemap)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    inbounds_depth = 0 # Number of stacked inbounds
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    meta = Any[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    flags = fill(0x00, length(code))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:length(code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stmt = code[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isexpr(stmt, :inbounds)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            arg1 = stmt.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if arg1 === true # push
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                inbounds_depth += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif arg1 === false # clear
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                inbounds_depth = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif inbounds_depth &gt; 0 # pop
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                inbounds_depth -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stmt = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stmt = normalize(stmt, meta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        code[i] = stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !(stmt === nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if inbounds_depth &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                flags[i] |= IR_FLAG_INBOUNDS
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    strip_trailing_junk!(ci, code, flags)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cfg = compute_basic_blocks(code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    defuse_insts = scan_slot_def_use(nargs, ci, code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @timeit &quot;domtree 1&quot; domtree = construct_domtree(cfg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ir = let code = Any[nothing for _ = 1:length(code)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             argtypes = sv.slottypes[1:(nargs+1)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            IRCode(code, Any[], ci.codelocs, flags, cfg, collect(LineInfoNode, ci.linetable), argtypes, meta, sv.sp)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @timeit &quot;construct_ssa&quot; ir = construct_ssa!(ci, code, ir, domtree, defuse_insts, nargs, sv.sp, sv.slottypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ir
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-driver-jl-run_passes-113"></a>
+              1 (2.70%) samples spent in run_passes<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              optimize
+              <a href="optimize-jl-9a25bbc7af72ab9ad4ff-line.html#Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-166">line 166</a><br />
+            </div>
+            <span class="code">function run_passes(ci::CodeInfo, nargs::Int, sv::OptimizationState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ir = just_construct_ssa(ci, copy_exprargs(ci.code), nargs, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #@Base.show (&quot;after_construct&quot;, ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # TODO: Domsorting can produce an updated domtree - no need to recompute here
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @timeit &quot;compact 1&quot; ir = compact!(ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @timeit &quot;Inlining&quot; ir = ssa_inlining_pass!(ir, ir.linetable, sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #@timeit &quot;verify 2&quot; verify_ir(ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @timeit &quot;domtree 2&quot; domtree = construct_domtree(ir.cfg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-121"></a>121</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="ir-jl-bebdc9bf648f41024d37-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-ir-jl-compact-1023">compact!</a><br />
+            </div>
+            <span class="code">    ir = compact!(ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #@Base.show (&quot;before_sroa&quot;, ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @timeit &quot;SROA&quot; ir = getfield_elim_pass!(ir, domtree)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #@Base.show ir.new_nodes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #@Base.show (&quot;after_sroa&quot;, ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ir = adce_pass!(ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #@Base.show (&quot;after_adce&quot;, ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @timeit &quot;type lift&quot; ir = type_lift_pass!(ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @timeit &quot;compact 3&quot; ir = compact!(ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #@Base.show ir
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if JLOptions().debug_level == 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @timeit &quot;verify 3&quot; (verify_ir(ir); verify_linetable(ir.linetable))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ir
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ldriver-jl-4d4652571be99309ac0c-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/event-jl-9f2b370029d9fd3c8bef-line.html b/profiling/statprof/event-jl-9f2b370029d9fd3c8bef-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..b265660bc0d54a83aac354f2a4ce4cf263576845
--- /dev/null
+++ b/profiling/statprof/event-jl-9f2b370029d9fd3c8bef-line.html
@@ -0,0 +1,4863 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./event.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## condition variables
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Condition()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create an edge-triggered event source that tasks can wait for. Tasks that call [`wait`](@ref) on a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`Condition` are suspended and queued. Tasks are woken up when [`notify`](@ref) is later called on
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the `Condition`. Edge triggering means that only tasks waiting at the time [`notify`](@ref) is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">called can be woken up. For level-triggered notifications, you must keep extra state to keep
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">track of whether a notification has happened. The [`Channel`](@ref) type does
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">this, and so can be used for level-triggered events.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct Condition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    waitq::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Condition() = new([])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    wait([x])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Block the current task until some event occurs, depending on the type of the argument:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">* [`Channel`](@ref): Wait for a value to be appended to the channel.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">* [`Condition`](@ref): Wait for [`notify`](@ref) on a condition.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">* `Process`: Wait for a process or process chain to exit. The `exitcode` field of a process
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  can be used to determine success or failure.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">* [`Task`](@ref): Wait for a `Task` to finish. If the task fails with an exception, the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  exception is propagated (re-thrown in the task that called `wait`).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">* [`RawFD`](@ref): Wait for changes on a file descriptor (see the `FileWatching` package).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If no argument is passed, the task blocks for an undefined period. A task can only be
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">restarted by an explicit call to [`schedule`](@ref) or [`yieldto`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Often `wait` is called within a `while` loop to ensure a waited-for condition is met before
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">proceeding.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait(c::Condition)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ct = current_task()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(c.waitq, ct)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return wait()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    catch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        filter!(x-&gt;x!==ct, c.waitq)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rethrow()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    notify(condition, val=nothing; all=true, error=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Wake up tasks waiting for a condition, passing them `val`. If `all` is `true` (the default),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">all waiting tasks are woken, otherwise only one is. If `error` is `true`, the passed value
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is raised as an exception in the woken tasks.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the count of tasks woken up. Return 0 if no tasks are waiting on `condition`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">notify(c::Condition, @nospecialize(arg = nothing); all=true, error=false) = notify(c, arg, all, error)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function notify(c::Condition, arg, all, error)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cnt = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if all
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        cnt = length(c.waitq)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for t in c.waitq
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            error ? schedule(t, arg, error=error) : schedule(t, arg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        empty!(c.waitq)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif !isempty(c.waitq)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        cnt = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = popfirst!(c.waitq)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error ? schedule(t, arg, error=error) : schedule(t, arg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cnt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">notify_error(c::Condition, err) = notify(c, err, true, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">n_waiters(c::Condition) = length(c.waitq)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## scheduler and work queue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">global const Workqueue = Task[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function enq_work(t::Task)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t.state == :runnable || error(&quot;schedule: Task not runnable&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:uv_stop, Cvoid, (Ptr{Cvoid},), eventloop())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(Workqueue, t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t.state = :queued
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">schedule(t::Task) = enq_work(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    schedule(t::Task, [val]; error=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Add a [`Task`](@ref) to the scheduler&#39;s queue. This causes the task to run constantly when the system
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is otherwise idle, unless the task performs a blocking operation such as [`wait`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If a second argument `val` is provided, it will be passed to the task (via the return value of
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`yieldto`](@ref)) when it runs again. If `error` is `true`, the value is raised as an exception in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the woken task.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a5() = sum(i for i in 1:1000);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; b = Task(a5);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; istaskstarted(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; schedule(b);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; yield();
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; istaskstarted(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; istaskdone(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function schedule(t::Task, arg; error=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # schedule a task to be (re)started with the given value or exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if error
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t.exception = arg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t.result = arg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return enq_work(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># fast version of `schedule(t, arg); wait()`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function schedule_and_wait(t::Task, arg=nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t.state == :runnable || error(&quot;schedule: Task not runnable&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isempty(Workqueue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return yieldto(t, arg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t.result = arg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(Workqueue, t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t.state = :queued
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return wait()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    yield()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Switch to the scheduler to allow another scheduled task to run. A task that calls this
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function is still runnable, and will be restarted immediately if there are no other runnable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">tasks.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">yield() = (enq_work(current_task()); wait())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    yield(t::Task, arg = nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">A fast, unfair-scheduling version of `schedule(t, arg); yield()` which
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">immediately yields to `t` before calling the scheduler.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function yield(t::Task, @nospecialize x = nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t.state == :runnable || error(&quot;schedule: Task not runnable&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t.result = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    enq_work(current_task())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return try_yieldto(ensure_rescheduled, Ref(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    yieldto(t::Task, arg = nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Switch to the given task. The first time a task is switched to, the task&#39;s function is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">called with no arguments. On subsequent switches, `arg` is returned from the task&#39;s last
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">call to `yieldto`. This is a low-level call that only switches tasks, not considering states
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">or scheduling in any way. Its use is discouraged.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function yieldto(t::Task, @nospecialize x = nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t.result = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return try_yieldto(identity, Ref(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function try_yieldto(undo, reftask::Ref{Task})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:jl_switchto, Cvoid, (Any,), reftask)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    catch e
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        undo(reftask[])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rethrow(e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ct = current_task()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    exc = ct.exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if exc !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ct.exception = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(exc)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result = ct.result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ct.result = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># yield to a task, throwing an exception in it
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function throwto(t::Task, @nospecialize exc)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t.exception = exc
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return yieldto(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function ensure_rescheduled(othertask::Task)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ct = current_task()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if ct !== othertask &amp;&amp; othertask.state == :runnable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # we failed to yield to othertask
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # return it to the head of the queue to be scheduled later
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        pushfirst!(Workqueue, othertask)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        othertask.state = :queued
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if ct.state == :queued
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # if the current task was queued,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # also need to return it to the runnable state
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # before throwing an error
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i = findfirst(t-&gt;t===ct, Workqueue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i === nothing || deleteat!(Workqueue, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ct.state = :runnable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@noinline function poptask()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = popfirst!(Workqueue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if t.state != :queued
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # assume this somehow got queued twice,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # probably broken now, but try discarding this switch and keep going
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # can&#39;t throw here, because it&#39;s probably not the fault of the caller to wait
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # and don&#39;t want to use print() here, because that may try to incur a task switch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:jl_safe_printf, Cvoid, (Ptr{UInt8}, Int32...),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            &quot;\nWARNING: Workqueue inconsistency detected: popfirst!(Workqueue).state != :queued\n&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t.state = :runnable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Ref(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-event-jl-wait-243"></a>
+              3 (7.14%) samples spent in wait<br />
+              0 (ex.),
+              3 (100.00%) (incl.)
+              when called from
+              uv_write
+              <a href="stream-jl-9a841f596a6f3ffbe5b9-line.html#Lstream-jl-9a841f596a6f3ffbe5b9-line.html-782">line 782</a><br />
+            </div>
+            <span class="code">function wait()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isempty(Workqueue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-246"></a>246</td>
+          <td></td>
+          <td>3 (7.14%)</td>
+          <td>
+            <div class="callees">
+              3 (100.00%)
+              samples spent calling
+              <a href="libuv-jl-530c66ad95b5a57763e9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-libuv-jl-process_events-98">process_events</a><br />
+            </div>
+            <span class="code">            c = process_events(true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if c == 0 &amp;&amp; eventloop() != C_NULL &amp;&amp; isempty(Workqueue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # if there are no active handles and no runnable tasks, just
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # wait for signals.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                pause()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            reftask = poptask()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if reftask !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                result = try_yieldto(ensure_rescheduled, reftask)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                process_events(false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # return when we come out of the queue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # unreachable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pause() = ccall(:Sleep, stdcall, Cvoid, (UInt32,), 0xffffffff)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pause() = ccall(:pause, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## async event notifications
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    AsyncCondition()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a async condition that wakes up tasks waiting for it
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(by calling [`wait`](@ref) on the object)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">when notified from C by a call to `uv_async_send`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Waiting tasks are woken with an error when the object is closed (by [`close`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Use [`isopen`](@ref) to check whether it is still active.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct AsyncCondition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    handle::Ptr{Cvoid}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cond::Condition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isopen::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function AsyncCondition()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        this = new(Libc.malloc(_sizeof_uv_async), Condition(), true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        associate_julia_struct(this.handle, this)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finalizer(uvfinalize, this)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        err = ccall(:uv_async_init, Cint, (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            eventloop(), this, uv_jl_asynccb::Ptr{Cvoid})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if err != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            #TODO: this codepath is currently not tested
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Libc.free(this.handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            this.handle = C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            throw(_UVError(&quot;uv_async_init&quot;, err))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return this
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    AsyncCondition(callback::Function)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a async condition that calls the given `callback` function. The `callback` is passed one argument,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the async condition object itself.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function AsyncCondition(cb::Function)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    async = AsyncCondition()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    waiter = Task(function()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while isopen(async)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            success = try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                wait(async)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            catch exc # ignore possible exception on close()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                isa(exc, EOFError) || rethrow(exc)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            success &amp;&amp; cb(async)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # must start the task right away so that it can wait for the AsyncCondition before
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # we re-enter the event loop. this avoids a race condition. see issue #12719
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    yield(waiter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return async
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## timer-based notifications
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Timer(delay; interval = 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a timer that wakes up tasks waiting for it (by calling [`wait`](@ref) on the timer object).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Waiting tasks are woken after an initial delay of `delay` seconds, and then repeating with the given
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`interval` in seconds. If `interval` is equal to `0`, the timer is only triggered once. When
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the timer is closed (by [`close`](@ref) waiting tasks are woken with an error. Use [`isopen`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to check whether a timer is still active.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct Timer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    handle::Ptr{Cvoid}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cond::Condition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isopen::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function Timer(timeout::Real; interval::Real = 0.0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        timeout ≥ 0 || throw(ArgumentError(&quot;timer cannot have negative timeout of $timeout seconds&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        interval ≥ 0 || throw(ArgumentError(&quot;timer cannot have negative repeat interval of $interval seconds&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        this = new(Libc.malloc(_sizeof_uv_timer), Condition(), true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        err = ccall(:uv_timer_init, Cint, (Ptr{Cvoid}, Ptr{Cvoid}), eventloop(), this)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if err != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            #TODO: this codepath is currently not tested
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Libc.free(this.handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            this.handle = C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            throw(_UVError(&quot;uv_timer_init&quot;, err))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        associate_julia_struct(this.handle, this)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finalizer(uvfinalize, this)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:uv_update_time, Cvoid, (Ptr{Cvoid},), eventloop())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:uv_timer_start,  Cint,  (Ptr{Cvoid}, Ptr{Cvoid}, UInt64, UInt64),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              this, uv_jl_timercb::Ptr{Cvoid},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              UInt64(round(timeout * 1000)) + 1, UInt64(round(interval * 1000)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return this
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_convert(::Type{Ptr{Cvoid}}, t::Timer) = t.handle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_convert(::Type{Ptr{Cvoid}}, async::AsyncCondition) = async.handle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait(t::Union{Timer, AsyncCondition})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isopen(t) || throw(EOFError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stream_wait(t, t.cond)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isopen(t::Union{Timer, AsyncCondition}) = t.isopen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function close(t::Union{Timer, AsyncCondition})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if t.handle != C_NULL &amp;&amp; isopen(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t.isopen = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isa(t, Timer) &amp;&amp; ccall(:uv_timer_stop, Cint, (Ptr{Cvoid},), t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:jl_close_uv, Cvoid, (Ptr{Cvoid},), t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uvfinalize(t::Union{Timer, AsyncCondition})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if t.handle != C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        disassociate_julia_struct(t.handle) # not going to call the usual close hooks
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        close(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t.handle = C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t.isopen = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _uv_hook_close(t::Union{Timer, AsyncCondition})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uvfinalize(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    notify_error(t.cond, EOFError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_asynccb(handle::Ptr{Cvoid})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    async = @handle_as handle AsyncCondition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    notify(async.cond)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_timercb(handle::Ptr{Cvoid})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = @handle_as handle Timer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if ccall(:uv_timer_get_repeat, UInt64, (Ptr{Cvoid},), t) == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # timer is stopped now
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        close(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    notify(t.cond)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sleep(seconds)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Block the current task for a specified number of seconds. The minimum sleep time is 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">millisecond or input of `0.001`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function sleep(sec::Real)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sec ≥ 0 || throw(ArgumentError(&quot;cannot sleep for $sec seconds&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    wait(Timer(sec))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># timer with repeated callback
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Timer(callback::Function, delay; interval = 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a timer that wakes up tasks waiting for it (by calling [`wait`](@ref) on the timer object) and
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">calls the function `callback`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Waiting tasks are woken and the function `callback` is called after an initial delay of `delay` seconds,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and then repeating with the given `interval` in seconds. If `interval` is equal to `0`, the timer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is only triggered once. The function `callback` is called with a single argument, the timer itself.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">When the timer is closed (by [`close`](@ref) waiting tasks are woken with an error. Use [`isopen`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to check whether a timer is still active.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Here the first number is printed after a delay of two seconds, then the following numbers are printed quickly.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```julia-repl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           i = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           cb(timer) = (global i += 1; println(i))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           t = Timer(cb, 2, interval = 0.2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           wait(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           sleep(0.5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           close(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function Timer(cb::Function, timeout::Real; interval::Real = 0.0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = Timer(timeout, interval = interval)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    waiter = Task(function()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while isopen(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            success = try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                wait(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            catch exc # ignore possible exception on close()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                isa(exc, EOFError) || rethrow(exc)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            success &amp;&amp; cb(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # must start the task right away so that it can wait for the Timer before
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # we re-enter the event loop. this avoids a race condition. see issue #12719
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    yield(waiter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Levent-jl-9f2b370029d9fd3c8bef-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/fastshortest-jl-253e248589e118f4dde7-line.html b/profiling/statprof/fastshortest-jl-253e248589e118f4dde7-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..0d7144d394f743a5aa7ca1b767223d8c137c8375
--- /dev/null
+++ b/profiling/statprof/fastshortest-jl-253e248589e118f4dde7-line.html
@@ -0,0 +1,1279 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia, but is derived from
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># https://github.com/google/double-conversion which has the following license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Copyright 2006-2014, the V8 project authors. All rights reserved.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Redistribution and use in source and binary forms, with or without
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># modification, are permitted provided that the following conditions are
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># met:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#     * Redistributions of source code must retain the above copyright
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       notice, this list of conditions and the following disclaimer.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#     * Redistributions in binary form must reproduce the above
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       copyright notice, this list of conditions and the following
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       disclaimer in the documentation and/or other materials provided
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       with the distribution.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#     * Neither the name of Google Inc. nor the names of its
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       contributors may be used to endorse or promote products derived
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       from this software without specific prior written permission.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kMinExp = -60
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const kMaxExp = -32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-roundweed-34"></a>
+              1 (2.38%) samples spent in roundweed<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              digitgen
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#Lfastshortest-jl-253e248589e118f4dde7-line.html-98">line 98</a><br />
+            </div>
+            <span class="code">function roundweed(buffer,len,rest,tk,unit,kappa,too_high::UInt64,unsafe_interval::UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    small = too_high - unit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    big = too_high + unit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while rest &lt; small &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            unsafe_interval - rest &gt;= tk &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            (rest + tk &lt; small ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            small - rest &gt;= rest + tk - small)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        buffer[len-1] -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rest += tk
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if rest &lt; big &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_interval - rest &gt;= tk &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (rest + tk &lt; big ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        big - rest &gt; rest + tk - big)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return false, kappa
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-50"></a>50</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <span class="code">    return (2 * unit &lt;= rest) &amp;&amp; (rest &lt;= unsafe_interval - 4 * unit), kappa
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const SmallPowersOfTen = [
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        0, 1, 10, 100, 1000, 10000, 100000,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        1000000, 10000000, 100000000, 1000000000]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function bigpowten(n,n_bits)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    guess = ((n_bits + 1) * 1233) &gt;&gt; 12
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    guess += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = SmallPowersOfTen[guess+1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return n &lt; i ? (SmallPowersOfTen[guess], guess-1) : (i,guess)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-digitgen-64"></a>
+              8 (19.05%) samples spent in digitgen<br />
+              1 (100.00%) (ex.),
+              8 (100.00%) (incl.)
+              when called from
+              fastshortest
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#Lfastshortest-jl-253e248589e118f4dde7-line.html-114">line 114</a><br />
+            </div>
+            <span class="code">function digitgen(low,w,high,buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unit::UInt64 = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    one = Float(unit &lt;&lt; -w.e, w.e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    too_high = Float(high.s+unit,high.e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsafe_interval = too_high - Float(low.s-unit,low.e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    integrals = too_high.s &gt;&gt; -one.e
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fractionals = too_high.s &amp; (one.s-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    divisor, kappa = bigpowten(integrals, 64 + one.e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    len = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rest = UInt64(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while kappa &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-75"></a>75</td>
+          <td></td>
+          <td>2 (4.76%)</td>
+          <td>
+            <div class="callees">
+              2 (100.00%)
+              samples spent calling
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-div">div</a><br />
+            </div>
+            <span class="code">        digit = div(integrals,divisor)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        buffer[len] = 0x30 + digit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        len += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        integrals %= divisor
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        kappa -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rest = (UInt64(integrals) &lt;&lt; -one.e) + fractionals
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if rest &lt; unsafe_interval.s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            r, kappa = roundweed(buffer, len, rest, UInt64(divisor) &lt;&lt; -one.e,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        unit,kappa,(too_high - w).s,unsafe_interval.s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return r, kappa, len
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        divisor = div(divisor,10)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        fractionals *= 10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unit *= 10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_interval = Float(unsafe_interval.s*10,unsafe_interval.e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-92"></a>92</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="operators-jl-714ade2c8745dd55a410-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-operators-jl-603">&gt;&gt;</a><br />
+            </div>
+            <span class="code">        digit = fractionals &gt;&gt; -one.e
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-93"></a>93</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-803">+</a><br />
+            </div>
+            <span class="code">        buffer[len] = 0x30 + digit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        len += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        fractionals &amp;= one.s - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        kappa -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-97"></a>97</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-427">&lt;</a><br />
+            </div>
+            <span class="code">        if fractionals &lt; unsafe_interval.s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-98"></a>98</td>
+          <td></td>
+          <td>2 (4.76%)</td>
+          <td>
+            <div class="callees">
+              1 (50.00%)
+              samples spent calling
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-54">*</a><br />
+              1 (50.00%)
+              samples spent calling
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-roundweed-34">roundweed</a><br />
+            </div>
+            <span class="code">            r, kappa = roundweed(buffer,len,fractionals,one.s,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        unit,kappa,(too_high - w).s*unit,unsafe_interval.s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-100"></a>100</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <span class="code">            return r, kappa, len
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-fastshortest-105"></a>
+              11 (26.19%) samples spent in fastshortest<br />
+              1 (100.00%) (ex.),
+              11 (100.00%) (incl.)
+              when called from
+              grisu
+              <a href="grisu-jl-fab39581eb10ad2e545a-line.html#Lgrisu-jl-fab39581eb10ad2e545a-line.html-71">line 71</a><br />
+            </div>
+            <span class="code">function fastshortest(v, buffer = Vector{UInt8}(undef, 17))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f = normalize(Float64(v))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-107"></a>107</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-normalizedbound-120">normalizedbound</a><br />
+            </div>
+            <span class="code">    bound_minus, bound_plus = normalizedbound(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ten_mk_min_exp = kMinExp - (f.e + FloatSignificandSize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ten_mk_max_exp = kMaxExp - (f.e + FloatSignificandSize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-110"></a>110</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-binexp_cache-253">binexp_cache</a><br />
+            </div>
+            <span class="code">    cp = binexp_cache(ten_mk_min_exp,ten_mk_max_exp)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    scaled_w = f * cp
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    scaled_bound_minus = bound_minus * cp
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    scaled_bound_plus = bound_plus * cp
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-114"></a>114</td>
+          <td></td>
+          <td>8 (19.05%)</td>
+          <td>
+            <div class="callees">
+              8 (100.00%)
+              samples spent calling
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-digitgen-64">digitgen</a><br />
+            </div>
+            <span class="code">    r, kappa, len = digitgen(scaled_bound_minus,scaled_w,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                             scaled_bound_plus,buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    decimal_exponent = -cp.de + kappa
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-117"></a>117</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <span class="code">    return r, len, decimal_exponent+len-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfastshortest-jl-253e248589e118f4dde7-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/files.html b/profiling/statprof/files.html
new file mode 100644
index 0000000000000000000000000000000000000000..e89ea0d0de04aeda681961c46e8a416dac52a1ea
--- /dev/null
+++ b/profiling/statprof/files.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+    <script src="sorttable.js"></script>
+    <title>StatProfilerHTML.jl: file list</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table class="sortable">
+        <caption>Files, sorted by exclusive sample count</caption>
+        <tr>
+          <th class="sorttable_sorted">Exclusive</th>
+          <th>Report</th>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="14">14 (33.33%)</td>
+          <td><a href="string-jl-d20bff96b5e2c46b112e-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="8">8 (19.05%)</td>
+          <td><a href="int-jl-af434f8f2b4fe43f173a-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="6">6 (14.29%)</td>
+          <td><a href="io-jl-f839edf29063078eece4-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td><a href="fastshortest-jl-253e248589e118f4dde7-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td><a href="libuv-jl-530c66ad95b5a57763e9-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./libuv.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td><a href="iobuffer-jl-0cfbb4403b3061764f48-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="2">2 (4.76%)</td>
+          <td><a href="bignums-jl-e031ee9c77e42cd3aafb-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/bignums.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td><a href="grisu-jl-fab39581eb10ad2e545a-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td><a href="promotion-jl-fe649671ed190521a171-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./promotion.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td><a href="array-jl-e331915c4fb281d94775-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./array.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="io-jl-7061b86fd468f75a7694-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./io.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="test-jl-6f8538a27ff3da5824d9-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="operators-jl-714ade2c8745dd55a410-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="client-jl-74fbd6bc37c8328be022-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="float-jl-2e7d768064d970d2b754-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="boot-jl-1c95b3ccecba8d7f1acb-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="loading-jl-267f08df202e5203e249-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="gcutils-jl-226c838c61f0891410cd-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./gcutils.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="stream-jl-9a841f596a6f3ffbe5b9-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./stream.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="Profile-jl-e79abb67faac09cf5e9b-line.html">/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="sysimg-jl-58aafbf6293fe483e566-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="coreio-jl-465d134c20f8b0bc664b-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./coreio.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="event-jl-9f2b370029d9fd3c8bef-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./event.jl</a></td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td><a href="nothing-0feca720e2c29dafb2c9-line.html">nothing</a></td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/float-jl-2e7d768064d970d2b754-line.html b/profiling/statprof/float-jl-2e7d768064d970d2b754-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..c0f4dd85612f3565436067a00262daf9ab413667
--- /dev/null
+++ b/profiling/statprof/float-jl-2e7d768064d970d2b754-line.html
@@ -0,0 +1,2651 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia, but is derived from
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># https://github.com/google/double-conversion which has the following license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Copyright 2006-2014, the V8 project authors. All rights reserved.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Redistribution and use in source and binary forms, with or without
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># modification, are permitted provided that the following conditions are
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># met:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#     * Redistributions of source code must retain the above copyright
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       notice, this list of conditions and the following disclaimer.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#     * Redistributions in binary form must reproduce the above
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       copyright notice, this list of conditions and the following
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       disclaimer in the documentation and/or other materials provided
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       with the distribution.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#     * Neither the name of Google Inc. nor the names of its
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       contributors may be used to endorse or promote products derived
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       from this software without specific prior written permission.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># &quot;AS IS&quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">import Base: -, *
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct Float
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s::UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    e::Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    de::Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Float() = Float(0,0,0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Float(x,y) = Float(x,y,Int32(0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Float(d::AbstractFloat) = Float(_significand(d), _exponent(d))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Consts
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const Float10MSBits = 0xFFC0000000000000 # used normalize(Float)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const FloatSignMask = 0x8000000000000000 # used in normalize(Float)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const FloatSignificandSize = Int32(64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-normalize-48"></a>
+              1 (2.38%) samples spent in normalize<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              normalizedbound
+              <a href="float-jl-2e7d768064d970d2b754-line.html#Lfloat-jl-2e7d768064d970d2b754-line.html-122">line 122</a><br />
+            </div>
+            <span class="code">function normalize(v::Float)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f = v.s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    e::Int32 = v.e
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-51"></a>51</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-432">==</a><br />
+            </div>
+            <span class="code">    while (f &amp; Float10MSBits) == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        f &lt;&lt;= 10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        e -= 10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while (f &amp; FloatSignMask) == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        f &lt;&lt;= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        e -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Float(f,e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function normalize(v::Float64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = _significand(v); e = _exponent(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while (s &amp; HiddenBit(Float64)) == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        s &lt;&lt;= UInt64(1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        e -= Int32(1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s &lt;&lt;= UInt64(FloatSignificandSize - SignificandSize(Float64))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    e -=  Int32( FloatSignificandSize - SignificandSize(Float64))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Float(s, e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Float128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#DenormalExponent(::Type{Float128}) = Int32(-ExponentBias(Float128) + 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#ExponentMask(::Type{Float128}) = 0x7fff0000000000000000000000000000
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#PhysicalSignificandSize(::Type{Float128}) = Int32(112)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#SignificandSize(::Type{Float128}) = Int32(113)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#ExponentBias(::Type{Float128}) = Int32(0x00003fff + PhysicalSignificandSize(Float128))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#SignificandMask(::Type{Float128}) = 0x0000ffffffffffffffffffffffffffff
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#HiddenBit(::Type{Float128}) = 0x00010000000000000000000000000000
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#uint_t(d::Float128) = reinterpret(UInt128,d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Float64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">DenormalExponent(::Type{Float64}) = Int32(-ExponentBias(Float64) + 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ExponentMask(::Type{Float64}) = 0x7FF0000000000000
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">PhysicalSignificandSize(::Type{Float64}) = Int32(52)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">SignificandSize(::Type{Float64}) = Int32(53)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ExponentBias(::Type{Float64}) = Int32(0x3FF + PhysicalSignificandSize(Float64))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">SignificandMask(::Type{Float64}) = 0x000FFFFFFFFFFFFF
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">HiddenBit(::Type{Float64}) = 0x0010000000000000
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uint_t(d::Float64) = reinterpret(UInt64,d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Float32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">DenormalExponent(::Type{Float32}) = Int32(-ExponentBias(Float32) + 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ExponentMask(::Type{Float32}) = 0x7F800000
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">PhysicalSignificandSize(::Type{Float32}) = Int32(23)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">SignificandSize(::Type{Float32}) = Int32(24)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ExponentBias(::Type{Float32}) = Int32(0x7F + PhysicalSignificandSize(Float32))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">SignificandMask(::Type{Float32}) = 0x007FFFFF
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">HiddenBit(::Type{Float32}) = 0x00800000
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uint_t(d::Float32) = reinterpret(UInt32,d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Float16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">DenormalExponent(::Type{Float16}) = Int32(-ExponentBias(Float16) + 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ExponentMask(::Type{Float16}) = 0x7c00
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">PhysicalSignificandSize(::Type{Float16}) = Int32(10)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">SignificandSize(::Type{Float16}) = Int32(11)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ExponentBias(::Type{Float16}) = Int32(0x000f + PhysicalSignificandSize(Float16))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">SignificandMask(::Type{Float16}) = 0x03ff
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">HiddenBit(::Type{Float16}) = 0x0400
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uint_t(d::Float16) = reinterpret(UInt16,d)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _exponent(d::T) where T&lt;:AbstractFloat
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  isdenormal(d) &amp;&amp; return DenormalExponent(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  biased_e::Int32 = Int32((uint_t(d) &amp; ExponentMask(T)) &gt;&gt; PhysicalSignificandSize(T))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  return Int32(biased_e - ExponentBias(T))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _significand(d::T) where T&lt;:AbstractFloat
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  s = uint_t(d) &amp; SignificandMask(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  return !isdenormal(d) ? s + HiddenBit(T) : s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isdenormal(d::T) where {T&lt;:AbstractFloat} = (uint_t(d) &amp; ExponentMask(T)) == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-normalizedbound-120"></a>
+              1 (2.38%) samples spent in normalizedbound<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              fastshortest
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#Lfastshortest-jl-253e248589e118f4dde7-line.html-107">line 107</a><br />
+            </div>
+            <span class="code">function normalizedbound(f::AbstractFloat)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    v = Float(_significand(f),_exponent(f))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-122"></a>122</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-normalize-48">normalize</a><br />
+            </div>
+            <span class="code">    m_plus = normalize(Float((v.s &lt;&lt; 1) + 1, v.e - 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if lowerboundaryiscloser(f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        m_minus = Float((v.s &lt;&lt; 2) - 1, v.e - 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        m_minus = Float((v.s &lt;&lt; 1) - 1, v.e - 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Float(m_minus.s &lt;&lt; (m_minus.e - m_plus.e), m_plus.e), m_plus
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function lowerboundaryiscloser(f::T) where T&lt;:AbstractFloat
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    physical_significand_is_zero = (uint_t(f) &amp; SignificandMask(T)) == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return physical_significand_is_zero &amp;&amp; (_exponent(f) != DenormalExponent(T))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(-)(a::Float,b::Float) = Float(a.s - b.s,a.e,a.de)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const FloatM32 = 0xFFFFFFFF
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function (*)(this::Float,other::Float)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a::UInt64 = this.s &gt;&gt; 32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b::UInt64 = this.s &amp; FloatM32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    c::UInt64 = other.s &gt;&gt; 32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    d::UInt64 = other.s &amp; FloatM32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ac::UInt64 = a * c
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bc::UInt64 = b * c
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ad::UInt64 = a * d
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bd::UInt64 = b * d
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tmp::UInt64 = (bd &gt;&gt; 32) + (ad &amp; FloatM32) + (bc &amp; FloatM32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # By adding 1U &lt;&lt; 31 to tmp we round the final result.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Halfway cases will be round up.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tmp += UInt64(1) &lt;&lt; 31
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result_f::UInt64 = ac + (ad &gt;&gt; 32) + (bc &gt;&gt; 32) + (tmp &gt;&gt; 32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Float(result_f,this.e + other.e + 64,this.de)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const CachedPowers = Float[
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xfa8fd5a0081c0288, -1220, -348),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xbaaee17fa23ebf76, -1193, -340),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x8b16fb203055ac76, -1166, -332),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xcf42894a5dce35ea, -1140, -324),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x9a6bb0aa55653b2d, -1113, -316),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xe61acf033d1a45df, -1087, -308),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xab70fe17c79ac6ca, -1060, -300),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xff77b1fcbebcdc4f, -1034, -292),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xbe5691ef416bd60c, -1007, -284),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x8dd01fad907ffc3c, -980, -276),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xd3515c2831559a83, -954, -268),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x9d71ac8fada6c9b5, -927, -260),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xea9c227723ee8bcb, -901, -252),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xaecc49914078536d, -874, -244),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x823c12795db6ce57, -847, -236),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xc21094364dfb5637, -821, -228),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x9096ea6f3848984f, -794, -220),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xd77485cb25823ac7, -768, -212),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xa086cfcd97bf97f4, -741, -204),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xef340a98172aace5, -715, -196),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xb23867fb2a35b28e, -688, -188),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x84c8d4dfd2c63f3b, -661, -180),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xc5dd44271ad3cdba, -635, -172),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x936b9fcebb25c996, -608, -164),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xdbac6c247d62a584, -582, -156),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xa3ab66580d5fdaf6, -555, -148),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xf3e2f893dec3f126, -529, -140),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xb5b5ada8aaff80b8, -502, -132),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x87625f056c7c4a8b, -475, -124),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xc9bcff6034c13053, -449, -116),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x964e858c91ba2655, -422, -108),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xdff9772470297ebd, -396, -100),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xa6dfbd9fb8e5b88f, -369, -92),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xf8a95fcf88747d94, -343, -84),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xb94470938fa89bcf, -316, -76),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x8a08f0f8bf0f156b, -289, -68),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xcdb02555653131b6, -263, -60),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x993fe2c6d07b7fac, -236, -52),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xe45c10c42a2b3b06, -210, -44),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xaa242499697392d3, -183, -36),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xfd87b5f28300ca0e, -157, -28),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xbce5086492111aeb, -130, -20),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x8cbccc096f5088cc, -103, -12),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xd1b71758e219652c, -77, -4),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x9c40000000000000, -50, 4),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xe8d4a51000000000, -24, 12),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xad78ebc5ac620000, 3, 20),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x813f3978f8940984, 30, 28),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xc097ce7bc90715b3, 56, 36),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x8f7e32ce7bea5c70, 83, 44),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xd5d238a4abe98068, 109, 52),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x9f4f2726179a2245, 136, 60),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xed63a231d4c4fb27, 162, 68),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xb0de65388cc8ada8, 189, 76),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x83c7088e1aab65db, 216, 84),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xc45d1df942711d9a, 242, 92),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x924d692ca61be758, 269, 100),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xda01ee641a708dea, 295, 108),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xa26da3999aef774a, 322, 116),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xf209787bb47d6b85, 348, 124),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xb454e4a179dd1877, 375, 132),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x865b86925b9bc5c2, 402, 140),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xc83553c5c8965d3d, 428, 148),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x952ab45cfa97a0b3, 455, 156),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xde469fbd99a05fe3, 481, 164),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xa59bc234db398c25, 508, 172),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xf6c69a72a3989f5c, 534, 180),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xb7dcbf5354e9bece, 561, 188),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x88fcf317f22241e2, 588, 196),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xcc20ce9bd35c78a5, 614, 204),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x98165af37b2153df, 641, 212),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xe2a0b5dc971f303a, 667, 220),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xa8d9d1535ce3b396, 694, 228),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xfb9b7cd9a4a7443c, 720, 236),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xbb764c4ca7a44410, 747, 244),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x8bab8eefb6409c1a, 774, 252),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xd01fef10a657842c, 800, 260),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x9b10a4e5e9913129, 827, 268),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xe7109bfba19c0c9d, 853, 276),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xac2820d9623bf429, 880, 284),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x80444b5e7aa7cf85, 907, 292),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xbf21e44003acdd2d, 933, 300),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x8e679c2f5e44ff8f, 960, 308),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xd433179d9c8cb841, 986, 316),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0x9e19db92b4e31ba9, 1013, 324),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xeb96bf6ebadf77d9, 1039, 332),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  Float(0xaf87023b9bf0ee6b, 1066, 340)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const CachedPowersLength = length(CachedPowers)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const CachedPowersOffset = 348  # -1 * the first decimal_exponent.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const D_1_LOG2_10 = 0.30102999566398114  #  1 / lg(10)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Difference between the decimal exponents in the table above.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DecimalExponentDistance = 8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const MinDecimalExponent = -348
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const MaxDecimalExponent = 340
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-binexp_cache-253"></a>
+              1 (2.38%) samples spent in binexp_cache<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              fastshortest
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#Lfastshortest-jl-253e248589e118f4dde7-line.html-110">line 110</a><br />
+            </div>
+            <span class="code">function binexp_cache(min_exponent,max_exponent)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-254"></a>254</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-53">+</a><br />
+            </div>
+            <span class="code">    k = ceil(Integer,(min_exponent+63)*D_1_LOG2_10)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    index = div(CachedPowersOffset+k-1,DecimalExponentDistance) + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cp = CachedPowers[index+1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return cp
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lfloat-jl-2e7d768064d970d2b754-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/gcutils-jl-226c838c61f0891410cd-line.html b/profiling/statprof/gcutils-jl-226c838c61f0891410cd-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..2e854aa4019f5060029e32442311db64a4ec3814
--- /dev/null
+++ b/profiling/statprof/gcutils-jl-226c838c61f0891410cd-line.html
@@ -0,0 +1,967 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./gcutils.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(w::WeakRef, v::WeakRef) = isequal(w.value, v.value)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(w::WeakRef, v) = isequal(w.value, v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(w, v::WeakRef) = isequal(w, v.value)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finalizer(f, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Register a function `f(x)` to be called when there are no program-accessible references to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`x`, and return `x`. The type of `x` must be a `mutable struct`, otherwise the behavior of
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">this function is unpredictable.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function finalizer(@nospecialize(f), @nospecialize(o))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isimmutable(o)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;objects of type &quot;, typeof(o), &quot; cannot be finalized&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_gc_add_finalizer_th, Cvoid, (Ptr{Cvoid}, Any, Any),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">          Core.getptls(), o, f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return o
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function finalizer(f::Ptr{Cvoid}, o::T) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isimmutable(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;objects of type &quot;, T, &quot; cannot be finalized&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_gc_add_ptr_finalizer, Cvoid, (Ptr{Cvoid}, Any, Ptr{Cvoid}),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">          Core.getptls(), o, f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return o
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finalize(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Immediately run finalizers registered for object `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">finalize(@nospecialize(o)) = ccall(:jl_finalize_th, Cvoid, (Ptr{Cvoid}, Any,),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                   Core.getptls(), o)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.GC
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Module with garbage collection utilities.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">module GC
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GC.gc()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Perform garbage collection.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! warning
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Excessive use will likely lead to poor performance.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">gc(full::Bool=true) = ccall(:jl_gc_collect, Cvoid, (Int32,), full)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GC.enable(on::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Control whether garbage collection is enabled using a boolean argument (`true` for enabled,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`false` for disabled). Return previous GC state.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! warning
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Disabling garbage collection should be used only with caution, as it can cause memory
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    use to grow without bound.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">enable(on::Bool) = ccall(:jl_gc_enable, Int32, (Int32,), on) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GC.@preserve x1 x2 ... xn expr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Temporarily protect the given objects from being garbage collected, even if they would
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">otherwise be unreferenced.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The last argument is the expression during which the object(s) will be preserved.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The previous arguments are the objects to preserve.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro preserve(args...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    syms = args[1:end-1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in syms
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isa(x, Symbol) || error(&quot;Preserved variable must be a symbol&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s, r = gensym(), gensym()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    esc(quote
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        $s = $(Expr(:gc_preserve_begin, syms...))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-87"></a>87</td>
+          <td></td>
+          <td>5 (11.90%)</td>
+          <td>
+            <div class="callees">
+              2 (40.00%)
+              samples spent calling
+              <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-unsafe_write-401">unsafe_write</a><br />
+              3 (60.00%)
+              samples spent calling
+              <a href="stream-jl-9a841f596a6f3ffbe5b9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-stream-jl-unsafe_write-828">unsafe_write</a><br />
+            </div>
+            <span class="code">        $r = $(args[end])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        $(Expr(:gc_preserve_end, s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        $r
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgcutils-jl-226c838c61f0891410cd-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end # module GC
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/grisu-jl-fab39581eb10ad2e545a-line.html b/profiling/statprof/grisu-jl-fab39581eb10ad2e545a-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..2c2b392a2c0be748a2def564c9edaaa741dcd405
--- /dev/null
+++ b/profiling/statprof/grisu-jl-fab39581eb10ad2e545a-line.html
@@ -0,0 +1,2391 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">module Grisu
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">export print_shortest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">export DIGITS, DIGITSs, grisu
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const SHORTEST = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const FIXED = 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const PRECISION = 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;grisu/float.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;grisu/fastshortest.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;grisu/fastprecision.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;grisu/fastfixed.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;grisu/bignums.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;grisu/bignum.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DIGITS = Vector{UInt8}(undef, 309+17)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BIGNUMS = [Bignums.Bignum(),Bignums.Bignum(),Bignums.Bignum(),Bignums.Bignum()]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># thread-safe code should use a per-thread DIGITS buffer DIGITSs[Threads.threadid()]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DIGITSs = [DIGITS]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BIGNUMSs = [BIGNUMS]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function __init__()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Threads.resize_nthreads!(DIGITSs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Threads.resize_nthreads!(BIGNUMSs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (len, point, neg) = Grisu.grisu(v::AbstractFloat, mode, requested_digits,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                buffer=DIGITSs[Threads.threadid()], bignums=BIGNUMSs[Threads.threadid()])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Convert the number `v` to decimal using the Grisu algorithm.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`mode` can be one of:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - `Grisu.SHORTEST`: convert to the shortest decimal representation which can be &quot;round-tripped&quot; back to `v`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - `Grisu.FIXED`: round to `requested_digits` digits.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - `Grisu.PRECISION`: round to `requested_digits` significant digits.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The characters are written as bytes to `buffer`, with a terminating NUL byte, and `bignums` are used internally as part of the correction step.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The returned tuple contains:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - `len`: the number of digits written to `buffer` (excluding NUL)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - `point`: the location of the radix point relative to the start of the array (e.g. if
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">   `point == 3`, then the radix point should be inserted between the 3rd and 4th
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">   digit). Note that this can be negative (for very small values), or greater than `len`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">   (for very large values).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - `neg`: the signbit of `v` (see [`signbit`](@ref)).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-grisu-52"></a>
+              12 (28.57%) samples spent in grisu<br />
+              0 (ex.),
+              12 (100.00%) (incl.)
+              when called from
+              _show
+              <a href="grisu-jl-fab39581eb10ad2e545a-line.html#Lgrisu-jl-fab39581eb10ad2e545a-line.html-97">line 97</a><br />
+              1 (100.00%) (ex.),
+              12 (100.00%) (incl.)
+              when called from
+              grisu
+              <a href="grisu-jl-fab39581eb10ad2e545a-line.html#Lgrisu-jl-fab39581eb10ad2e545a-line.html-53">line 53</a><br />
+            </div>
+            <span class="code">function grisu(v::AbstractFloat,mode,requested_digits,buffer=DIGITSs[Threads.threadid()],bignums=BIGNUMSs[Threads.threadid()])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-53"></a>53</td>
+          <td></td>
+          <td>12 (28.57%)</td>
+          <td>
+            <div class="callees">
+              12 (100.00%)
+              samples spent calling
+              <a href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-grisu-52">grisu</a><br />
+            </div>
+            <span class="code">    if signbit(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        neg = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        v = -v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        neg = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if mode == PRECISION &amp;&amp; requested_digits == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        buffer[1] = 0x00
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        len = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return 0, 0, neg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if v == 0.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        buffer[1] = 0x30
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        buffer[2] = 0x00
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        len = point = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return len, point, neg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if mode == SHORTEST
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-71"></a>71</td>
+          <td></td>
+          <td>11 (26.19%)</td>
+          <td>
+            <div class="callees">
+              11 (100.00%)
+              samples spent calling
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-fastshortest-105">fastshortest</a><br />
+            </div>
+            <span class="code">        status,len,point = fastshortest(v,buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif mode == FIXED
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        status,len,point = fastfixedtoa(v,0,requested_digits,buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif mode == PRECISION
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        status,len,point = fastprecision(v,requested_digits,buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    status &amp;&amp; return len-1, point, neg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    status, len, point = bignumdtoa(v,mode,requested_digits,buffer,bignums)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return len-1, point, neg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">nanstr(x::AbstractFloat) = &quot;NaN&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">nanstr(x::Float32) = &quot;NaN32&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">nanstr(x::Float16) = &quot;NaN16&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">infstr(x::AbstractFloat) = &quot;Inf&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">infstr(x::Float32) = &quot;Inf32&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">infstr(x::Float16) = &quot;Inf16&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-_show-89"></a>
+              14 (33.33%) samples spent in _show<br />
+              0 (ex.),
+              14 (100.00%) (incl.)
+              when called from
+              show
+              <a href="grisu-jl-fab39581eb10ad2e545a-line.html#Lgrisu-jl-fab39581eb10ad2e545a-line.html-151">line 151</a><br />
+            </div>
+            <span class="code">function _show(io::IO, x::AbstractFloat, mode, n::Int, typed, compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isnan(x) &amp;&amp; return print(io, typed ? nanstr(x) : &quot;NaN&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isinf(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        signbit(x) &amp;&amp; print(io,&#39;-&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, typed ? infstr(x) : &quot;Inf&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typed &amp;&amp; isa(x,Float16) &amp;&amp; print(io, &quot;Float16(&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-97"></a>97</td>
+          <td></td>
+          <td>12 (28.57%)</td>
+          <td>
+            <div class="callees">
+              12 (100.00%)
+              samples spent calling
+              <a href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-grisu-52">grisu</a><br />
+            </div>
+            <span class="code">    (len,pt,neg),buffer = grisu(x,mode,n),DIGITSs[Threads.threadid()]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pdigits = pointer(buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if mode == PRECISION
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while len &gt; 1 &amp;&amp; buffer[len] == 0x30
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            len -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    neg &amp;&amp; print(io,&#39;-&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    exp_form = pt &lt;= -4 || pt &gt; 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    exp_form = exp_form || (pt &gt;= len &amp;&amp; abs(mod(x + 0.05, 10^(pt - len)) - 0.05) &gt; 0.05) # see issue #6608
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if exp_form # .00001 to 100000.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # =&gt; #.#######e###
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # assumes ASCII/UTF8 encoding of digits is okay for out:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_write(io, pdigits, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, &#39;.&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if len &gt; 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            unsafe_write(io, pdigits+1, len-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, &#39;0&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, (typed &amp;&amp; isa(x,Float32)) ? &#39;f&#39; : &#39;e&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, string(pt - 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        typed &amp;&amp; isa(x,Float16) &amp;&amp; print(io, &quot;)&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif pt &lt;= 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # =&gt; 0.00########
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-123"></a>123</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-166">print</a><br />
+            </div>
+            <span class="code">        print(io, &quot;0.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while pt &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, &#39;0&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            pt += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-128"></a>128</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="io-jl-7061b86fd468f75a7694-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-io-jl-unsafe_write-509">unsafe_write</a><br />
+            </div>
+            <span class="code">        unsafe_write(io, pdigits, len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif pt &gt;= len
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # =&gt; ########00.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_write(io, pdigits, len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while pt &gt; len
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, &#39;0&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            len += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, &quot;.0&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else # =&gt; ####.####
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_write(io, pdigits, pt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, &#39;.&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_write(io, pdigits+pt, len-pt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typed &amp;&amp; !compact &amp;&amp; isa(x,Float32) &amp;&amp; print(io, &quot;f0&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typed &amp;&amp; isa(x,Float16) &amp;&amp; print(io, &quot;)&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function Base.show(io::IO, x::Union{Float64,Float32})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if get(io, :compact, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _show(io, x, PRECISION, 6, x isa Float64, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-151"></a>151</td>
+          <td></td>
+          <td>14 (33.33%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-show-151"></a>
+              14 (33.33%) samples spent in show<br />
+              0 (ex.),
+              14 (100.00%) (incl.)
+              when called from
+              print
+              <a href="io-jl-f839edf29063078eece4-line.html#Lio-jl-f839edf29063078eece4-line.html-31">line 31</a><br />
+            </div>
+            <div class="callees">
+              14 (100.00%)
+              samples spent calling
+              <a href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-_show-89">_show</a><br />
+            </div>
+            <span class="code">        _show(io, x, SHORTEST, 0, get(io, :typeinfo, Any) !== typeof(x), false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function Base.show(io::IO, x::Float16)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    hastypeinfo = Float16 === get(io, :typeinfo, Any)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # if hastypeinfo, the printing would be more compact using `SHORTEST`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # while still retaining all the information
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # BUT: we want to print all digits in `show`, not in display, so we rely
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # on the :compact property to make the decision
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # (cf. https://github.com/JuliaLang/julia/pull/24651#issuecomment-345535687)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if get(io, :compact, false) &amp;&amp; !hastypeinfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _show(io, x, PRECISION, 5, false, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _show(io, x, SHORTEST, 0, !hastypeinfo, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Base.print(io::IO, x::Float32) = _show(io, x, SHORTEST, 0, false, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Base.print(io::IO, x::Float16) = _show(io, x, SHORTEST, 0, false, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># normal:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#   0 &lt; pt &lt; len        ####.####           len+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#   pt &lt;= 0             0.000########       len-pt+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#   len &lt;= pt (dot)     ########000.        pt+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#   len &lt;= pt (no dot)  ########000         pt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># exponential:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#   pt &lt;= 0             ########e-###       len+k+2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#   0 &lt; pt              ########e###        len+k+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _print_shortest(io::IO, x::AbstractFloat, dot::Bool, mode, n::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isnan(x) &amp;&amp; return print(io, &quot;NaN&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x &lt; 0 &amp;&amp; print(io,&#39;-&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isinf(x) &amp;&amp; return print(io, &quot;Inf&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (len,pt,neg),buffer = grisu(x,mode,n),DIGITSs[Threads.threadid()]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pdigits = pointer(buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    e = pt-len
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    k = -9&lt;=e&lt;=9 ? 1 : 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if -pt &gt; k+1 || e+dot &gt; k+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # =&gt; ########e###
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_write(io, pdigits+0, len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, &#39;e&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, string(e))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif pt &lt;= 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # =&gt; 0.000########
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, &quot;0.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while pt &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, &#39;0&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            pt += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_write(io, pdigits+0, len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif e &gt;= dot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # =&gt; ########000.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_write(io, pdigits+0, len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while e &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, &#39;0&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            e -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if dot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, &#39;.&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else # =&gt; ####.####
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_write(io, pdigits+0, pt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, &#39;.&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_write(io, pdigits+pt, len-pt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print_shortest(io::IO, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Print the shortest possible representation, with the minimum number of consecutive non-zero
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">digits, of number `x`, ensuring that it would parse to the exact same number.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print_shortest(io::IO, x::AbstractFloat, dot::Bool) = _print_shortest(io, x, dot, SHORTEST, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print_shortest(io::IO, x::Union{AbstractFloat,Integer}) = print_shortest(io, float(x), false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lgrisu-jl-fab39581eb10ad2e545a-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end # module
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/index.html b/profiling/statprof/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..11676677ce56b41d5b5a60959d43e22e15d8a96d
--- /dev/null
+++ b/profiling/statprof/index.html
@@ -0,0 +1,317 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+    <title>StatProfilerHTML.jl: main report</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <object data="clickable_stacks_by_time.svg" width="90%" type="image/svg+xml" style="display: block" id="zoomable_flamegraph">
+        SVG not supported
+      </object>
+      <object data="zoomable_stacks_by_time.svg" width="90%" type="image/svg+xml" style="display: none" id="clickable_flamegraph">
+        SVG not supported
+      </object>
+      <div><a href="#" onclick="switch_flamegraph()">Switch flamegraph</a></div>
+      <br /><br />
+      <table>
+        <caption>Subroutines, sorted by exclusive sample count</caption>
+        <tr>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Subroutine</th>
+        </tr>
+
+        <tr>
+          <td>6 (14.29%)</td>
+          <td>6 (14.29%)</td>
+          <td>
+            <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-StringVector-71">StringVector</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>5 (11.90%)</td>
+          <td>37 (88.10%)</td>
+          <td>
+            <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print_to_string-111">print_to_string</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>5 (11.90%)</td>
+          <td>5 (11.90%)</td>
+          <td>
+            <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_string_n-60">_string_n</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>3 (7.14%)</td>
+          <td>3 (7.14%)</td>
+          <td>
+            <a href="libuv-jl-530c66ad95b5a57763e9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-libuv-jl-process_events-98">process_events</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>2 (4.76%)</td>
+          <td>2 (4.76%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-53">+</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>2 (4.76%)</td>
+          <td>2 (4.76%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-div">div</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>15 (35.71%)</td>
+          <td>
+            <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-28">print</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>12 (28.57%)</td>
+          <td>
+            <a href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-grisu-52">grisu</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>12 (28.57%)</td>
+          <td>
+            <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-IOBuffer-302-111">#IOBuffer#302</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>11 (26.19%)</td>
+          <td>
+            <a href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-fastshortest-105">fastshortest</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>8 (19.05%)</td>
+          <td>
+            <a href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-digitgen-64">digitgen</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>3 (7.14%)</td>
+          <td>
+            <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-unsafe_write-401">unsafe_write</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <a href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-roundweed-34">roundweed</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <a href="bignums-jl-e031ee9c77e42cd3aafb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-bignums-jl-dividemodulointbignum-420">dividemodulointbignum!</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-54">*</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <a href="array-jl-e331915c4fb281d94775-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-_deleteend-823">_deleteend!</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <a href="bignums-jl-e031ee9c77e42cd3aafb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-bignums-jl-compare-474">compare</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-ensureroom-293">ensureroom</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-442">&gt;&gt;</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-lastindex-110">lastindex</a>
+          </td>
+        </tr>
+      </table>
+      <a href="subs.html">All subroutines</a>
+      <br /><br />
+      <table>
+        <caption>Files, sorted by exclusive sample count</caption>
+        <tr>
+          <th>Exclusive</th>
+          <th>Report</th>
+        </tr>
+
+        <tr>
+          <td>14 (33.33%)</td>
+          <td><a href="string-jl-d20bff96b5e2c46b112e-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>8 (19.05%)</td>
+          <td><a href="int-jl-af434f8f2b4fe43f173a-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>6 (14.29%)</td>
+          <td><a href="io-jl-f839edf29063078eece4-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>3 (7.14%)</td>
+          <td><a href="fastshortest-jl-253e248589e118f4dde7-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>3 (7.14%)</td>
+          <td><a href="libuv-jl-530c66ad95b5a57763e9-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./libuv.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>3 (7.14%)</td>
+          <td><a href="iobuffer-jl-0cfbb4403b3061764f48-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>2 (4.76%)</td>
+          <td><a href="bignums-jl-e031ee9c77e42cd3aafb-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/bignums.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td><a href="grisu-jl-fab39581eb10ad2e545a-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td><a href="promotion-jl-fe649671ed190521a171-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./promotion.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>1 (2.38%)</td>
+          <td><a href="array-jl-e331915c4fb281d94775-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./array.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>0</td>
+          <td><a href="io-jl-7061b86fd468f75a7694-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./io.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>0</td>
+          <td><a href="test-jl-6f8538a27ff3da5824d9-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>0</td>
+          <td><a href="operators-jl-714ade2c8745dd55a410-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>0</td>
+          <td><a href="client-jl-74fbd6bc37c8328be022-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>0</td>
+          <td><a href="float-jl-2e7d768064d970d2b754-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>0</td>
+          <td><a href="boot-jl-1c95b3ccecba8d7f1acb-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>0</td>
+          <td><a href="loading-jl-267f08df202e5203e249-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>0</td>
+          <td><a href="gcutils-jl-226c838c61f0891410cd-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./gcutils.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>0</td>
+          <td><a href="stream-jl-9a841f596a6f3ffbe5b9-line.html">/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./stream.jl</a></td>
+        </tr>
+
+        <tr>
+          <td>0</td>
+          <td><a href="Profile-jl-e79abb67faac09cf5e9b-line.html">/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl</a></td>
+        </tr>
+      </table>
+      <a href="files.html">All files</a>
+    </div>
+    <script>
+function switch_flamegraph() {
+    var clickable = document.getElementById("clickable_flamegraph");
+    var zoomable = document.getElementById("zoomable_flamegraph");
+
+    var t = clickable.style.display;
+    clickable.style.display = zoomable.style.display;
+    zoomable.style.display = t;
+
+    return 0;
+}
+    </script>
+  </body>
+</html>
diff --git a/profiling/statprof/int-jl-af434f8f2b4fe43f173a-line.html b/profiling/statprof/int-jl-af434f8f2b4fe43f173a-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..d9622225f930a28e4b9077b9918407d9f9246a66
--- /dev/null
+++ b/profiling/statprof/int-jl-af434f8f2b4fe43f173a-line.html
@@ -0,0 +1,8171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## integer arithmetic ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># The tuples and types that do not include 128 bit sizes are necessary to handle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># certain issues on 32-bit machines, and also to simplify promotion rules, as
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># they are also used elsewhere where Int128/UInt128 support is separated out,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># such as in hashing2.jl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitSigned32_types      = (Int8, Int16, Int32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitUnsigned32_types    = (UInt8, UInt16, UInt32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitInteger32_types     = (BitSigned32_types..., BitUnsigned32_types...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitSigned64_types      = (BitSigned32_types..., Int64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitUnsigned64_types    = (BitUnsigned32_types..., UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitInteger64_types     = (BitSigned64_types..., BitUnsigned64_types...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitSigned_types        = (BitSigned64_types..., Int128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitUnsigned_types      = (BitUnsigned64_types..., UInt128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitInteger_types       = (BitSigned_types..., BitUnsigned_types...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitSignedSmall_types   = Int === Int64 ? ( Int8,  Int16,  Int32) : ( Int8,  Int16)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitUnsignedSmall_types = Int === Int64 ? (UInt8, UInt16, UInt32) : (UInt8, UInt16)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitIntegerSmall_types  = (BitSignedSmall_types..., BitUnsignedSmall_types...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitSigned32      = Union{BitSigned32_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitUnsigned32    = Union{BitUnsigned32_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitInteger32     = Union{BitInteger32_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitSigned64      = Union{BitSigned64_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitUnsigned64    = Union{BitUnsigned64_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitInteger64     = Union{BitInteger64_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitSigned        = Union{BitSigned_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitUnsigned      = Union{BitUnsigned_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitInteger       = Union{BitInteger_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitSignedSmall   = Union{BitSignedSmall_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitUnsignedSmall = Union{BitUnsignedSmall_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitIntegerSmall  = Union{BitIntegerSmall_types...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitSigned64T     = Union{Type{Int8}, Type{Int16}, Type{Int32}, Type{Int64}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitUnsigned64T   = Union{Type{UInt8}, Type{UInt16}, Type{UInt32}, Type{UInt64}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const BitIntegerType = Union{map(T-&gt;Type{T}, BitInteger_types)...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## integer comparisons ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-49"></a>49</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-49"></a>
+              1 (2.38%) samples spent in &lt;<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              &gt;
+              <a href="operators-jl-714ade2c8745dd55a410-line.html#Loperators-jl-714ade2c8745dd55a410-line.html-286">line 286</a><br />
+            </div>
+            <span class="code">(&lt;)(x::T, y::T) where {T&lt;:BitSigned}  = slt_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(-)(x::BitInteger)                    = neg_int(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(-)(x::T, y::T) where {T&lt;:BitInteger} = sub_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-53"></a>53</td>
+          <td>2 (4.76%)</td>
+          <td>2 (4.76%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-53"></a>
+              2 (4.76%) samples spent in +<br />
+              1 (50.00%) (ex.),
+              1 (50.00%) (incl.)
+              when called from
+              +
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#Lint-jl-af434f8f2b4fe43f173a-line.html-803">line 803</a><br />
+              1 (50.00%) (ex.),
+              1 (50.00%) (incl.)
+              when called from
+              binexp_cache
+              <a href="float-jl-2e7d768064d970d2b754-line.html#Lfloat-jl-2e7d768064d970d2b754-line.html-254">line 254</a><br />
+            </div>
+            <span class="code">(+)(x::T, y::T) where {T&lt;:BitInteger} = add_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-54"></a>54</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-54"></a>
+              1 (2.38%) samples spent in *<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              digitgen
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#Lfastshortest-jl-253e248589e118f4dde7-line.html-98">line 98</a><br />
+            </div>
+            <span class="code">(*)(x::T, y::T) where {T&lt;:BitInteger} = mul_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">inv(x::Integer) = float(one(x)) / float(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(/)(x::T, y::T) where {T&lt;:Integer} = float(x) / float(y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># skip promotion for system integer types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(/)(x::BitInteger, y::BitInteger) = float(x) / float(y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isodd(x::Integer) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `true` if `x` is odd (that is, not divisible by 2), and `false` otherwise.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isodd(9)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isodd(10)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isodd(n::Integer) = rem(n, 2) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    iseven(x::Integer) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `true` is `x` is even (that is, divisible by 2), and `false` otherwise.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; iseven(9)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; iseven(10)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iseven(n::Integer) = !isodd(n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">signbit(x::Integer) = x &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">signbit(x::Unsigned) = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flipsign(x::T, y::T) where {T&lt;:BitSigned} = flipsign_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flipsign(x::BitSigned, y::BitSigned) = flipsign_int(promote(x, y)...) % typeof(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flipsign(x::Signed, y::Float16) = flipsign(x, bitcast(Int16, y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flipsign(x::Signed, y::Float32) = flipsign(x, bitcast(Int32, y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flipsign(x::Signed, y::Float64) = flipsign(x, bitcast(Int64, y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flipsign(x::Signed, y::Real)    = flipsign(x, -oftype(x, signbit(y)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copysign(x::Signed, y::Signed)  = flipsign(x, x ⊻ y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copysign(x::Signed, y::Float16) = copysign(x, bitcast(Int16, y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copysign(x::Signed, y::Float32) = copysign(x, bitcast(Int32, y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copysign(x::Signed, y::Float64) = copysign(x, bitcast(Int64, y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copysign(x::Signed, y::Real)    = copysign(x, -oftype(x, signbit(y)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    abs(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The absolute value of `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">When `abs` is applied to signed integers, overflow may occur,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">resulting in the return of a negative value. This overflow occurs only
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">when `abs` is applied to the minimum representable value of a signed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">integer. That is, when `x == typemin(typeof(x))`, `abs(x) == x &lt; 0`,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">not `-x` as might be expected.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; abs(-3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; abs(1 + im)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1.4142135623730951
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; abs(typemin(Int64))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-9223372036854775808
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abs end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abs(x::Unsigned) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abs(x::Signed) = flipsign(x,x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">~(n::Integer) = -n-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsigned(x::BitSigned) = reinterpret(typeof(convert(Unsigned, zero(x))), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsigned(x::Bool) = convert(Unsigned, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsigned(x) -&gt; Unsigned
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Convert a number to an unsigned integer. If the argument is signed, it is reinterpreted as
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsigned without checking for negative values.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; unsigned(-2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0xfffffffffffffffe
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; unsigned(2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0x0000000000000002
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; signed(unsigned(-2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsigned(x) = convert(Unsigned, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">signed(x::Unsigned) = reinterpret(typeof(convert(Signed, zero(x))), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    signed(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Convert a number to a signed integer. If the argument is unsigned, it is reinterpreted as
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">signed without checking for overflow.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">signed(x) = convert(Signed, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">div(x::BitSigned, y::Unsigned) = flipsign(signed(div(unsigned(abs(x)), y)), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">div(x::Unsigned, y::BitSigned) = unsigned(flipsign(signed(div(x, unsigned(abs(y)))), y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rem(x::BitSigned, y::Unsigned) = flipsign(signed(rem(unsigned(abs(x)), y)), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rem(x::Unsigned, y::BitSigned) = rem(x, unsigned(abs(y)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fld(x::Signed, y::Unsigned) = div(x, y) - (signbit(x) &amp; (rem(x, y) != 0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fld(x::Unsigned, y::Signed) = div(x, y) - (signbit(y) &amp; (rem(x, y) != 0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mod(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rem(x, y, RoundDown)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The reduction of `x` modulo `y`, or equivalently, the remainder of `x` after floored
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">division by `y`, i.e.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```julia
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">x - y*fld(x,y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if computed without intermediate rounding.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The result will have the same sign as `y`, and magnitude less than `abs(y)` (with some
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">exceptions, see note below).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! note
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    When used with floating point values, the exact result may not be representable by the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    type, and so rounding error may occur. In particular, if the exact result is very
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    close to `y`, then it may be rounded to `y`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; mod(8, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; mod(9, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; mod(8.9, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2.9000000000000004
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; mod(eps(), 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2.220446049250313e-16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; mod(-eps(), 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function mod(x::T, y::T) where T&lt;:Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y == -1 &amp;&amp; return T(0)   # avoid potential overflow in fld
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return x - fld(x, y) * y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mod(x::BitSigned, y::Unsigned) = rem(y + unsigned(rem(x, y)), y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mod(x::Unsigned, y::Signed) = rem(y + signed(rem(x, y)), y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mod(x::T, y::T) where {T&lt;:Unsigned} = rem(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">cld(x::Signed, y::Unsigned) = div(x, y) + (!signbit(x) &amp; (rem(x, y) != 0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">cld(x::Unsigned, y::Signed) = div(x, y) + (!signbit(y) &amp; (rem(x, y) != 0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Don&#39;t promote integers for div/rem/mod since there is no danger of overflow,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># while there is a substantial performance penalty to 64-bit promotion.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">div(x::T, y::T) where {T&lt;:BitSigned64} = checked_sdiv_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rem(x::T, y::T) where {T&lt;:BitSigned64} = checked_srem_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">div(x::T, y::T) where {T&lt;:BitUnsigned64} = checked_udiv_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rem(x::T, y::T) where {T&lt;:BitUnsigned64} = checked_urem_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># fld(x,y) == div(x,y) - ((x&gt;=0) != (y&gt;=0) &amp;&amp; rem(x,y) != 0 ? 1 : 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fld(x::T, y::T) where {T&lt;:Unsigned} = div(x,y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fld(x::T, y::T) where T&lt;:Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    d = div(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return d - (signbit(x ⊻ y) &amp; (d * y != x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># cld(x,y) = div(x,y) + ((x&gt;0) == (y&gt;0) &amp;&amp; rem(x,y) != 0 ? 1 : 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function cld(x::T, y::T) where T&lt;:Unsigned
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    d = div(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return d + (d * y != x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function cld(x::T, y::T) where T&lt;:Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    d = div(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return d + (((x &gt; 0) == (y &gt; 0)) &amp; (d * y != x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## integer bitwise operations ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ~(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Bitwise not.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; ~4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; ~10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-11
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; ~true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(~)(x::BitInteger)             = not_int(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &amp;(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Bitwise and. Implements [three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">returning [`missing`](@ref) if one operand is `missing` and the other is `true`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 4 &amp; 10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 4 &amp; 12
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; true &amp; missing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">missing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; false &amp; missing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(&amp;)(x::T, y::T) where {T&lt;:BitInteger} = and_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    |(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Bitwise or. Implements [three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">returning [`missing`](@ref) if one operand is `missing` and the other is `false`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 4 | 10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">14
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 4 | 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; true | missing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; false | missing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">missing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(|)(x::T, y::T) where {T&lt;:BitInteger} = or_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">xor(x::T, y::T) where {T&lt;:BitInteger} = xor_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bswap(n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Reverse the byte order of `n`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a = bswap(0x10203040)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0x40302010
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; bswap(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0x10203040
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; string(1, base = 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;1&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; string(bswap(1), base = 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;100000000000000000000000000000000000000000000000000000000&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">bswap(x::Union{Int8, UInt8}) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">bswap(x::Union{Int16, UInt16, Int32, UInt32, Int64, UInt64, Int128, UInt128}) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bswap_int(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    count_ones(x::Integer) -&gt; Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Number of ones in the binary representation of `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; count_ones(7)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">count_ones(x::BitInteger) = Int(ctpop_int(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    leading_zeros(x::Integer) -&gt; Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Number of zeros leading the binary representation of `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; leading_zeros(Int32(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">31
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">leading_zeros(x::BitInteger) = Int(ctlz_int(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    trailing_zeros(x::Integer) -&gt; Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Number of zeros trailing the binary representation of `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; trailing_zeros(2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">trailing_zeros(x::BitInteger) = Int(cttz_int(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    count_zeros(x::Integer) -&gt; Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Number of zeros in the binary representation of `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; count_zeros(Int32(2 ^ 16 - 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">count_zeros(x::Integer) = count_ones(~x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    leading_ones(x::Integer) -&gt; Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Number of ones leading the binary representation of `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; leading_ones(UInt32(2 ^ 32 - 2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">31
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">leading_ones(x::Integer) = leading_zeros(~x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    trailing_ones(x::Integer) -&gt; Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Number of ones trailing the binary representation of `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; trailing_ones(3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">trailing_ones(x::Integer) = trailing_zeros(~x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## integer comparisons ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-427"></a>427</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-427"></a>
+              1 (2.38%) samples spent in &lt;<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              digitgen
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#Lfastshortest-jl-253e248589e118f4dde7-line.html-97">line 97</a><br />
+            </div>
+            <span class="code">(&lt; )(x::T, y::T) where {T&lt;:BitUnsigned} = ult_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(&lt;=)(x::T, y::T) where {T&lt;:BitSigned}   = sle_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(&lt;=)(x::T, y::T) where {T&lt;:BitUnsigned} = ule_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(x::BitSigned,   y::BitUnsigned) = (x &gt;= 0) &amp; (unsigned(x) == y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-432"></a>432</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-432"></a>
+              1 (2.38%) samples spent in ==<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              normalize
+              <a href="float-jl-2e7d768064d970d2b754-line.html#Lfloat-jl-2e7d768064d970d2b754-line.html-51">line 51</a><br />
+            </div>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="promotion-jl-fe649671ed190521a171-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-promotion-jl-425">==</a><br />
+            </div>
+            <span class="code">==(x::BitUnsigned, y::BitSigned  ) = (y &gt;= 0) &amp; (x == unsigned(y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;( x::BitSigned,   y::BitUnsigned) = (x &lt;  0) | (unsigned(x) &lt;  y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;( x::BitUnsigned, y::BitSigned  ) = (y &gt;= 0) &amp; (x &lt;  unsigned(y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;=(x::BitSigned,   y::BitUnsigned) = (x &lt;  0) | (unsigned(x) &lt;= y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;=(x::BitUnsigned, y::BitSigned  ) = (y &gt;= 0) &amp; (x &lt;= unsigned(y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## integer shifts ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># unsigned shift counts always shift in the same direction
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&gt;&gt;(x::BitSigned,   y::BitUnsigned) = ashr_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-442"></a>442</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-442"></a>
+              1 (2.38%) samples spent in &gt;&gt;<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              &gt;&gt;
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#Lint-jl-af434f8f2b4fe43f173a-line.html-448">line 448</a><br />
+            </div>
+            <span class="code">&gt;&gt;(x::BitUnsigned, y::BitUnsigned) = lshr_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;&lt;(x::BitInteger,  y::BitUnsigned) = shl_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&gt;&gt;&gt;(x::BitInteger, y::BitUnsigned) = lshr_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># signed shift counts can shift in either direction
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># note: this early during bootstrap, `&gt;=` is not yet available
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># note: we only define Int shift counts here; the generic case is handled later
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-448"></a>448</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-448"></a>
+              1 (2.38%) samples spent in &gt;&gt;<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              &gt;&gt;
+              <a href="operators-jl-714ade2c8745dd55a410-line.html#Loperators-jl-714ade2c8745dd55a410-line.html-603">line 603</a><br />
+            </div>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-442">&gt;&gt;</a><br />
+            </div>
+            <span class="code">&gt;&gt;(x::BitInteger, y::Int) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ifelse(0 &lt;= y, x &gt;&gt; unsigned(y), x &lt;&lt; unsigned(-y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;&lt;(x::BitInteger, y::Int) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ifelse(0 &lt;= y, x &lt;&lt; unsigned(y), x &gt;&gt; unsigned(-y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&gt;&gt;&gt;(x::BitInteger, y::Int) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ifelse(0 &lt;= y, x &gt;&gt;&gt; unsigned(y), x &lt;&lt; unsigned(-y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for to in BitInteger_types, from in (BitInteger_types..., Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !(to === from)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if to.size &lt; from.size
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @eval rem(x::($from), ::Type{$to}) = trunc_int($to, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif from === Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @eval rem(x::($from), ::Type{$to}) = convert($to, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif from.size &lt; to.size
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if from &lt;: Signed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                @eval rem(x::($from), ::Type{$to}) = sext_int($to, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                @eval rem(x::($from), ::Type{$to}) = convert($to, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @eval rem(x::($from), ::Type{$to}) = bitcast($to, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># @doc isn&#39;t available when running in Core at this point.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Tuple syntax for documentation two function signatures at the same time
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># doesn&#39;t work either at this point.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if nameof(@__MODULE__) === :Base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for fname in (:mod, :rem)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @eval @doc &quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rem(x::Integer, T::Type{&lt;:Integer}) -&gt; T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            mod(x::Integer, T::Type{&lt;:Integer}) -&gt; T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            %(x::Integer, T::Type{&lt;:Integer}) -&gt; T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        Find `y::T` such that `x` ≡ `y` (mod n), where n is the number of integers representable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        in `T`, and `y` is an integer in `[typemin(T),typemax(T)]`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        If `T` can represent any integer (e.g. `T == BigInt`), then this operation corresponds to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a conversion to `T`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        julia&gt; 129 % Int8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        -127
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        &quot;&quot;&quot; $fname(x::Integer, T::Type{&lt;:Integer})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rem(x::T, ::Type{T}) where {T&lt;:Integer} = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rem(x::Integer, T::Type{&lt;:Integer}) = convert(T, x)  # `x % T` falls back to `convert`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rem(x::Integer, ::Type{Bool}) = ((x &amp; 1) != 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mod(x::Integer, ::Type{T}) where {T&lt;:Integer} = rem(x, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_trunc(::Type{T}, x::Integer) where {T&lt;:Integer} = rem(x, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    trunc([T,] x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    trunc(x; digits::Integer= [, base = 10])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    trunc(x; sigdigits::Integer= [, base = 10])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`trunc(x)` returns the nearest integral value of the same type as `x` whose absolute value
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is less than or equal to `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`trunc(T, x)` converts the result to type `T`, throwing an `InexactError` if the value is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">not representable.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`digits`, `sigdigits` and `base` work as for [`round`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function trunc end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    floor([T,] x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    floor(x; digits::Integer= [, base = 10])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    floor(x; sigdigits::Integer= [, base = 10])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`floor(x)` returns the nearest integral value of the same type as `x` that is less than or
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">equal to `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`floor(T, x)` converts the result to type `T`, throwing an `InexactError` if the value is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">not representable.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`digits`, `sigdigits` and `base` work as for [`round`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function floor end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ceil([T,] x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ceil(x; digits::Integer= [, base = 10])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ceil(x; sigdigits::Integer= [, base = 10])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`ceil(x)` returns the nearest integral value of the same type as `x` that is greater than or
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">equal to `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`ceil(T, x)` converts the result to type `T`, throwing an `InexactError` if the value is not
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">representable.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`digits`, `sigdigits` and `base` work as for [`round`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function ceil end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">round(::Type{T}, x::Integer) where {T&lt;:Integer} = convert(T, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">trunc(::Type{T}, x::Integer) where {T&lt;:Integer} = convert(T, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">floor(::Type{T}, x::Integer) where {T&lt;:Integer} = convert(T, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> ceil(::Type{T}, x::Integer) where {T&lt;:Integer} = convert(T, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## integer construction ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @int128_str str
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @int128_str(str)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`@int128_str` parses a string into a Int128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Throws an `ArgumentError` if the string is not a valid integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro int128_str(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return parse(Int128, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @uint128_str str
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @uint128_str(str)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`@uint128_str` parses a string into a UInt128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Throws an `ArgumentError` if the string is not a valid integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro uint128_str(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return parse(UInt128, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @big_str str
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @big_str(str)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Parse a string into a [`BigInt`](@ref) or [`BigFloat`](@ref),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and throw an `ArgumentError` if the string is not a valid number.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">For integers `_` is allowed in the string as a separator.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; big&quot;123_456&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">123456
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; big&quot;7891.5&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">7.8915e+03
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro big_str(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if &#39;_&#39; in s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # remove _ in s[2:end-1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bf = IOBuffer(maxsize=lastindex(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(bf, s[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for c in SubString(s, 2, lastindex(s)-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c != &#39;_&#39; &amp;&amp; print(bf, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-603"></a>603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(bf, s[end])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        seekstart(bf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n = tryparse(BigInt, String(take!(bf)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n === nothing || return n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n = tryparse(BigInt, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n === nothing || return n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n = tryparse(BigFloat, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-611"></a>611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n === nothing || return n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    message = &quot;invalid number format $s for BigInt or BigFloat&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return :(throw(ArgumentError($message)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## integer promotions ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># with different sizes, promote to larger type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{Int16}, ::Union{Type{Int8}, Type{UInt8}}) = Int16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{Int32}, ::Union{Type{Int16}, Type{Int8}, Type{UInt16}, Type{UInt8}}) = Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{Int64}, ::Union{Type{Int16}, Type{Int32}, Type{Int8}, Type{UInt16}, Type{UInt32}, Type{UInt8}}) = Int64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{Int128}, ::Union{Type{Int16}, Type{Int32}, Type{Int64}, Type{Int8}, Type{UInt16}, Type{UInt32}, Type{UInt64}, Type{UInt8}}) = Int128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{UInt16}, ::Union{Type{Int8}, Type{UInt8}}) = UInt16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{UInt32}, ::Union{Type{Int16}, Type{Int8}, Type{UInt16}, Type{UInt8}}) = UInt32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{UInt64}, ::Union{Type{Int16}, Type{Int32}, Type{Int8}, Type{UInt16}, Type{UInt32}, Type{UInt8}}) = UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{UInt128}, ::Union{Type{Int16}, Type{Int32}, Type{Int64}, Type{Int8}, Type{UInt16}, Type{UInt32}, Type{UInt64}, Type{UInt8}}) = UInt128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># with mixed signedness and same size, Unsigned wins
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{UInt8},   ::Type{Int8}  ) = UInt8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{UInt16},  ::Type{Int16} ) = UInt16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{UInt32},  ::Type{Int32} ) = UInt32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{UInt64},  ::Type{Int64} ) = UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{UInt128}, ::Type{Int128}) = UInt128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_default_type(::Type{Unsigned}) = UInt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_default_type(::Union{Type{Integer},Type{Signed}}) = Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## traits ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typemin(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The lowest value representable by the given (real) numeric DataType `T`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; typemin(Float16)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-648"></a>648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-Inf16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-649"></a>649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-650"></a>650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; typemin(Float32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-651"></a>651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-Inf32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-652"></a>652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-653"></a>653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-654"></a>654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function typemin end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-655"></a>655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-656"></a>656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-657"></a>657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typemax(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-658"></a>658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-659"></a>659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The highest value representable by the given (real) numeric `DataType`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-660"></a>660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-661"></a>661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-662"></a>662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-663"></a>663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; typemax(Int8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-664"></a>664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">127
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-665"></a>665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-666"></a>666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; typemax(UInt32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-667"></a>667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0xffffffff
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-668"></a>668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-669"></a>669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-670"></a>670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function typemax end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-671"></a>671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-672"></a>672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemin(::Type{Int8  }) = Int8(-128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-673"></a>673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemax(::Type{Int8  }) = Int8(127)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-674"></a>674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemin(::Type{UInt8 }) = UInt8(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-675"></a>675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemax(::Type{UInt8 }) = UInt8(255)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-676"></a>676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemin(::Type{Int16 }) = Int16(-32768)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-677"></a>677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemax(::Type{Int16 }) = Int16(32767)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-678"></a>678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemin(::Type{UInt16}) = UInt16(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-679"></a>679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemax(::Type{UInt16}) = UInt16(65535)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-680"></a>680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemin(::Type{Int32 }) = Int32(-2147483648)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-681"></a>681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemax(::Type{Int32 }) = Int32(2147483647)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-682"></a>682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemin(::Type{UInt32}) = UInt32(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-683"></a>683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemax(::Type{UInt32}) = UInt32(4294967295)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-684"></a>684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemin(::Type{Int64 }) = -9223372036854775808
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-685"></a>685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemax(::Type{Int64 }) = 9223372036854775807
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-686"></a>686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemin(::Type{UInt64}) = UInt64(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-687"></a>687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemax(::Type{UInt64}) = 0xffffffffffffffff
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-688"></a>688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval typemin(::Type{UInt128}) = $(convert(UInt128, 0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-689"></a>689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval typemax(::Type{UInt128}) = $(bitcast(UInt128, convert(Int128, -1)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-690"></a>690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval typemin(::Type{Int128} ) = $(convert(Int128, 1) &lt;&lt; 127)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-691"></a>691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval typemax(::Type{Int128} ) = $(bitcast(Int128, typemax(UInt128) &gt;&gt; 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-692"></a>692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-693"></a>693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-694"></a>694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widen(::Type{Int8}) = Int16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-695"></a>695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widen(::Type{Int16}) = Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-696"></a>696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widen(::Type{Int32}) = Int64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-697"></a>697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widen(::Type{Int64}) = Int128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-698"></a>698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widen(::Type{UInt8}) = UInt16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-699"></a>699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widen(::Type{UInt16}) = UInt32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-700"></a>700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widen(::Type{UInt32}) = UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-701"></a>701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widen(::Type{UInt64}) = UInt128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-702"></a>702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-703"></a>703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># a few special cases,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-704"></a>704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Int64*UInt64 =&gt; Int128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-705"></a>705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># |x|&lt;=2^(k-1), |y|&lt;=2^k-1   =&gt;   |x*y|&lt;=2^(2k-1)-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-706"></a>706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widemul(x::Signed,y::Unsigned) = widen(x) * signed(widen(y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-707"></a>707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widemul(x::Unsigned,y::Signed) = signed(widen(x)) * widen(y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-708"></a>708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># multplication by Bool doesn&#39;t require widening
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-709"></a>709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widemul(x::Bool,y::Bool) = x * y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-710"></a>710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widemul(x::Bool,y::Number) = x * y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-711"></a>711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widemul(x::Number,y::Bool) = x * y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-712"></a>712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-713"></a>713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-714"></a>714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## wide multiplication, Int128 multiply and divide ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-715"></a>715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-716"></a>716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Core.sizeof(Int) == 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-717"></a>717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function widemul(u::Int64, v::Int64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-718"></a>718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        local u0::UInt64, v0::UInt64, w0::UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-719"></a>719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        local u1::Int64, v1::Int64, w1::UInt64, w2::Int64, t::UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-720"></a>720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-721"></a>721</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        u0 = u &amp; 0xffffffff; u1 = u &gt;&gt; 32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-722"></a>722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        v0 = v &amp; 0xffffffff; v1 = v &gt;&gt; 32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-723"></a>723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        w0 = u0 * v0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-724"></a>724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = reinterpret(UInt64, u1) * v0 + (w0 &gt;&gt;&gt; 32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-725"></a>725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        w2 = reinterpret(Int64, t) &gt;&gt; 32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-726"></a>726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        w1 = u0 * reinterpret(UInt64, v1) + (t &amp; 0xffffffff)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-727"></a>727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        hi = u1 * v1 + w2 + (reinterpret(Int64, w1) &gt;&gt; 32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-728"></a>728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        lo = w0 &amp; 0xffffffff + (w1 &lt;&lt; 32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-729"></a>729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Int128(hi) &lt;&lt; 64 + Int128(lo)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-730"></a>730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-731"></a>731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-732"></a>732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function widemul(u::UInt64, v::UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-733"></a>733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        local u0::UInt64, v0::UInt64, w0::UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-734"></a>734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        local u1::UInt64, v1::UInt64, w1::UInt64, w2::UInt64, t::UInt64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-735"></a>735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-736"></a>736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        u0 = u &amp; 0xffffffff; u1 = u &gt;&gt;&gt; 32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-737"></a>737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        v0 = v &amp; 0xffffffff; v1 = v &gt;&gt;&gt; 32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-738"></a>738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        w0 = u0 * v0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-739"></a>739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = u1 * v0 + (w0 &gt;&gt;&gt; 32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-740"></a>740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        w2 = t &gt;&gt;&gt; 32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-741"></a>741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        w1 = u0 * v1 + (t &amp; 0xffffffff)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-742"></a>742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        hi = u1 * v1 + w2 + (w1 &gt;&gt;&gt; 32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-743"></a>743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        lo = w0 &amp; 0xffffffff + (w1 &lt;&lt; 32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-744"></a>744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return UInt128(hi) &lt;&lt; 64 + UInt128(lo)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-745"></a>745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-746"></a>746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-747"></a>747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function *(u::Int128, v::Int128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-748"></a>748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        u0 = u % UInt64; u1 = Int64(u &gt;&gt; 64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-749"></a>749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        v0 = v % UInt64; v1 = Int64(v &gt;&gt; 64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-750"></a>750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        lolo = widemul(u0, v0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-751"></a>751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        lohi = widemul(reinterpret(Int64, u0), v1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-752"></a>752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        hilo = widemul(u1, reinterpret(Int64, v0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-753"></a>753</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = reinterpret(UInt128, hilo) + (lolo &gt;&gt;&gt; 64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-754"></a>754</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        w1 = reinterpret(UInt128, lohi) + (t &amp; 0xffffffffffffffff)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-755"></a>755</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Int128(lolo &amp; 0xffffffffffffffff) + reinterpret(Int128, w1) &lt;&lt; 64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-756"></a>756</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-757"></a>757</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-758"></a>758</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function *(u::UInt128, v::UInt128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-759"></a>759</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        u0 = u % UInt64; u1 = UInt64(u&gt;&gt;&gt;64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-760"></a>760</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        v0 = v % UInt64; v1 = UInt64(v&gt;&gt;&gt;64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-761"></a>761</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        lolo = widemul(u0, v0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-762"></a>762</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        lohi = widemul(u0, v1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-763"></a>763</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        hilo = widemul(u1, v0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-764"></a>764</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = hilo + (lolo &gt;&gt;&gt; 64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-765"></a>765</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        w1 = lohi + (t &amp; 0xffffffffffffffff)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-766"></a>766</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return (lolo &amp; 0xffffffffffffffff) + UInt128(w1) &lt;&lt; 64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-767"></a>767</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-768"></a>768</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-769"></a>769</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function div(x::Int128, y::Int128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-770"></a>770</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (x == typemin(Int128)) &amp; (y == -1) &amp;&amp; throw(DivideError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-771"></a>771</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Int128(div(BigInt(x), BigInt(y)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-772"></a>772</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-773"></a>773</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function div(x::UInt128, y::UInt128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-774"></a>774</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return UInt128(div(BigInt(x), BigInt(y)))::UInt128
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-775"></a>775</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-776"></a>776</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-777"></a>777</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function rem(x::Int128, y::Int128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-778"></a>778</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Int128(rem(BigInt(x), BigInt(y)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-779"></a>779</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-780"></a>780</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function rem(x::UInt128, y::UInt128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-781"></a>781</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return UInt128(rem(BigInt(x), BigInt(y)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-782"></a>782</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-783"></a>783</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-784"></a>784</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function mod(x::Int128, y::Int128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-785"></a>785</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Int128(mod(BigInt(x), BigInt(y)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-786"></a>786</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-787"></a>787</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-788"></a>788</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    *(x::T, y::T) where {T&lt;:Union{Int128,UInt128}}  = mul_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-789"></a>789</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-790"></a>790</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    div(x::Int128,  y::Int128)  = checked_sdiv_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-791"></a>791</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    div(x::UInt128, y::UInt128) = checked_udiv_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-792"></a>792</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-793"></a>793</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rem(x::Int128,  y::Int128)  = checked_srem_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-794"></a>794</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rem(x::UInt128, y::UInt128) = checked_urem_int(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-795"></a>795</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-796"></a>796</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-797"></a>797</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># issue #15489: since integer ops are unchecked, they shouldn&#39;t check promotion
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-798"></a>798</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for op in (:+, :-, :*, :&amp;, :|, :xor)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-799"></a>799</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @eval function $op(a::Integer, b::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-800"></a>800</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        T = promote_typeof(a, b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-801"></a>801</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        aT, bT = a % T, b % T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-802"></a>802</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        not_sametype((a, b), (aT, bT))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-803"></a>803</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-803"></a>
+              1 (2.38%) samples spent in +<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              digitgen
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#Lfastshortest-jl-253e248589e118f4dde7-line.html-93">line 93</a><br />
+            </div>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-53">+</a><br />
+            </div>
+            <span class="code">        return $op(aT, bT)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-804"></a>804</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lint-jl-af434f8f2b4fe43f173a-line.html-805"></a>805</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/io-jl-7061b86fd468f75a7694-line.html b/profiling/statprof/io-jl-7061b86fd468f75a7694-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..dd010dedb2eba48bee6121b513526370d763db6f
--- /dev/null
+++ b/profiling/statprof/io-jl-7061b86fd468f75a7694-line.html
@@ -0,0 +1,10293 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./io.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Generic IO stubs -- all subtypes should implement these (if meaningful)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    EOFError()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">No more data was available to read from a file or stream.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct EOFError &lt;: Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    SystemError(prefix::AbstractString, [errno::Int32])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">A system call failed with an error code (in the `errno` global variable).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct SystemError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    prefix::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    errnum::Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    extrainfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    SystemError(p::AbstractString, e::Integer, extrainfo) = new(p, e, extrainfo)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    SystemError(p::AbstractString, e::Integer) = new(p, e, nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    SystemError(p::AbstractString) = new(p, Libc.errno())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">lock(::IO) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unlock(::IO) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">reseteof(x::IO) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const SZ_UNBUFFERED_IO = 65536
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">buffer_writes(x::IO, bufsize=SZ_UNBUFFERED_IO) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isopen(object) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether an object - such as a stream or timer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-- is not yet closed. Once an object is closed, it will never produce a new event.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">However, since a closed stream may still have data to read in its buffer,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">use [`eof`](@ref) to check for the ability to read data.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Use the `FileWatching` package to be notified when a stream might be writable or readable.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = open(&quot;my_file.txt&quot;, &quot;w+&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isopen(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; close(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isopen(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isopen end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    close(stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Close an I/O stream. Performs a [`flush`](@ref) first.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function close end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function flush end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait_connected end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait_readnb end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait_readbyte end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait_close end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function bytesavailable end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readavailable(stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read all available data on the stream, blocking the task only if no data is available. The
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">result is a `Vector{UInt8,1}`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readavailable end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isreadable(io) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `true` if the specified IO object is readable (if that can be determined).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; open(&quot;myfile.txt&quot;, &quot;w&quot;) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           print(io, &quot;Hello world!&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           isreadable(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; open(&quot;myfile.txt&quot;, &quot;r&quot;) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           isreadable(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; rm(&quot;myfile.txt&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isreadable end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    iswritable(io) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `true` if the specified IO object is writable (if that can be determined).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; open(&quot;myfile.txt&quot;, &quot;w&quot;) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           print(io, &quot;Hello world!&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           iswritable(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; open(&quot;myfile.txt&quot;, &quot;r&quot;) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           iswritable(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; rm(&quot;myfile.txt&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function iswritable end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function copy end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function eof end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    read(io::IO, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read a single value of type `T` from `io`, in canonical binary representation.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    read(io::IO, String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read the entirety of `io`, as a `String`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer(&quot;JuliaLang is a GitHub organization&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; read(io, Char)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&#39;J&#39;: ASCII/Unicode U+004a (category Lu: Letter, uppercase)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer(&quot;JuliaLang is a GitHub organization&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; read(io, String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;JuliaLang is a GitHub organization&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(stream, t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    write(io::IO, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    write(filename::AbstractString, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Write the canonical binary representation of a value to the given I/O stream or file.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the number of bytes written into the stream.   See also [`print`](@ref) to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write a text representation (with an encoding that may depend upon `io`).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">You can write multiple values with the same `write` call. i.e. the following are equivalent:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    write(io, x, y...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    write(io, x) + write(io, y...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer();
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; write(io, &quot;JuliaLang is a GitHub organization.&quot;, &quot; It has many members.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">56
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; String(take!(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;JuliaLang is a GitHub organization. It has many members.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; write(io, &quot;Sometimes those members&quot;) + write(io, &quot; write documentation.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">44
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; String(take!(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;Sometimes those members write documentation.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(s::IO, ::Type{UInt8}) = error(typeof(s),&quot; does not support byte I/O&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(s::IO, x::UInt8) = error(typeof(s),&quot; does not support byte I/O&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsafe_write(io::IO, ref, nbytes::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Copy `nbytes` from `ref` (converted to a pointer) into the `IO` object.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">It is recommended that subtypes `T&lt;:IO` override the following method signature
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to provide more efficient implementations:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`unsafe_write(s::T, p::Ptr{UInt8}, n::UInt)`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unsafe_write(s::IO, p::Ptr{UInt8}, n::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    written::Int = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        written += write(s, unsafe_load(p, i))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return written
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsafe_read(io::IO, ref, nbytes::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Copy `nbytes` from the `IO` stream object into `ref` (converted to a pointer).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">It is recommended that subtypes `T&lt;:IO` override the following method signature
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to provide more efficient implementations:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`unsafe_read(s::T, p::Ptr{UInt8}, n::UInt)`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unsafe_read(s::IO, p::Ptr{UInt8}, n::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_store!(p, read(s, UInt8)::UInt8, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Generic wrappers around other IO objects
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type AbstractPipe &lt;: IO end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function pipe_reader end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function pipe_writer end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(io::AbstractPipe, byte::UInt8) = write(pipe_writer(io), byte)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_write(io::AbstractPipe, p::Ptr{UInt8}, nb::UInt) = unsafe_write(pipe_writer(io), p, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">buffer_writes(io::AbstractPipe, args...) = buffer_writes(pipe_writer(io), args...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flush(io::AbstractPipe) = flush(pipe_writer(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(io::AbstractPipe, byte::Type{UInt8}) = read(pipe_reader(io), byte)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_read(io::AbstractPipe, p::Ptr{UInt8}, nb::UInt) = unsafe_read(pipe_reader(io), p, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(io::AbstractPipe) = read(pipe_reader(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readuntil(io::AbstractPipe, arg::UInt8; kw...) = readuntil(pipe_reader(io), arg; kw...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readuntil(io::AbstractPipe, arg::AbstractChar; kw...) = readuntil(pipe_reader(io), arg; kw...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readuntil(io::AbstractPipe, arg::AbstractString; kw...) = readuntil(pipe_reader(io), arg; kw...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readuntil(io::AbstractPipe, arg::AbstractVector; kw...) = readuntil(pipe_reader(io), arg; kw...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readuntil_vector!(io::AbstractPipe, target::AbstractVector, keep::Bool, out) = readuntil_vector!(pipe_reader(io), target, keep, out)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for f in (
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # peek/mark interface
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        :peek, :mark, :unmark, :reset, :ismarked,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Simple reader functions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        :readavailable, :isreadable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @eval $(f)(io::AbstractPipe) = $(f)(pipe_reader(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iswritable(io::AbstractPipe) = iswritable(pipe_writer(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isopen(io::AbstractPipe) = isopen(pipe_writer(io)) || isopen(pipe_reader(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">close(io::AbstractPipe) = (close(pipe_writer(io)); close(pipe_reader(io)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">wait_readnb(io::AbstractPipe, nb::Int) = wait_readnb(pipe_reader(io), nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">wait_readbyte(io::AbstractPipe, byte::UInt8) = wait_readbyte(pipe_reader(io), byte)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">wait_close(io::AbstractPipe) = (wait_close(pipe_writer(io)); wait_close(pipe_reader(io)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bytesavailable(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the number of bytes available for reading before a read from this stream or buffer will block.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer(&quot;JuliaLang is a GitHub organization&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; bytesavailable(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">34
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">bytesavailable(io::AbstractPipe) = bytesavailable(pipe_reader(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eof(stream) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Test whether an I/O stream is at end-of-file. If the stream is not yet exhausted, this
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function will block to wait for more data if necessary, and then return `false`. Therefore
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">it is always safe to read one byte after seeing `eof` return `false`. `eof` will return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`false` as long as buffered data is still available, even if the remote end of a connection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is closed.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eof(io::AbstractPipe) = eof(pipe_reader(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">reseteof(io::AbstractPipe) = reseteof(pipe_reader(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Exception-safe wrappers (io = open(); try f(io) finally close(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(filename::AbstractString, a1, args...) = open(io-&gt;write(io, a1, args...), filename, &quot;w&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    read(filename::AbstractString, args...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Open a file and read its contents. `args` is passed to `read`: this is equivalent to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`open(io-&gt;read(io, args...), filename)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    read(filename::AbstractString, String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read the entire contents of a file as a string.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(filename::AbstractString, args...) = open(io-&gt;read(io, args...), filename)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(filename::AbstractString, ::Type{T}) where {T} = open(io-&gt;read(io, T), filename)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    read!(stream::IO, array::Union{Array, BitArray})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    read!(filename::AbstractString, array::Union{Array, BitArray})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read binary data from an I/O stream or file, filling in `array`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read! end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read!(filename::AbstractString, a) = open(io-&gt;read!(io, a), filename)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readuntil(stream::IO, delim; keep::Bool = false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readuntil(filename::AbstractString, delim; keep::Bool = false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read a string from an I/O stream or a file, up to the given delimiter.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The delimiter can be a `UInt8`, `AbstractChar`, string, or vector.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Keyword argument `keep` controls whether the delimiter is included in the result.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The text is assumed to be encoded in UTF-8.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; open(&quot;my_file.txt&quot;, &quot;w&quot;) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           write(io, &quot;JuliaLang is a GitHub organization.\\nIt has many members.\\n&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">57
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; readuntil(&quot;my_file.txt&quot;, &#39;L&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;Julia&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; readuntil(&quot;my_file.txt&quot;, &#39;.&#39;, keep = true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;JuliaLang is a GitHub organization.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; rm(&quot;my_file.txt&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readuntil(filename::AbstractString, args...; kw...) = open(io-&gt;readuntil(io, args...; kw...), filename)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readline(io::IO=stdin; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readline(filename::AbstractString; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read a single line of text from the given I/O stream or file (defaults to `stdin`).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">When reading from a file, the text is assumed to be encoded in UTF-8. Lines in the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">input end with `&#39;\\n&#39;` or `&quot;\\r\\n&quot;` or the end of an input stream. When `keep` is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false (as it is by default), these trailing newline characters are removed from the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">line before it is returned. When `keep` is true, they are returned as part of the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">line.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; open(&quot;my_file.txt&quot;, &quot;w&quot;) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           write(io, &quot;JuliaLang is a GitHub organization.\\nIt has many members.\\n&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">57
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; readline(&quot;my_file.txt&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;JuliaLang is a GitHub organization.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; readline(&quot;my_file.txt&quot;, keep=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;JuliaLang is a GitHub organization.\\n&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; rm(&quot;my_file.txt&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readline(filename::AbstractString; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    open(filename) do f
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        readline(f, keep=keep)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readline(s::IO=stdin; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    line = readuntil(s, 0x0a, keep=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = length(line)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if keep || i == 0 || line[i] != 0x0a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return String(line)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif i &lt; 2 || line[i-1] != 0x0d
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return String(resize!(line,i-1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return String(resize!(line,i-2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readlines(io::IO=stdin; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readlines(filename::AbstractString; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read all lines of an I/O stream or a file as a vector of strings. Behavior is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">equivalent to saving the result of reading [`readline`](@ref) repeatedly with the same
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">arguments and saving the resulting lines as a vector of strings.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; open(&quot;my_file.txt&quot;, &quot;w&quot;) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           write(io, &quot;JuliaLang is a GitHub organization.\\nIt has many members.\\n&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">57
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; readlines(&quot;my_file.txt&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2-element Array{String,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> &quot;JuliaLang is a GitHub organization.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> &quot;It has many members.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; readlines(&quot;my_file.txt&quot;, keep=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2-element Array{String,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> &quot;JuliaLang is a GitHub organization.\\n&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> &quot;It has many members.\\n&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; rm(&quot;my_file.txt&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readlines(filename::AbstractString; kw...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    open(filename) do f
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        readlines(f; kw...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readlines(s=stdin; kw...) = collect(eachline(s; kw...))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## byte-order mark, ntoh &amp; hton ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">let a = UInt32[0x01020304]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    endian_bom = GC.@preserve a unsafe_load(convert(Ptr{UInt8}, pointer(a)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global ntoh, hton, ltoh, htol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if endian_bom == 0x01
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ntoh(x) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        hton(x) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ltoh(x) = bswap(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        htol(x) = bswap(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        const global ENDIAN_BOM = 0x01020304
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif endian_bom == 0x04
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ntoh(x) = bswap(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        hton(x) = bswap(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ltoh(x) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        htol(x) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        const global ENDIAN_BOM = 0x04030201
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;seriously? what is this machine?&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ENDIAN_BOM
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The 32-bit byte-order-mark indicates the native byte order of the host machine.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Little-endian machines will contain the value `0x04030201`. Big-endian machines will contain
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the value `0x01020304`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ENDIAN_BOM
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ntoh(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Convert the endianness of a value from Network byte order (big-endian) to that used by the Host.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ntoh(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    hton(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Convert the endianness of a value from that used by the Host to Network byte order (big-endian).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">hton(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ltoh(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Convert the endianness of a value from Little-endian to that used by the Host.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ltoh(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    htol(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Convert the endianness of a value from that used by the Host to Little-endian.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">htol(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isreadonly(io) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether a stream is read-only.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer(&quot;JuliaLang is a GitHub organization&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isreadonly(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer();
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isreadonly(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isreadonly(s) = isreadable(s) &amp;&amp; !iswritable(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## binary I/O ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(io::IO, x) = throw(MethodError(write, (io, x)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(io::IO, x1, xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    written::Int = write(io, x1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in xs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        written += write(io, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return written
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@noinline unsafe_write(s::IO, p::Ref{T}, n::Integer) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsafe_write(s, unsafe_convert(Ref{T}, p)::Ptr, n) # mark noinline to ensure ref is gc-rooted somewhere (by the caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-509"></a>509</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-io-jl-unsafe_write-509"></a>
+              1 (2.38%) samples spent in unsafe_write<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              _show
+              <a href="grisu-jl-fab39581eb10ad2e545a-line.html#Lgrisu-jl-fab39581eb10ad2e545a-line.html-128">line 128</a><br />
+            </div>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-unsafe_write-401">unsafe_write</a><br />
+            </div>
+            <span class="code">unsafe_write(s::IO, p::Ptr, n::Integer) = unsafe_write(s, convert(Ptr{UInt8}, p), convert(UInt, n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(s::IO, x::Ref{T}) where {T} = unsafe_write(s, x, Core.sizeof(T))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(s::IO, x::Int8) = write(s, reinterpret(UInt8, x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(s::IO, x::Union{Int16,UInt16,Int32,UInt32,Int64,UInt64,Int128,UInt128,Float16,Float32,Float64})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return write(s, Ref(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(s::IO, x::Bool) = write(s, UInt8(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(to::IO, p::Ptr) = write(to, convert(UInt, p))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(s::IO, A::AbstractArray)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isbitstype(eltype(A))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;`write` is not supported on non-isbits arrays&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nb = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for a in A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nb += write(s, a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(s::IO, a::Array)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isbitstype(eltype(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return GC.@preserve a unsafe_write(s, pointer(a), sizeof(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;`write` is not supported on non-isbits arrays&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(s::IO, a::SubArray{T,N,&lt;:Array}) where {T,N}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isbitstype(T) || !isa(a, StridedArray)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return invoke(write, Tuple{IO, AbstractArray}, s, a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elsz = sizeof(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    colsz = size(a,1) * elsz
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GC.@preserve a if stride(a,1) != 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for idxs in CartesianIndices(size(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            unsafe_write(s, pointer(a, idxs.I), elsz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return elsz * length(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif N &lt;= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return unsafe_write(s, pointer(a, 1), colsz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for idxs in CartesianIndices((1, size(a)[2:end]...))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            unsafe_write(s, pointer(a, idxs.I), colsz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return colsz * trailingsize(a,2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(io::IO, c::Char)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u = bswap(reinterpret(UInt32, c))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        write(io, u % UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (u &gt;&gt;= 8) == 0 &amp;&amp; return n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># write(io, ::AbstractChar) is not defined: implementations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># must provide their own encoding-specific method.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(io::IO, s::Symbol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pname = unsafe_convert(Ptr{UInt8}, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return unsafe_write(io, pname, Int(ccall(:strlen, Csize_t, (Cstring,), pname)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(to::IO, from::IO)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !eof(from)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n += write(to, readavailable(from))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@noinline unsafe_read(s::IO, p::Ref{T}, n::Integer) where {T} = unsafe_read(s, unsafe_convert(Ref{T}, p)::Ptr, n) # mark noinline to ensure ref is gc-rooted somewhere (by the caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_read(s::IO, p::Ptr, n::Integer) = unsafe_read(s, convert(Ptr{UInt8}, p), convert(UInt, n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read!(s::IO, x::Ref{T}) where {T} = (unsafe_read(s, x, Core.sizeof(T)); x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(s::IO, ::Type{Int8}) = reinterpret(Int8, read(s, UInt8))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read(s::IO, T::Union{Type{Int16},Type{UInt16},Type{Int32},Type{UInt32},Type{Int64},Type{UInt64},Type{Int128},Type{UInt128},Type{Float16},Type{Float32},Type{Float64}})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return read!(s, Ref{T}(0))[]::T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(s::IO, ::Type{Bool}) = (read(s, UInt8) != 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(s::IO, ::Type{Ptr{T}}) where {T} = convert(Ptr{T}, read(s, UInt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read!(s::IO, a::Array{UInt8})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GC.@preserve a unsafe_read(s, pointer(a), sizeof(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read!(s::IO, a::Array{T}) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isbitstype(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-603"></a>603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        GC.@preserve a unsafe_read(s, pointer(a), sizeof(a))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i in eachindex(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            a[i] = read(s, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-611"></a>611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read(io::IO, ::Type{Char})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b0 = read(io, UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    l = 8(4-leading_ones(b0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    c = UInt32(b0) &lt;&lt; 24
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if l &lt; 24
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        s = 16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while s ≥ l &amp;&amp; !eof(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            peek(io) &amp; 0xc0 == 0x80 || break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            b = read(io, UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c |= UInt32(b) &lt;&lt; s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            s -= 8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return reinterpret(Char, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># read(io, T) is not defined for other AbstractChar: implementations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># must provide their own encoding-specific method.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># readuntil_string is useful below since it has
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># an optimized method for s::IOStream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readuntil_string(s::IO, delim::UInt8, keep::Bool) = String(readuntil(s, delim, keep=keep))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readuntil(s::IO, delim::AbstractChar; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if delim ≤ &#39;\x7f&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return readuntil_string(s, delim % UInt8, keep)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    out = IOBuffer()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !eof(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        c = read(s, Char)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if c == delim
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            keep &amp;&amp; write(out, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        write(out, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return String(take!(out))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-648"></a>648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-649"></a>649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-650"></a>650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readuntil(s::IO, delim::T; keep::Bool=false) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-651"></a>651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    out = (T === UInt8 ? StringVector(0) : Vector{T}())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-652"></a>652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !eof(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-653"></a>653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        c = read(s, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-654"></a>654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if c == delim
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-655"></a>655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            keep &amp;&amp; push!(out, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-656"></a>656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-657"></a>657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-658"></a>658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(out, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-659"></a>659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-660"></a>660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return out
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-661"></a>661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-662"></a>662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-663"></a>663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># requires that indices for target are the integer unit range from firstindex to lastindex
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-664"></a>664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># returns whether the delimiter was matched
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-665"></a>665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># uses the Knuth–Morris–Pratt_algorithm, with the first and second cache entries unrolled
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-666"></a>666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># For longer targets, the cache improves the big-O efficiency of scanning of sequences
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-667"></a>667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># with repeated patterns
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-668"></a>668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Each cache entry tells us which index we should start the search at.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-669"></a>669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># We assume this is unlikely, so we only lazy-initialize as much of the cache as we need to use
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-670"></a>670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># When we allocate the cache, we initialize it to 0 (and offset by the first index afterwards).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-671"></a>671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Suppose target is:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-672"></a>672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    Index:  1245689
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-673"></a>673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    Value: &quot;aδcaδcx&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-674"></a>674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># We would set the cache to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-675"></a>675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    0 0 0 1 2 3 4 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-676"></a>676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># So after if we mismatch after the second aδc sequence,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-677"></a>677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># we can immediately jump back to index 5 (4 + 1).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-678"></a>678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readuntil_vector!(io::IO, target::AbstractVector{T}, keep::Bool, out) where {T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-679"></a>679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    first = firstindex(target)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-680"></a>680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    last = lastindex(target)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-681"></a>681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    len = last - first + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-682"></a>682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if len &lt; 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-683"></a>683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-684"></a>684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-685"></a>685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pos = 0 # array-offset
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-686"></a>686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    max_pos = 1 # array-offset in cache
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-687"></a>687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    local cache # will be lazy initialized when needed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-688"></a>688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    output! = (isa(out, IO) ? write : push!)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-689"></a>689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !eof(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-690"></a>690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        c = read(io, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-691"></a>691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Backtrack until the next target character matches what was found
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-692"></a>692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-693"></a>693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c1 = target[pos + first]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-694"></a>694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if c == c1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-695"></a>695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                pos += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-696"></a>696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-697"></a>697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif pos == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-698"></a>698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-699"></a>699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif pos == 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-700"></a>700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if !keep
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-701"></a>701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    output!(out, target[first])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-702"></a>702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-703"></a>703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                pos = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-704"></a>704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-705"></a>705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # grow cache to contain up to `pos`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-706"></a>706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if !@isdefined(cache)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-707"></a>707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    cache = zeros(Int, len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-708"></a>708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-709"></a>709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                while max_pos &lt; pos
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-710"></a>710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    ci = target[max_pos + first]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-711"></a>711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    b = max_pos
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-712"></a>712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    max_pos += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-713"></a>713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    while b != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-714"></a>714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        b = cache[b]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-715"></a>715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        cb = target[b + first]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-716"></a>716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        if ci == cb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-717"></a>717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            cache[max_pos] = b + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-718"></a>718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-719"></a>719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-720"></a>720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-721"></a>721</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-722"></a>722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # read new position from cache
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-723"></a>723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                pos1 = cache[pos]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-724"></a>724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if !keep
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-725"></a>725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # and add the removed prefix from the target to the output
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-726"></a>726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # if not always keeping the match
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-727"></a>727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    for b in 1:(pos - pos1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-728"></a>728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        output!(out, target[b - 1 + first])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-729"></a>729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-730"></a>730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-731"></a>731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                pos = pos1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-732"></a>732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-733"></a>733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-734"></a>734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if keep || pos == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-735"></a>735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            output!(out, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-736"></a>736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-737"></a>737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        pos == len &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-738"></a>738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-739"></a>739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !keep
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-740"></a>740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # failed early without finishing the match,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-741"></a>741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # add the partial match to the output
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-742"></a>742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # if not always keeping the match
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-743"></a>743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for b in 1:pos
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-744"></a>744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            output!(out, target[b - 1 + first])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-745"></a>745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-746"></a>746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-747"></a>747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-748"></a>748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-749"></a>749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-750"></a>750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readuntil(io::IO, target::AbstractString; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-751"></a>751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # small-string target optimizations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-752"></a>752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isempty(target) &amp;&amp; return &quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-753"></a>753</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    c, rest = Iterators.peel(target)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-754"></a>754</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isempty(rest) &amp;&amp; c &lt;= &#39;\x7f&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-755"></a>755</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return readuntil_string(io, c % UInt8, keep)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-756"></a>756</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-757"></a>757</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # convert String to a utf8-byte-iterator
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-758"></a>758</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !(target isa String) &amp;&amp; !(target isa SubString{String})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-759"></a>759</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        target = String(target)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-760"></a>760</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-761"></a>761</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    target = codeunits(target)::AbstractVector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-762"></a>762</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return String(readuntil(io, target, keep=keep))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-763"></a>763</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-764"></a>764</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-765"></a>765</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readuntil(io::IO, target::AbstractVector{T}; keep::Bool=false) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-766"></a>766</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    out = (T === UInt8 ? StringVector(0) : Vector{T}())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-767"></a>767</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readuntil_vector!(io, target, keep, out)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-768"></a>768</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return out
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-769"></a>769</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-770"></a>770</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-771"></a>771</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-772"></a>772</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readchomp(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-773"></a>773</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-774"></a>774</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read the entirety of `x` as a string and remove a single trailing newline
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-775"></a>775</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if there is one. Equivalent to `chomp(read(x, String))`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-776"></a>776</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-777"></a>777</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-778"></a>778</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-779"></a>779</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; open(&quot;my_file.txt&quot;, &quot;w&quot;) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-780"></a>780</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           write(io, &quot;JuliaLang is a GitHub organization.\\nIt has many members.\\n&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-781"></a>781</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-782"></a>782</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-783"></a>783</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; readchomp(&quot;my_file.txt&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-784"></a>784</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;JuliaLang is a GitHub organization.\\nIt has many members.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-785"></a>785</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-786"></a>786</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; rm(&quot;my_file.txt&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-787"></a>787</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-788"></a>788</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-789"></a>789</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readchomp(x) = chomp(read(x, String))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-790"></a>790</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-791"></a>791</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># read up to nb bytes into nb, returning # bytes read
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-792"></a>792</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-793"></a>793</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-794"></a>794</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readbytes!(stream::IO, b::AbstractVector{UInt8}, nb=length(b))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-795"></a>795</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-796"></a>796</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read at most `nb` bytes from `stream` into `b`, returning the number of bytes read.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-797"></a>797</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The size of `b` will be increased if needed (i.e. if `nb` is greater than `length(b)`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-798"></a>798</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and enough bytes could be read), but it will never be decreased.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-799"></a>799</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-800"></a>800</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readbytes!(s::IO, b::AbstractArray{UInt8}, nb=length(b))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-801"></a>801</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert !has_offset_axes(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-802"></a>802</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    olb = lb = length(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-803"></a>803</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nr = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-804"></a>804</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while nr &lt; nb &amp;&amp; !eof(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-805"></a>805</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a = read(s, UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-806"></a>806</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nr += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-807"></a>807</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if nr &gt; lb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-808"></a>808</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            lb = nr * 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-809"></a>809</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            resize!(b, lb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-810"></a>810</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-811"></a>811</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        b[nr] = a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-812"></a>812</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-813"></a>813</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if lb &gt; olb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-814"></a>814</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        resize!(b, nr) # shrink to just contain input data if was resized
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-815"></a>815</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-816"></a>816</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-817"></a>817</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-818"></a>818</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-819"></a>819</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-820"></a>820</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    read(s::IO, nb=typemax(Int))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-821"></a>821</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-822"></a>822</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read at most `nb` bytes from `s`, returning a `Vector{UInt8}` of the bytes read.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-823"></a>823</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-824"></a>824</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read(s::IO, nb::Integer = typemax(Int))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-825"></a>825</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Let readbytes! grow the array progressively by default
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-826"></a>826</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # instead of taking of risk of over-allocating
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-827"></a>827</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b = Vector{UInt8}(undef, nb == typemax(Int) ? 1024 : nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-828"></a>828</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nr = readbytes!(s, b, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-829"></a>829</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return resize!(b, nr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-830"></a>830</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-831"></a>831</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-832"></a>832</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(s::IO, ::Type{String}) = String(read(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-833"></a>833</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(s::IO, T::Type) = error(&quot;The IO stream does not support reading objects of type $T.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-834"></a>834</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-835"></a>835</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## high-level iterator interfaces ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-836"></a>836</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-837"></a>837</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct EachLine{IOT &lt;: IO}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-838"></a>838</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stream::IOT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-839"></a>839</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ondone::Function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-840"></a>840</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    keep::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-841"></a>841</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    EachLine(stream::IO=stdin; ondone::Function=()-&gt;nothing, keep::Bool=false) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-842"></a>842</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new{typeof(stream)}(stream, ondone, keep)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-843"></a>843</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-844"></a>844</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-845"></a>845</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-846"></a>846</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eachline(io::IO=stdin; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-847"></a>847</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eachline(filename::AbstractString; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-848"></a>848</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-849"></a>849</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create an iterable `EachLine` object that will yield each line from an I/O stream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-850"></a>850</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">or a file. Iteration calls [`readline`](@ref) on the stream argument repeatedly with
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-851"></a>851</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`keep` passed through, determining whether trailing end-of-line characters are
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-852"></a>852</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">retained. When called with a file name, the file is opened once at the beginning of
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-853"></a>853</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iteration and closed at the end. If iteration is interrupted, the file will be
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-854"></a>854</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">closed when the `EachLine` object is garbage collected.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-855"></a>855</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-856"></a>856</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-857"></a>857</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-858"></a>858</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; open(&quot;my_file.txt&quot;, &quot;w&quot;) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-859"></a>859</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           write(io, &quot;JuliaLang is a GitHub organization.\\n It has many members.\\n&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-860"></a>860</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-861"></a>861</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-862"></a>862</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; for line in eachline(&quot;my_file.txt&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-863"></a>863</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           print(line)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-864"></a>864</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-865"></a>865</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">JuliaLang is a GitHub organization. It has many members.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-866"></a>866</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-867"></a>867</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; rm(&quot;my_file.txt&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-868"></a>868</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-869"></a>869</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-870"></a>870</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function eachline(stream::IO=stdin; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-871"></a>871</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    EachLine(stream, keep=keep)::EachLine
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-872"></a>872</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-873"></a>873</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-874"></a>874</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function eachline(filename::AbstractString; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-875"></a>875</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = open(filename)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-876"></a>876</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    EachLine(s, ondone=()-&gt;close(s), keep=keep)::EachLine
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-877"></a>877</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-878"></a>878</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-879"></a>879</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function iterate(itr::EachLine, state=nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-880"></a>880</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    eof(itr.stream) &amp;&amp; return (itr.ondone(); nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-881"></a>881</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (readline(itr.stream, keep=itr.keep), nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-882"></a>882</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-883"></a>883</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-884"></a>884</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eltype(::Type{&lt;:EachLine}) = String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-885"></a>885</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-886"></a>886</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">IteratorSize(::Type{&lt;:EachLine}) = SizeUnknown()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-887"></a>887</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-888"></a>888</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># IOStream Marking
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-889"></a>889</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Note that these functions expect that io.mark exists for
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-890"></a>890</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># the concrete IO type. This may not be true for IO types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-891"></a>891</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># not in base.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-892"></a>892</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-893"></a>893</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-894"></a>894</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mark(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-895"></a>895</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-896"></a>896</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Add a mark at the current position of stream `s`. Return the marked position.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-897"></a>897</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-898"></a>898</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also [`unmark`](@ref), [`reset`](@ref), [`ismarked`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-899"></a>899</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-900"></a>900</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function mark(io::IO)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-901"></a>901</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.mark = position(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-902"></a>902</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-903"></a>903</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-904"></a>904</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-905"></a>905</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unmark(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-906"></a>906</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-907"></a>907</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Remove a mark from stream `s`. Return `true` if the stream was marked, `false` otherwise.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-908"></a>908</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-909"></a>909</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also [`mark`](@ref), [`reset`](@ref), [`ismarked`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-910"></a>910</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-911"></a>911</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unmark(io::IO)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-912"></a>912</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    !ismarked(io) &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-913"></a>913</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.mark = -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-914"></a>914</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-915"></a>915</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-916"></a>916</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-917"></a>917</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-918"></a>918</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    reset(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-919"></a>919</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-920"></a>920</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Reset a stream `s` to a previously marked position, and remove the mark. Return the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-921"></a>921</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">previously marked position. Throw an error if the stream is not marked.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-922"></a>922</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-923"></a>923</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also [`mark`](@ref), [`unmark`](@ref), [`ismarked`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-924"></a>924</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-925"></a>925</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function reset(io::T) where T&lt;:IO
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-926"></a>926</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ismarked(io) || throw(ArgumentError(&quot;$(T) not marked&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-927"></a>927</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    m = io.mark
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-928"></a>928</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    seek(io, m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-929"></a>929</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.mark = -1 # must be after seek, or seek may fail
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-930"></a>930</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-931"></a>931</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-932"></a>932</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-933"></a>933</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-934"></a>934</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ismarked(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-935"></a>935</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-936"></a>936</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `true` if stream `s` is marked.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-937"></a>937</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-938"></a>938</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also [`mark`](@ref), [`unmark`](@ref), [`reset`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-939"></a>939</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-940"></a>940</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ismarked(io::IO) = io.mark &gt;= 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-941"></a>941</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-942"></a>942</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Make sure all IO streams support flush, even if only as a no-op,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-943"></a>943</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># to make it easier to write generic I/O code.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-944"></a>944</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-945"></a>945</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-946"></a>946</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    flush(stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-947"></a>947</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-948"></a>948</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Commit all currently buffered writes to the given stream.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-949"></a>949</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-950"></a>950</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flush(io::IO) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-951"></a>951</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-952"></a>952</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-953"></a>953</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    skipchars(predicate, io::IO; linecomment=nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-954"></a>954</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-955"></a>955</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Advance the stream `io` such that the next-read character will be the first remaining for
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-956"></a>956</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">which `predicate` returns `false`. If the keyword argument `linecomment` is specified, all
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-957"></a>957</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">characters from that character until the start of the next line are ignored.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-958"></a>958</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-959"></a>959</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-960"></a>960</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-961"></a>961</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; buf = IOBuffer(&quot;    text&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-962"></a>962</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">IOBuffer(data=UInt8[...], readable=true, writable=false, seekable=true, append=false, size=8, maxsize=Inf, ptr=1, mark=-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-963"></a>963</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-964"></a>964</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; skipchars(isspace, buf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-965"></a>965</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">IOBuffer(data=UInt8[...], readable=true, writable=false, seekable=true, append=false, size=8, maxsize=Inf, ptr=5, mark=-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-966"></a>966</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-967"></a>967</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; String(readavailable(buf))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-968"></a>968</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;text&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-969"></a>969</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-970"></a>970</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-971"></a>971</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function skipchars(predicate, io::IO; linecomment=nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-972"></a>972</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !eof(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-973"></a>973</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        c = read(io, Char)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-974"></a>974</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if c === linecomment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-975"></a>975</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            readline(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-976"></a>976</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif !predicate(c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-977"></a>977</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            skip(io, -codelen(c))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-978"></a>978</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-979"></a>979</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-980"></a>980</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-981"></a>981</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-982"></a>982</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-983"></a>983</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-984"></a>984</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-985"></a>985</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    countlines(io::IO; eol::AbstractChar = &#39;\\n&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-986"></a>986</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-987"></a>987</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Read `io` until the end of the stream/file and count the number of lines. To specify a file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-988"></a>988</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">pass the filename as the first argument. EOL markers other than `&#39;\\n&#39;` are supported by
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-989"></a>989</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">passing them as the second argument.  The last non-empty line of `io` is counted even if it does not
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-990"></a>990</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end with the EOL, matching the length returned by [`eachline`](@ref) and [`readlines`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-991"></a>991</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-992"></a>992</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-993"></a>993</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-994"></a>994</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer(&quot;JuliaLang is a GitHub organization.\\n&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-995"></a>995</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-996"></a>996</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; countlines(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-997"></a>997</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-998"></a>998</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-999"></a>999</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer(&quot;JuliaLang is a GitHub organization.&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1000"></a>1000</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1001"></a>1001</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; countlines(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1002"></a>1002</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1003"></a>1003</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1004"></a>1004</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; countlines(io, eol = &#39;.&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1005"></a>1005</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1006"></a>1006</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1007"></a>1007</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1008"></a>1008</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function countlines(io::IO; eol::AbstractChar=&#39;\n&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1009"></a>1009</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isascii(eol) || throw(ArgumentError(&quot;only ASCII line terminators are supported&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1010"></a>1010</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    aeol = UInt8(eol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1011"></a>1011</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a = Vector{UInt8}(undef, 8192)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1012"></a>1012</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nl = nb = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1013"></a>1013</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !eof(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1014"></a>1014</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nb = readbytes!(io, a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1015"></a>1015</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @simd for i=1:nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1016"></a>1016</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @inbounds nl += a[i] == aeol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1017"></a>1017</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1018"></a>1018</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1019"></a>1019</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if nb &gt; 0 &amp;&amp; a[nb] != aeol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1020"></a>1020</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nl += 1 # final line is not terminated with eol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1021"></a>1021</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1022"></a>1022</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1023"></a>1023</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1024"></a>1024</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-7061b86fd468f75a7694-line.html-1025"></a>1025</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">countlines(f::AbstractString; eol::AbstractChar = &#39;\n&#39;) = open(io-&gt;countlines(io, eol = eol), f)::Int
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/io-jl-f839edf29063078eece4-line.html b/profiling/statprof/io-jl-f839edf29063078eece4-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..4deb9cefc22b817ab9d7657a56e3b4884caf6bfb
--- /dev/null
+++ b/profiling/statprof/io-jl-f839edf29063078eece4-line.html
@@ -0,0 +1,5985 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## core text I/O ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print([io::IO], xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Write to `io` (or to the default output stream [`stdout`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if `io` is not given) a canonical (un-decorated) text representation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">of values `xs` if there is one, otherwise call [`show`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The representation used by `print` includes minimal formatting and tries to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">avoid Julia-specific details.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Printing `nothing` is not allowed and throws an error.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; print(&quot;Hello World!&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Hello World!
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer();
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; print(io, &quot;Hello&quot;, &#39; &#39;, :World!)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; String(take!(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;Hello World!&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-28"></a>
+              15 (35.71%) samples spent in print<br />
+              1 (100.00%) (ex.),
+              15 (100.00%) (incl.)
+              when called from
+              print_to_string
+              <a href="io-jl-f839edf29063078eece4-line.html#Lio-jl-f839edf29063078eece4-line.html-122">line 122</a><br />
+            </div>
+            <span class="code">function print(io::IO, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lock(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-30"></a>30</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-31"></a>31</td>
+          <td></td>
+          <td>14 (33.33%)</td>
+          <td>
+            <div class="callees">
+              14 (100.00%)
+              samples spent calling
+              <a href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-show-151">show</a><br />
+            </div>
+            <span class="code">        show(io, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unlock(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function print(io::IO, xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lock(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for x in xs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unlock(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    println([io::IO], xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Print (using [`print`](@ref)) `xs` followed by a newline.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `io` is not supplied, prints to [`stdout`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; println(&quot;Hello, world&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Hello, world
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer();
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; println(io, &quot;Hello, world&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; String(take!(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;Hello, world\\n&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">println(io::IO, xs...) = print(io, xs..., &#39;\n&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## conversion of general objects to strings ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sprint(f::Function, args...; context=nothing, sizehint=0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Call the given function with an I/O stream and the supplied extra arguments.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Everything written to this I/O stream is returned as a string.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`context` can be either an [`IOContext`](@ref) whose properties will be used,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">or a `Pair` specifying a property and its value. `sizehint` suggests the capacity
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">of the buffer (in bytes).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The optional keyword argument `context` can be set to `:key=&gt;value` pair
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">or an `IO` or [`IOContext`](@ref) object whose attributes are used for the I/O
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">stream passed to `f`.  The optional `sizehint` is a suggested size (in bytes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to allocate for the buffer used to write the string.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; sprint(show, 66.66666; context=:compact =&gt; true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;66.6667&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; sprint(showerror, BoundsError([1], 100))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;BoundsError: attempt to access 1-element Array{Int64,1} at index [100]&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function sprint(f::Function, args...; context=nothing, sizehint::Integer=0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = IOBuffer(sizehint=sizehint)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if context !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        f(IOContext(s, context), args...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        f(s, args...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    String(resize!(s.data, s.size))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-tostr_sizehint-106"></a>
+              1 (2.38%) samples spent in tostr_sizehint<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              print_to_string
+              <a href="io-jl-f839edf29063078eece4-line.html#Lio-jl-f839edf29063078eece4-line.html-117">line 117</a><br />
+            </div>
+            <span class="code">tostr_sizehint(x) = 8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-107"></a>107</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-lastindex-110">lastindex</a><br />
+            </div>
+            <span class="code">tostr_sizehint(x::AbstractString) = lastindex(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">tostr_sizehint(x::Float64) = 20
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">tostr_sizehint(x::Float32) = 12
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print_to_string-111"></a>
+              37 (88.10%) samples spent in print_to_string<br />
+              5 (100.00%) (ex.),
+              37 (100.00%) (incl.)
+              when called from
+              string
+              <a href="io-jl-f839edf29063078eece4-line.html#Lio-jl-f839edf29063078eece4-line.html-155">line 155</a><br />
+            </div>
+            <span class="code">function print_to_string(xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isempty(xs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    siz = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in xs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-117"></a>117</td>
+          <td>3 (7.14%)</td>
+          <td>5 (11.90%)</td>
+          <td>
+            <div class="callees">
+              1 (20.00%)
+              samples spent calling
+              <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-tostr_sizehint-106">tostr_sizehint</a><br />
+              1 (20.00%)
+              samples spent calling
+              <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_thisind_str-113">_thisind_str</a><br />
+            </div>
+            <span class="code">        siz += tostr_sizehint(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # specialized for performance reasons
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-120"></a>120</td>
+          <td></td>
+          <td>12 (28.57%)</td>
+          <td>
+            <div class="callees">
+              12 (100.00%)
+              samples spent calling
+              <a href="nothing-0feca720e2c29dafb2c9-line.html#Snothing-Type">Type</a><br />
+            </div>
+            <span class="code">    s = IOBuffer(sizehint=siz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in xs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-122"></a>122</td>
+          <td>2 (4.76%)</td>
+          <td>18 (42.86%)</td>
+          <td>
+            <div class="callees">
+              15 (83.33%)
+              samples spent calling
+              <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-28">print</a><br />
+              1 (5.56%)
+              samples spent calling
+              <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-165">print</a><br />
+            </div>
+            <span class="code">        print(s, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-124"></a>124</td>
+          <td></td>
+          <td>2 (4.76%)</td>
+          <td>
+            <div class="callees">
+              1 (50.00%)
+              samples spent calling
+              <a href="array-jl-e331915c4fb281d94775-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-resize-1011">resize!</a><br />
+              1 (50.00%)
+              samples spent calling
+              <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-Type-39">Type</a><br />
+            </div>
+            <span class="code">    String(resize!(s.data, s.size))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function string_with_env(env, xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isempty(xs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    siz = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in xs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        siz += tostr_sizehint(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # specialized for performance reasons
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = IOBuffer(sizehint=siz)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    env_io = IOContext(s, env)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in xs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(env_io, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    String(resize!(s.data, s.size))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    string(xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a string from any values, except `nothing`, using the [`print`](@ref) function.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; string(&quot;a&quot;, 1, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;a1true&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-155"></a>155</td>
+          <td></td>
+          <td>37 (88.10%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-string-155"></a>
+              37 (88.10%) samples spent in string<br />
+              0 (ex.),
+              37 (100.00%) (incl.)
+              when called from
+              f
+              <a href="test-jl-6f8538a27ff3da5824d9-line.html#Ltest-jl-6f8538a27ff3da5824d9-line.html-11">line 11</a><br />
+            </div>
+            <div class="callees">
+              37 (100.00%)
+              samples spent calling
+              <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print_to_string-111">print_to_string</a><br />
+            </div>
+            <span class="code">string(xs...) = print_to_string(xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># note: print uses an encoding determined by `io` (defaults to UTF-8), whereas
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#       write uses an encoding determined by `s` (UTF-8 for `String`)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(io::IO, s::AbstractString) = for c in s; print(io, c); end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(io::IO, s::AbstractString) = (len = 0; for c in s; len += write(io, c); end; len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(io::IO, s::AbstractString) = print_quoted(io, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># optimized methods to avoid iterating over chars
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(io::IO, s::Union{String,SubString{String}}) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-165"></a>
+              1 (2.38%) samples spent in print<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              print_to_string
+              <a href="io-jl-f839edf29063078eece4-line.html#Lio-jl-f839edf29063078eece4-line.html-122">line 122</a><br />
+            </div>
+            <span class="code">    GC.@preserve s unsafe_write(io, pointer(s), reinterpret(UInt, sizeof(s)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-166"></a>166</td>
+          <td></td>
+          <td>2 (4.76%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-166"></a>
+              1 (2.38%) samples spent in print<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              _show
+              <a href="grisu-jl-fab39581eb10ad2e545a-line.html#Lgrisu-jl-fab39581eb10ad2e545a-line.html-123">line 123</a><br />
+            </div>
+            <div class="callees">
+              1 (50.00%)
+              samples spent calling
+              <a href="gcutils-jl-226c838c61f0891410cd-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-gcutils-jl-write-163">write</a><br />
+              1 (50.00%)
+              samples spent calling
+              <a href="gcutils-jl-226c838c61f0891410cd-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-gcutils-jl-write-163">write</a><br />
+            </div>
+            <span class="code">print(io::IO, s::Union{String,SubString{String}}) = (write(io, s); nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## printing literal quoted string data ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># this is the inverse of print_unescaped_chars(io, s, &quot;\\\&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function print_quoted_literal(io, s::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print(io, &#39;&quot;&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for c = s; c == &#39;&quot;&#39; ? print(io, &quot;\\\&quot;&quot;) : print(io, c); end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print(io, &#39;&quot;&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    repr(x; context=nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a string from any value using the [`show`](@ref) function.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The optional keyword argument `context` can be set to an `IO` or [`IOContext`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">object whose attributes are used for the I/O stream passed to `show`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Note that `repr(x)` is usually similar to how the value of `x` would
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">be entered in Julia.  See also [`repr(MIME(&quot;text/plain&quot;), x)`](@ref) to instead
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">return a &quot;pretty-printed&quot; version of `x` designed more for human consumption,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">equivalent to the REPL display of `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; repr(1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;1&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; repr(zeros(3))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;[0.0, 0.0, 0.0]&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; repr(big(1/3))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;3.33333333333333314829616256247390992939472198486328125e-01&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; repr(big(1/3), context=:compact =&gt; true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;3.33333e-01&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">repr(x; context=nothing) = sprint(show, x; context=context)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># IOBuffer views of a (byte)string:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    IOBuffer(string::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a read-only `IOBuffer` on the data underlying the given string.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer(&quot;Haho&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; String(take!(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;Haho&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; String(take!(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;Haho&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">IOBuffer(str::String) = IOBuffer(unsafe_wrap(Vector{UInt8}, str))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">IOBuffer(s::SubString{String}) = IOBuffer(view(unsafe_wrap(Vector{UInt8}, s.string), s.offset + 1 : s.offset + sizeof(s)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># join is implemented using IO
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    join([io::IO,] strings, delim, [last])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Join an array of `strings` into a single string, inserting the given delimiter between
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">adjacent strings. If `last` is given, it will be used instead of `delim` between the last
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">two strings. If `io` is given, the result is written to `io` rather than returned as
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">as a `String`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; join([&quot;apples&quot;, &quot;bananas&quot;, &quot;pineapples&quot;], &quot;, &quot;, &quot; and &quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;apples, bananas and pineapples&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`strings` can be any iterable over elements `x` which are convertible to strings
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">via `print(io::IOBuffer, x)`. `strings` will be printed to `io`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function join(io::IO, strings, delim, last)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    first = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    local prev
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for str in strings
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if @isdefined prev
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            first ? (first = false) : print(io, delim)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, prev)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        prev = str
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if @isdefined prev
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        first || print(io, last)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, prev)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function join(io::IO, strings, delim=&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Specialization of the above code when delim==last,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # which lets us emit (compile) less code
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    first = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for str in strings
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        first ? (first = false) : print(io, delim)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print(io, str)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">join(strings) = sprint(join, strings)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">join(strings, delim) = sprint(join, strings, delim)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">join(strings, delim, last) = sprint(join, strings, delim, last)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## string escaping &amp; unescaping ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">need_full_hex(c::Union{Nothing, AbstractChar}) = c !== nothing &amp;&amp; isxdigit(c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">escape_nul(c::Union{Nothing, AbstractChar}) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (c !== nothing &amp;&amp; &#39;0&#39; &lt;= c &lt;= &#39;7&#39;) ? &quot;\\x00&quot; : &quot;\\0&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    escape_string(str::AbstractString[, esc])::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    escape_string(io, str::AbstractString[, esc::])::Nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">General escaping of traditional C and Unicode escape sequences. The first form returns the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">escaped string, the second prints the result to `io`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Backslashes (`\\`) are escaped with a double-backslash (`&quot;\\\\&quot;`). Non-printable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">characters are escaped either with their standard C escape codes, `&quot;\\0&quot;` for NUL (if
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unambiguous), unicode code point (`&quot;\\u&quot;` prefix) or hex (`&quot;\\x&quot;` prefix).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The optional `esc` argument specifies any additional characters that should also be
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">escaped by a prepending backslash (`\&quot;` is also escaped by default in the first form).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; escape_string(&quot;aaa\\nbbb&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;aaa\\\\nbbb&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; escape_string(&quot;\\xfe\\xff&quot;) # invalid utf-8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;\\\\xfe\\\\xff&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; escape_string(string(&#39;\\u2135&#39;,&#39;\\0&#39;)) # unambiguous
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;ℵ\\\\0&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; escape_string(string(&#39;\\u2135&#39;,&#39;\\0&#39;,&#39;0&#39;)) # \\0 would be ambiguous
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;ℵ\\\\x000&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## See also
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`unescape_string`](@ref) for the reverse operation.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function escape_string(io::IO, s::AbstractString, esc=&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a = Iterators.Stateful(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for c in a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if c in esc
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, &#39;\\&#39;, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isascii(c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c == &#39;\0&#39;          ? print(io, escape_nul(peek(a))) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c == &#39;\e&#39;          ? print(io, &quot;\\e&quot;) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c == &#39;\\&#39;          ? print(io, &quot;\\\\&quot;) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            &#39;\a&#39; &lt;= c &lt;= &#39;\r&#39;  ? print(io, &#39;\\&#39;, &quot;abtnvfr&quot;[Int(c)-6]) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isprint(c)         ? print(io, c) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                 print(io, &quot;\\x&quot;, string(UInt32(c), base = 16, pad = 2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif !isoverlong(c) &amp;&amp; !ismalformed(c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isprint(c)         ? print(io, c) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c &lt;= &#39;\x7f&#39;        ? print(io, &quot;\\x&quot;, string(UInt32(c), base = 16, pad = 2)) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c &lt;= &#39;\uffff&#39;      ? print(io, &quot;\\u&quot;, string(UInt32(c), base = 16, pad = need_full_hex(peek(a)) ? 4 : 2)) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                 print(io, &quot;\\U&quot;, string(UInt32(c), base = 16, pad = need_full_hex(peek(a)) ? 8 : 4))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else # malformed or overlong
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            u = bswap(reinterpret(UInt32, c))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                print(io, &quot;\\x&quot;, string(u % UInt8, base = 16, pad = 2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                (u &gt;&gt;= 8) == 0 &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">escape_string(s::AbstractString, esc=(&#39;\&quot;&#39;,)) = sprint(escape_string, s, esc, sizehint=lastindex(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function print_quoted(io, s::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print(io, &#39;&quot;&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    escape_string(io, s, (&#39;\&quot;&#39;,&#39;$&#39;)) #&quot;# work around syntax highlighting problem
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print(io, &#39;&quot;&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># general unescaping of traditional C and Unicode escape sequences
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># TODO: handle unescaping invalid UTF-8 sequences
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unescape_string(str::AbstractString)::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unescape_string(io, str::AbstractString)::Nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">General unescaping of traditional C and Unicode escape sequences. The first form returns
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the escaped string, the second prints the result to `io`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The following escape sequences are recognised:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - Escaped backslash (`\\\\`)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - Escaped double-quote (`\\\&quot;`)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - Standard C escape sequences (`\\a`, `\\b`, `\\t`, `\\n`, `\\v`, `\\f`, `\\r`, `\\e`)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - Unicode code points (`\\u` or `\\U` prefixes with 1-4 trailing hex digits)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - Hex bytes (`\\x` with 1-2 trailing hex digits)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> - Octal bytes (`\\` with 1-3 trailing octal digits)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; unescape_string(&quot;aaa\\\\nbbb&quot;) # C escape sequence
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;aaa\\nbbb&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; unescape_string(&quot;\\\\u03c0&quot;) # unicode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;π&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; unescape_string(&quot;\\\\101&quot;) # octal
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;A&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## See also
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`escape_string`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unescape_string(io, s::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    a = Iterators.Stateful(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for c in a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isempty(a) &amp;&amp; c == &#39;\\&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c = popfirst!(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if c == &#39;x&#39; || c == &#39;u&#39; || c == &#39;U&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                n = k = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                m = c == &#39;x&#39; ? 2 :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    c == &#39;u&#39; ? 4 : 8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                while (k += 1) &lt;= m &amp;&amp; !isempty(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    nc = peek(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    n = &#39;0&#39; &lt;= nc &lt;= &#39;9&#39; ? n&lt;&lt;4 + (nc-&#39;0&#39;) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        &#39;a&#39; &lt;= nc &lt;= &#39;f&#39; ? n&lt;&lt;4 + (nc-&#39;a&#39;+10) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        &#39;A&#39; &lt;= nc &lt;= &#39;F&#39; ? n&lt;&lt;4 + (nc-&#39;A&#39;+10) : break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    popfirst!(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if k == 1 || n &gt; 0x10ffff
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    u = m == 4 ? &#39;u&#39; : &#39;U&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    throw(ArgumentError(&quot;invalid $(m == 2 ? &quot;hex (\\x)&quot; :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                        &quot;unicode (\\$u)&quot;) escape sequence&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if m == 2 # \x escape sequence
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    write(io, UInt8(n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    print(io, Char(n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif &#39;0&#39; &lt;= c &lt;= &#39;7&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                k = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                n = c-&#39;0&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                while (k += 1) &lt;= 3 &amp;&amp; !isempty(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    c = peek(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    n = (&#39;0&#39; &lt;= c &lt;= &#39;7&#39;) ? n&lt;&lt;3 + c-&#39;0&#39; : break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    popfirst!(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if n &gt; 255
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    throw(ArgumentError(&quot;octal escape sequence out of range&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                write(io, UInt8(n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                print(io, c == &#39;a&#39; ? &#39;\a&#39; :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                          c == &#39;b&#39; ? &#39;\b&#39; :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                          c == &#39;t&#39; ? &#39;\t&#39; :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                          c == &#39;n&#39; ? &#39;\n&#39; :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                          c == &#39;v&#39; ? &#39;\v&#39; :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                          c == &#39;f&#39; ? &#39;\f&#39; :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                          c == &#39;r&#39; ? &#39;\r&#39; :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                          c == &#39;e&#39; ? &#39;\e&#39; :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                          (c == &#39;\\&#39; || c == &#39;&quot;&#39;) ? c :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                          throw(ArgumentError(&quot;invalid escape sequence \\$c&quot;)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unescape_string(s::AbstractString) = sprint(unescape_string, s, sizehint=lastindex(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro b_str(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    v = codeunits(unescape_string(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    QuoteNode(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @raw_str -&gt; String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a raw string without interpolation and unescaping.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The exception is that quotation marks still must be escaped. Backslashes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">escape both quotation marks and other backslashes, but only when a sequence
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">of backslashes precedes a quote character. Thus, 2n backslashes followed by
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a quote encodes n backslashes and the end of the literal while 2n+1 backslashes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">followed by a quote encodes n backslashes followed by a quote character.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; println(raw&quot;\\ \$x&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">\\ \$x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; println(raw&quot;\\&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; println(raw&quot;\\\\\\&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">\\&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; println(raw&quot;\\\\x \\\\\\&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">\\\\x \\&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro raw_str(s); s; end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## multiline strings ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    indentation(str::AbstractString; tabwidth=8) -&gt; (Int, Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Calculate the width of leading white space. Return the width and a flag to indicate
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if the string is empty.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.indentation(&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(0, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.indentation(&quot;  a&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(2, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.indentation(&quot;\\ta&quot;; tabwidth=3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(3, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function indentation(str::AbstractString; tabwidth=8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    count = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for ch in str
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if ch == &#39; &#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            count += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif ch == &#39;\t&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            count = div(count + tabwidth, tabwidth) * tabwidth
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return count, false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    count, true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unindent(str::AbstractString, indent::Int; tabwidth=8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Remove leading indentation from string.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.unindent(&quot;   a\\n   b&quot;, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot; a\\n b&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.unindent(&quot;\\ta\\n\\tb&quot;, 2, tabwidth=8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;      a\\n      b&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unindent(str::AbstractString, indent::Int; tabwidth=8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    indent == 0 &amp;&amp; return str
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Note: this loses the type of the original string
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buf = IOBuffer(sizehint=sizeof(str))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cutting = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    col = 0     # current column (0 based)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for ch in str
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if cutting
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if ch == &#39; &#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                col += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif ch == &#39;\t&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                col = div(col + tabwidth, tabwidth) * tabwidth
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif ch == &#39;\n&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # Now we need to output enough indentation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                for i = 1:col-indent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    print(buf, &#39; &#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                col = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                print(buf, &#39;\n&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                cutting = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # Now we need to output enough indentation to get to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # correct place
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                for i = 1:col-indent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    print(buf, &#39; &#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                col += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                print(buf, ch)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif ch == &#39;\t&#39;       # Handle internal tabs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            upd = div(col + tabwidth, tabwidth) * tabwidth
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # output the number of spaces that would have been seen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # with original indentation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for i = 1:(upd-col)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                print(buf, &#39; &#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            col = upd
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif ch == &#39;\n&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cutting = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            col = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(buf, &#39;\n&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            col += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(buf, ch)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # If we were still &quot;cutting&quot; when we hit the end of the string,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # we need to output the right number of spaces for the indentation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if cutting
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 1:col-indent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(buf, &#39; &#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    String(take!(buf))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function String(chars::AbstractVector{&lt;:AbstractChar})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sprint(sizehint=length(chars)) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for c in chars
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            print(io, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lio-jl-f839edf29063078eece4-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/iobuffer-jl-0cfbb4403b3061764f48-line.html b/profiling/statprof/iobuffer-jl-0cfbb4403b3061764f48-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..5078f354ae07af0e12808d43e1b7d13016014950
--- /dev/null
+++ b/profiling/statprof/iobuffer-jl-0cfbb4403b3061764f48-line.html
@@ -0,0 +1,5183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## work with AbstractVector{UInt8} via I/O primitives ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Stateful string
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct GenericIOBuffer{T&lt;:AbstractVector{UInt8}} &lt;: IO
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    data::T # T should support: getindex, setindex!, length, copyto!, and resize!
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readable::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    writable::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    seekable::Bool # if not seekable, implementation is free to destroy (compact) past read data
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    append::Bool # add data at end instead of at pointer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    size::Int # end pointer (and write pointer if append == true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    maxsize::Int # fixed array size (typically pre-allocated)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ptr::Int # read (and maybe write) pointer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mark::Int # reset mark location for ptr (or &lt;0 for no mark)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function GenericIOBuffer{T}(data::T, readable::Bool, writable::Bool, seekable::Bool, append::Bool,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                maxsize::Integer) where T&lt;:AbstractVector{UInt8}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @assert !has_offset_axes(data)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new(data,readable,writable,seekable,append,length(data),maxsize,1,-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const IOBuffer = GenericIOBuffer{Vector{UInt8}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function GenericIOBuffer(data::T, readable::Bool, writable::Bool, seekable::Bool, append::Bool,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                         maxsize::Integer) where T&lt;:AbstractVector{UInt8}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GenericIOBuffer{T}(data, readable, writable, seekable, append, maxsize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># allocate Vector{UInt8}s for IOBuffer storage that can efficiently become Strings
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-31"></a>31</td>
+          <td></td>
+          <td>5 (11.90%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-StringVector-31"></a>
+              5 (11.90%) samples spent in StringVector<br />
+              0 (ex.),
+              5 (100.00%) (incl.)
+              when called from
+              #IOBuffer#302
+              <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#Liobuffer-jl-0cfbb4403b3061764f48-line.html-114">line 114</a><br />
+            </div>
+            <div class="callees">
+              5 (100.00%)
+              samples spent calling
+              <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_string_n-60">_string_n</a><br />
+            </div>
+            <span class="code">StringVector(n::Integer) = unsafe_wrap(Vector{UInt8}, _string_n(n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># IOBuffers behave like Files. They are typically readable and writable. They are seekable. (They can be appendable).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    IOBuffer([data::AbstractVector{UInt8}]; keywords...) -&gt; IOBuffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create an in-memory I/O stream, which may optionally operate on a pre-existing array.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">It may take optional keyword arguments:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">- `read`, `write`, `append`: restricts operations to the buffer; see `open` for details.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">- `truncate`: truncates the buffer size to zero length.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">- `maxsize`: specifies a size beyond which the buffer may not be grown.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">- `sizehint`: suggests a capacity of the buffer (`data` must implement `sizehint!(data, size)`).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">When `data` is not given, the buffer will be both readable and writable by default.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer();
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; write(io, &quot;JuliaLang is a GitHub organization.&quot;, &quot; It has many members.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">56
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; String(take!(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;JuliaLang is a GitHub organization. It has many members.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer(b&quot;JuliaLang is a GitHub organization.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">IOBuffer(data=UInt8[...], readable=true, writable=false, seekable=true, append=false, size=35, maxsize=Inf, ptr=1, mark=-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; read(io, String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;JuliaLang is a GitHub organization.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; write(io, &quot;This isn&#39;t writable.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ERROR: ArgumentError: ensureroom failed, IOBuffer is not writeable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer(UInt8[], read=true, write=true, maxsize=34)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">IOBuffer(data=UInt8[...], readable=true, writable=true, seekable=true, append=false, size=0, maxsize=34, ptr=1, mark=-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; write(io, &quot;JuliaLang is a GitHub organization.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">34
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; String(take!(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;JuliaLang is a GitHub organization&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; length(read(IOBuffer(b&quot;data&quot;, read=true, truncate=false)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; length(read(IOBuffer(b&quot;data&quot;, read=true, truncate=true)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function IOBuffer(
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        data::AbstractVector{UInt8};
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        read::Union{Bool,Nothing}=nothing,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        write::Union{Bool,Nothing}=nothing,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        append::Union{Bool,Nothing}=nothing,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        truncate::Union{Bool,Nothing}=nothing,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        maxsize::Integer=typemax(Int),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sizehint::Union{Integer,Nothing}=nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if maxsize &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;negative maxsize&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if sizehint !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sizehint!(data, sizehint)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    flags = open_flags(read=read, write=write, append=append, truncate=truncate)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buf = GenericIOBuffer(data, flags.read, flags.write, true, flags.append, Int(maxsize))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if flags.truncate
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        buf.size = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return buf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function IOBuffer(;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        read::Union{Bool,Nothing}=true,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        write::Union{Bool,Nothing}=true,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        append::Union{Bool,Nothing}=nothing,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        truncate::Union{Bool,Nothing}=true,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        maxsize::Integer=typemax(Int),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-IOBuffer-302-111"></a>
+              12 (28.57%) samples spent in #IOBuffer#302<br />
+              1 (100.00%) (ex.),
+              12 (100.00%) (incl.)
+              when called from
+              Type
+              <a href="nothing-0feca720e2c29dafb2c9-line.html#Lnothing-0feca720e2c29dafb2c9-line.html-0">line 0</a><br />
+            </div>
+            <span class="code">        sizehint::Union{Integer,Nothing}=nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    size = sizehint !== nothing ? Int(sizehint) : maxsize != typemax(Int) ? Int(maxsize) : 32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    flags = open_flags(read=read, write=write, append=append, truncate=truncate)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-114"></a>114</td>
+          <td></td>
+          <td>11 (26.19%)</td>
+          <td>
+            <div class="callees">
+              6 (54.55%)
+              samples spent calling
+              <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-StringVector-71">StringVector</a><br />
+              5 (45.45%)
+              samples spent calling
+              <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-StringVector-31">StringVector</a><br />
+            </div>
+            <span class="code">    buf = IOBuffer(
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        StringVector(size),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        read=flags.read,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        write=flags.write,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        append=flags.append,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        truncate=flags.truncate,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        maxsize=maxsize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fill!(buf.data, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-122"></a>122</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <span class="code">    return buf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># PipeBuffers behave like Unix Pipes. They are typically readable and writable, they act appendable, and are not seekable.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    PipeBuffer(data::Vector{UInt8}=UInt8[]; maxsize::Integer = typemax(Int))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">An [`IOBuffer`](@ref) that allows reading and performs writes by appending.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Seeking and truncating are not supported.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See [`IOBuffer`](@ref) for the available constructors.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `data` is given, creates a `PipeBuffer` to operate on a data vector,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">optionally specifying a size beyond which the underlying `Array` may not be grown.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">PipeBuffer(data::Vector{UInt8}=UInt8[]; maxsize::Int = typemax(Int)) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GenericIOBuffer(data,true,true,false,true,maxsize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">PipeBuffer(maxsize::Integer) = (x = PipeBuffer(StringVector(maxsize), maxsize = maxsize); x.size=0; x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function copy(b::GenericIOBuffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ret = typeof(b)(b.writable ? copy(b.data) : b.data,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    b.readable, b.writable, b.seekable, b.append, b.maxsize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ret.size = b.size
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ret.ptr  = b.ptr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(io::IO, b::GenericIOBuffer) = print(io, &quot;IOBuffer(data=UInt8[...], &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      &quot;readable=&quot;, b.readable, &quot;, &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      &quot;writable=&quot;, b.writable, &quot;, &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      &quot;seekable=&quot;, b.seekable, &quot;, &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      &quot;append=&quot;,   b.append, &quot;, &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      &quot;size=&quot;,     b.size, &quot;, &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      &quot;maxsize=&quot;,  b.maxsize == typemax(Int) ? &quot;Inf&quot; : b.maxsize, &quot;, &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      &quot;ptr=&quot;,      b.ptr, &quot;, &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      &quot;mark=&quot;,     b.mark, &quot;)&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unsafe_read(from::GenericIOBuffer, p::Ptr{UInt8}, nb::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    from.readable || throw(ArgumentError(&quot;read failed, IOBuffer is not readable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    avail = bytesavailable(from)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    adv = min(avail, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GC.@preserve from unsafe_copyto!(p, pointer(from.data, from.ptr), adv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    from.ptr += adv
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if nb &gt; avail
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(EOFError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read(from::GenericIOBuffer, T::Union{Type{Int16},Type{UInt16},Type{Int32},Type{UInt32},Type{Int64},Type{UInt64},Type{Int128},Type{UInt128},Type{Float16},Type{Float32},Type{Float64}})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    from.readable || throw(ArgumentError(&quot;read failed, IOBuffer is not readable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    avail = bytesavailable(from)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nb = sizeof(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if nb &gt; avail
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(EOFError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GC.@preserve from begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ptr::Ptr{T} = pointer(from.data, from.ptr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x = unsafe_load(ptr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    from.ptr += nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read_sub(from::GenericIOBuffer, a::AbstractArray{T}, offs, nel) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert !has_offset_axes(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    from.readable || throw(ArgumentError(&quot;read failed, IOBuffer is not readable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if offs+nel-1 &gt; length(a) || offs &lt; 1 || nel &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isbitstype(T) &amp;&amp; isa(a,Array)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nb = UInt(nel * sizeof(T))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        GC.@preserve a unsafe_read(from, pointer(a, offs), nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = offs:offs+nel-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            a[i] = read(to, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@inline function read(from::GenericIOBuffer, ::Type{UInt8})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    from.readable || throw(ArgumentError(&quot;read failed, IOBuffer is not readable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ptr = from.ptr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    size = from.size
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if ptr &gt; size
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(EOFError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds byte = from.data[ptr]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    from.ptr = ptr + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return byte
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function peek(from::GenericIOBuffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    from.readable || throw(ArgumentError(&quot;read failed, IOBuffer is not readable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if from.ptr &gt; from.size
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(EOFError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return from.data[from.ptr]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(from::GenericIOBuffer, ::Type{Ptr{T}}) where {T} = convert(Ptr{T}, read(from, UInt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isreadable(io::GenericIOBuffer) = io.readable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iswritable(io::GenericIOBuffer) = io.writable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># TODO: GenericIOBuffer is not iterable, so doesn&#39;t really have a length.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This should maybe be sizeof() instead.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#length(io::GenericIOBuffer) = (io.seekable ? io.size : bytesavailable(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">bytesavailable(io::GenericIOBuffer) = io.size - io.ptr + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">position(io::GenericIOBuffer) = io.ptr-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function skip(io::GenericIOBuffer, n::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    seekto = io.ptr + n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n &lt; 0 &amp;&amp; return seek(io, seekto-1) # Does error checking
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.ptr = min(seekto, io.size+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function seek(io::GenericIOBuffer, n::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !io.seekable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ismarked(io) || throw(ArgumentError(&quot;seek failed, IOBuffer is not seekable and is not marked&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n == io.mark || throw(ArgumentError(&quot;seek failed, IOBuffer is not seekable and n != mark&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # TODO: REPL.jl relies on the fact that this does not throw (by seeking past the beginning or end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #       of an GenericIOBuffer), so that would need to be fixed in order to throw an error here
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #(n &lt; 0 || n &gt; io.size) &amp;&amp; throw(ArgumentError(&quot;Attempted to seek outside IOBuffer boundaries.&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #io.ptr = n+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.ptr = max(min(n+1, io.size+1), 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function seekend(io::GenericIOBuffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.ptr = io.size+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function truncate(io::GenericIOBuffer, n::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.writable || throw(ArgumentError(&quot;truncate failed, IOBuffer is not writeable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.seekable || throw(ArgumentError(&quot;truncate failed, IOBuffer is not seekable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n &lt; 0 &amp;&amp; throw(ArgumentError(&quot;truncate failed, n bytes must be ≥ 0, got $n&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n &gt; io.maxsize &amp;&amp; throw(ArgumentError(&quot;truncate failed, $(n) bytes is exceeds IOBuffer maxsize $(io.maxsize)&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if n &gt; length(io.data)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        resize!(io.data, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.data[io.size+1:n] .= 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.size = n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.ptr = min(io.ptr, n+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ismarked(io) &amp;&amp; io.mark &gt; n &amp;&amp; unmark(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function compact(io::GenericIOBuffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.writable || throw(ArgumentError(&quot;compact failed, IOBuffer is not writeable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.seekable &amp;&amp; throw(ArgumentError(&quot;compact failed, IOBuffer is seekable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    local ptr::Int, bytes_to_move::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if ismarked(io) &amp;&amp; io.mark &lt; io.ptr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if io.mark == 0 return end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ptr = io.mark
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bytes_to_move = bytesavailable(io) + (io.ptr-io.mark)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ptr = io.ptr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bytes_to_move = bytesavailable(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    copyto!(io.data, 1, io.data, ptr, bytes_to_move)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.size -= ptr - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.ptr -= ptr - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.mark -= ptr - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@inline ensureroom(io::GenericIOBuffer, nshort::Int) = ensureroom(io, UInt(nshort))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-ensureroom-293"></a>
+              1 (2.38%) samples spent in ensureroom<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              unsafe_write
+              <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#Liobuffer-jl-0cfbb4403b3061764f48-line.html-402">line 402</a><br />
+            </div>
+            <span class="code">@inline function ensureroom(io::GenericIOBuffer, nshort::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-294"></a>294</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <span class="code">    io.writable || throw(ArgumentError(&quot;ensureroom failed, IOBuffer is not writeable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !io.seekable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nshort &gt;= 0 || throw(ArgumentError(&quot;ensureroom failed, requested number of bytes must be ≥ 0, got $nshort&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !ismarked(io) &amp;&amp; io.ptr &gt; 1 &amp;&amp; io.size &lt;= io.ptr - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            io.ptr = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            io.size = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            datastart = ismarked(io) ? io.mark : io.ptr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if (io.size+nshort &gt; io.maxsize) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                (datastart &gt; 4096 &amp;&amp; datastart &gt; io.size - io.ptr) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                (datastart &gt; 262144)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # apply somewhat arbitrary heuristics to decide when to destroy
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # old, read data to make more room for new data
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                compact(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = min(nshort + (io.append ? io.size : io.ptr-1), io.maxsize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if n &gt; length(io.data)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        resize!(io.data, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eof(io::GenericIOBuffer) = (io.ptr-1 == io.size)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@noinline function close(io::GenericIOBuffer{T}) where T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.readable = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.writable = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.seekable = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.size = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.maxsize = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.ptr = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.mark = -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if io.writable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        resize!(io.data, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isopen(io::GenericIOBuffer) = io.readable || io.writable || io.seekable || bytesavailable(io) &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    take!(b::IOBuffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Obtain the contents of an `IOBuffer` as an array, without copying. Afterwards, the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`IOBuffer` is reset to its initial state.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; io = IOBuffer();
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; write(io, &quot;JuliaLang is a GitHub organization.&quot;, &quot; It has many members.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">56
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; String(take!(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;JuliaLang is a GitHub organization. It has many members.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function take!(io::GenericIOBuffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ismarked(io) &amp;&amp; unmark(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if io.seekable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nbytes = io.size
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        data = copyto!(StringVector(nbytes), 1, io.data, 1, nbytes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nbytes = bytesavailable(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        data = read!(io,StringVector(nbytes))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if io.writable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        io.ptr = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        io.size = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return data
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function take!(io::IOBuffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ismarked(io) &amp;&amp; unmark(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if io.seekable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        data = io.data
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if io.writable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            maxsize = (io.maxsize == typemax(Int) ? 0 : min(length(io.data),io.maxsize))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            io.data = StringVector(maxsize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            data = copy(data)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        resize!(data,io.size)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nbytes = bytesavailable(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a = StringVector(nbytes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        data = read!(io, a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if io.writable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        io.ptr = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        io.size = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return data
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(to::GenericIOBuffer, from::GenericIOBuffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if to === from
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        from.ptr = from.size + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    written::Int = write_sub(to, from.data, from.ptr, bytesavailable(from))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    from.ptr += written
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return written
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-unsafe_write-401"></a>
+              3 (7.14%) samples spent in unsafe_write<br />
+              0 (ex.),
+              1 (33.33%) (incl.)
+              when called from
+              unsafe_write
+              <a href="io-jl-7061b86fd468f75a7694-line.html#Lio-jl-7061b86fd468f75a7694-line.html-509">line 509</a><br />
+              1 (100.00%) (ex.),
+              2 (66.67%) (incl.)
+              when called from
+              write
+              <a href="gcutils-jl-226c838c61f0891410cd-line.html#Lgcutils-jl-226c838c61f0891410cd-line.html-87">line 87</a><br />
+            </div>
+            <span class="code">function unsafe_write(to::GenericIOBuffer, p::Ptr{UInt8}, nb::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-402"></a>402</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-ensureroom-293">ensureroom</a><br />
+            </div>
+            <span class="code">    ensureroom(to, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-403"></a>403</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <span class="code">    ptr = (to.append ? to.size+1 : to.ptr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    written = Int(min(nb, length(to.data) - ptr + 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    towrite = written
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    d = to.data
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-407"></a>407</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="operators-jl-714ade2c8745dd55a410-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-operators-jl-286">&gt;</a><br />
+            </div>
+            <span class="code">    while towrite &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds d[ptr] = unsafe_load(p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ptr += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        p += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        towrite -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    to.size = max(to.size, ptr - 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !to.append
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        to.ptr += written
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return written
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write_sub(to::GenericIOBuffer, a::AbstractArray{UInt8}, offs, nel)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert !has_offset_axes(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if offs+nel-1 &gt; length(a) || offs &lt; 1 || nel &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GC.@preserve a unsafe_write(to, pointer(a, offs), UInt(nel))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@inline function write(to::GenericIOBuffer, a::UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ensureroom(to, UInt(1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ptr = (to.append ? to.size+1 : to.ptr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if ptr &gt; to.maxsize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        to.data[ptr] = a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    to.size = max(to.size, ptr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !to.append
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        to.ptr += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return sizeof(UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readbytes!(io::GenericIOBuffer, b::Array{UInt8}, nb=length(b)) = readbytes!(io, b, Int(nb))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readbytes!(io::GenericIOBuffer, b::Array{UInt8}, nb::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nr = min(nb, bytesavailable(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if length(b) &lt; nr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        resize!(b, nr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    read_sub(io, b, 1, nr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(io::GenericIOBuffer) = read!(io,StringVector(bytesavailable(io)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readavailable(io::GenericIOBuffer) = read(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(io::GenericIOBuffer, nb::Integer) = read!(io,StringVector(min(nb, bytesavailable(io))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function occursin(delim::UInt8, buf::IOBuffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = pointer(buf.data, buf.ptr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    q = GC.@preserve buf ccall(:memchr,Ptr{UInt8},(Ptr{UInt8},Int32,Csize_t),p,delim,bytesavailable(buf))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return q != C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function occursin(delim::UInt8, buf::GenericIOBuffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    data = buf.data
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = buf.ptr:buf.size
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds b = data[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        b == delim &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readuntil(io::GenericIOBuffer, delim::UInt8; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lb = 70
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    A = StringVector(lb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nread = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nout = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    data = io.data
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = io.ptr : io.size
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds b = data[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nread += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if keep || b != delim
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            nout += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if nout &gt; lb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                lb = nout*2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                resize!(A, lb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @inbounds A[nout] = b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if b == delim
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.ptr += nread
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if lb != nout
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        resize!(A, nout)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    A
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># copy-free crc32c of IOBuffer:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _crc32c(io::IOBuffer, nb::Integer, crc::UInt32=0x00000000)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nb &lt; 0 &amp;&amp; throw(ArgumentError(&quot;number of bytes to checksum must be ≥ 0&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.readable || throw(ArgumentError(&quot;read failed, IOBuffer is not readable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = min(nb, bytesavailable(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n == 0 &amp;&amp; return crc
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    crc = GC.@preserve io unsafe_crc32c(pointer(io.data, io.ptr), n, crc)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.ptr += n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return crc
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Liobuffer-jl-0cfbb4403b3061764f48-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_crc32c(io::IOBuffer, crc::UInt32=0x00000000) = _crc32c(io, bytesavailable(io), crc)
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/ir-jl-bebdc9bf648f41024d37-line.html b/profiling/statprof/ir-jl-bebdc9bf648f41024d37-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..9d9ba2f885f1a5036d97ce0faa75ffa25a2cce21
--- /dev/null
+++ b/profiling/statprof/ir-jl-bebdc9bf648f41024d37-line.html
@@ -0,0 +1,10539 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./compiler/ssair/ir.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on ons  9 okt 2019 08:41:28</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@inline isexpr(@nospecialize(stmt), head::Symbol) = isa(stmt, Expr) &amp;&amp; stmt.head === head
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval Core.UpsilonNode() = $(Expr(:new, Core.UpsilonNode))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Core.PhiNode() = Core.PhiNode(Any[], Any[])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct Argument
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct GotoIfNot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cond::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dest::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GotoIfNot(@nospecialize(cond), dest::Int) = new(cond, dest)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct ReturnNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    val::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ReturnNode(@nospecialize(val)) = new(val)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # unassigned val indicates unreachable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ReturnNode() = new()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Like UnitRange{Int}, but can handle the `last` field, being temporarily
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt; first (this can happen during compacting)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct StmtRange &lt;: AbstractUnitRange{Int}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    first::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    last::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">first(r::StmtRange) = r.first
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">last(r::StmtRange) = r.last
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iterate(r::StmtRange, state=0) = (r.last - r.first &lt; state) ? nothing : (r.first + state, state + 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">StmtRange(range::UnitRange{Int}) = StmtRange(first(range), last(range))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct BasicBlock
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stmts::StmtRange
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    preds::Vector{Int}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    succs::Vector{Int}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function BasicBlock(stmts::StmtRange)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return BasicBlock(stmts, Int[], Int[])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function BasicBlock(old_bb, stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return BasicBlock(stmts, old_bb.preds, old_bb.succs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copy(bb::BasicBlock) = BasicBlock(bb.stmts, copy(bb.preds), copy(bb.succs))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct CFG
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    blocks::Vector{BasicBlock}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    index::Vector{Int} # map from instruction =&gt; basic-block number
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                       # TODO: make this O(1) instead of O(log(n_blocks))?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copy(c::CFG) = CFG(copy(c.blocks), copy(c.index))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function block_for_inst(index::Vector{Int}, inst::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return searchsortedfirst(index, inst, lt=(&lt;=))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">block_for_inst(cfg::CFG, inst::Int) = block_for_inst(cfg.index, inst)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function basic_blocks_starts(stmts::Vector{Any})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    jump_dests = BitSet()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(jump_dests, 1) # function entry point
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # First go through and compute jump destinations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for idx in 1:length(stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stmt = stmts[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Terminators
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(stmt, GotoIfNot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(jump_dests, idx+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(jump_dests, stmt.dest)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(stmt, ReturnNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            idx &lt; length(stmts) &amp;&amp; push!(jump_dests, idx+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(stmt, GotoNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # This is a fake dest to force the next stmt to start a bb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            idx &lt; length(stmts) &amp;&amp; push!(jump_dests, idx+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(jump_dests, stmt.label)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(stmt, Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if stmt.head === :leave
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # :leave terminates a BB
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(jump_dests, idx+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif stmt.head == :enter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # :enter starts/ends a BB
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(jump_dests, idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(jump_dests, idx+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # The catch block is a jump dest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(jump_dests, stmt.args[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif stmt.head === :gotoifnot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # also tolerate expr form of IR
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(jump_dests, idx+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(jump_dests, stmt.args[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif stmt.head === :return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # also tolerate expr form of IR
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # This is a fake dest to force the next stmt to start a bb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                idx &lt; length(stmts) &amp;&amp; push!(jump_dests, idx+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # and add add one more basic block start after the last statement
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = length(stmts):-1:1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if stmts[i] != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(jump_dests, i+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return jump_dests
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function compute_basic_blocks(stmts::Vector{Any})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bb_starts = basic_blocks_starts(stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Compute ranges
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pop!(bb_starts, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    basic_block_index = collect(bb_starts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    blocks = BasicBlock[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sizehint!(blocks, length(basic_block_index))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    let first = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for last in basic_block_index
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(blocks, BasicBlock(StmtRange(first, last - 1)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            first = last
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Compute successors/predecessors
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (num, b) in enumerate(blocks)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        terminator = stmts[last(b.stmts)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(terminator, ReturnNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # return never has any successors
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(terminator, GotoNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            block′ = block_for_inst(basic_block_index, terminator.label)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(blocks[block′].preds, num)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(b.succs, block′)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Conditional Branch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(terminator, GotoIfNot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            block′ = block_for_inst(basic_block_index, terminator.dest)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if block′ == num + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # This GotoIfNot acts like a noop - treat it as such.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # We will drop it during SSA renaming
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(blocks[block′].preds, num)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(b.succs, block′)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(terminator, Expr) &amp;&amp; terminator.head == :enter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # :enter gets a virtual edge to the exception handler and
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # the exception handler gets a virtual edge from outside
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # the function.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # See the devdocs on exception handling in SSA form (or
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # bug Keno to write them, if you&#39;re reading this and they
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # don&#39;t exist)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            block′ = block_for_inst(basic_block_index, terminator.args[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(blocks[block′].preds, num)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(blocks[block′].preds, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(b.succs, block′)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # statement fall-through
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if num + 1 &lt;= length(blocks)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(blocks[num + 1].preds, num)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(b.succs, num + 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return CFG(blocks, basic_block_index)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function first_insert_for_bb(code, cfg::CFG, block::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for idx in cfg.blocks[block].stmts
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stmt = code[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isa(stmt, PhiNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct NewNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Insertion position (interpretation depends on which array this is in)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pos::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Place the new instruction after this instruction (but in the same BB if this is an implicit terminator)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    attach_after::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # The type of the instruction to insert
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typ::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # The node itself
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    node::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # The index into the line number table of this entry
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    line::Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    NewNode(pos::Int, attach_after::Bool, @nospecialize(typ), @nospecialize(node), line::Int32) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new(pos, attach_after, typ, node, line)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct IRCode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stmts::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    types::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lines::Vector{Int32}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    flags::Vector{UInt8}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    argtypes::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    spvals::SimpleVector
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    linetable::Vector{LineInfoNode}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cfg::CFG
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    new_nodes::Vector{NewNode}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    meta::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function IRCode(stmts::Vector{Any}, types::Vector{Any}, lines::Vector{Int32}, flags::Vector{UInt8},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cfg::CFG, linetable::Vector{LineInfoNode}, argtypes::Vector{Any}, meta::Vector{Any},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            spvals::SimpleVector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return new(stmts, types, lines, flags, argtypes, spvals, linetable, cfg, NewNode[], meta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function IRCode(ir::IRCode, stmts::Vector{Any}, types::Vector{Any}, lines::Vector{Int32}, flags::Vector{UInt8},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cfg::CFG, new_nodes::Vector{NewNode})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return new(stmts, types, lines, flags, ir.argtypes, ir.spvals, ir.linetable, cfg, new_nodes, ir.meta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">copy(code::IRCode) = IRCode(code, copy(code.stmts), copy(code.types),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    copy(code.lines), copy(code.flags), copy(code.cfg), copy(code.new_nodes))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(x::IRCode, s::SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if s.id &lt;= length(x.stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return x.stmts[s.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return x.new_nodes[s.id - length(x.stmts)].node
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function setindex!(x::IRCode, @nospecialize(repl), s::SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert s.id &lt;= length(x.stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.stmts[s.id] = repl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct OldSSAValue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    id::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct NewSSAValue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    id::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const AnySSAValue = Union{SSAValue, OldSSAValue, NewSSAValue}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct UseRef
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stmt::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    op::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    UseRef(@nospecialize(a)) = new(a, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct UseRefIterator
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    use::Tuple{UseRef, Nothing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    relevant::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    UseRefIterator(@nospecialize(a), relevant::Bool) = new((UseRef(a), nothing), relevant)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getindex(it::UseRefIterator) = it.use[1].stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># TODO: stack-allocation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#struct UseRef
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    urs::UseRefIterator
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#    use::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct OOBToken
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct UndefToken
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(x::UseRef)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stmt = x.stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(stmt, Expr) &amp;&amp; stmt.head === :(=)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rhs = stmt.args[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(rhs, Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if is_relevant_expr(rhs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                x.op &gt; length(rhs.args) &amp;&amp; return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return rhs.args[x.op]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op == 1 || return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return rhs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, Expr) # @assert is_relevant_expr(stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op &gt; length(stmt.args) &amp;&amp; return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return stmt.args[x.op]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, GotoIfNot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op == 1 || return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return stmt.cond
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, ReturnNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isdefined(stmt, :val) || return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op == 1 || return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return stmt.val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, PiNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isdefined(stmt, :val) || return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op == 1 || return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return stmt.val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, UpsilonNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isdefined(stmt, :val) || return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op == 1 || return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return stmt.val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, PhiNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op &gt; length(stmt.values) &amp;&amp; return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isassigned(stmt.values, x.op) || return UndefToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return stmt.values[x.op]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, PhiCNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op &gt; length(stmt.values) &amp;&amp; return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isassigned(stmt.values, x.op) || return UndefToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return stmt.values[x.op]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return OOBToken()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function is_relevant_expr(e::Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return e.head in (:call, :invoke, :new, :(=), :(&amp;),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                      :gc_preserve_begin, :gc_preserve_end,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                      :foreigncall, :isdefined, :copyast,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                      :undefcheck, :throw_undef_if_not,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                      :cfunction, :method,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                      #=legacy IR format support=# :gotoifnot, :return)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function setindex!(x::UseRef, @nospecialize(v))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stmt = x.stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(stmt, Expr) &amp;&amp; stmt.head === :(=)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rhs = stmt.args[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(rhs, Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if is_relevant_expr(rhs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                x.op &gt; length(rhs.args) &amp;&amp; throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                rhs.args[x.op] = v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op == 1 || throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stmt.args[2] = v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, Expr) # @assert is_relevant_expr(stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op &gt; length(stmt.args) &amp;&amp; throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stmt.args[x.op] = v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, GotoIfNot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op == 1 || throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.stmt = GotoIfNot(v, stmt.dest)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, ReturnNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op == 1 || throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.stmt = typeof(stmt)(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, UpsilonNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op == 1 || throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.stmt = typeof(stmt)(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, PiNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op == 1 || throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.stmt = typeof(stmt)(v, stmt.typ)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, PhiNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op &gt; length(stmt.values) &amp;&amp; throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isassigned(stmt.values, x.op) || throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stmt.values[x.op] = v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, PhiCNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.op &gt; length(stmt.values) &amp;&amp; throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isassigned(stmt.values, x.op) || throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stmt.values[x.op] = v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(BoundsError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function userefs(@nospecialize(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    relevant = (isa(x, Expr) &amp;&amp; is_relevant_expr(x)) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isa(x, GotoIfNot) || isa(x, ReturnNode) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isa(x, PiNode) || isa(x, PhiNode) || isa(x, PhiCNode) || isa(x, UpsilonNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return UseRefIterator(x, relevant)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iterate(it::UseRefIterator) = (it.use[1].op = 0; iterate(it, nothing))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@noinline function iterate(it::UseRefIterator, ::Nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    it.relevant || return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    use = it.use[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        use.op += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y = use[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y === OOBToken() &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y === UndefToken() || return it.use
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This function is used from the show code, which may have a different
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># `push!`/`used` type since it&#39;s in Base.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function scan_ssa_use!(push!, used, @nospecialize(stmt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(stmt, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(used, stmt.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for useref in userefs(stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        val = useref[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(used, val.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Manually specialized copy of the above with push! === Compiler.push!
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function scan_ssa_use!(used::IdSet, @nospecialize(stmt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(stmt, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(used, stmt.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for useref in userefs(stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        val = useref[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(used, val.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function ssamap(f, @nospecialize(stmt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    urs = userefs(stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for op in urs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        val = op[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            op[] = f(val)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return urs[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function foreachssa(f, @nospecialize(stmt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for op in userefs(stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        val = op[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            f(val)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function insert_node!(ir::IRCode, pos::Int, @nospecialize(typ), @nospecialize(val), attach_after::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    line = ir.lines[pos]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(ir.new_nodes, NewNode(pos, attach_after, typ, val, line))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return SSAValue(length(ir.stmts) + length(ir.new_nodes))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># For bootstrapping
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function my_sortperm(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = Vector{Int}(undef, length(v))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:length(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        p[i] = i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sort!(p, Sort.DEFAULT_UNSTABLE, Order.Perm(Sort.Forward,v))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct IncrementalCompact
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ir::IRCode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result_types::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result_lines::Vector{Int32}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result_flags::Vector{UInt8}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result_bbs::Vector{BasicBlock}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ssa_rename::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    used_ssas::Vector{Int}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    late_fixup::Vector{Int}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # This could be Stateful, but bootstrapping doesn&#39;t like that
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    perm::Vector{Int}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    new_nodes_idx::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # This supports insertion while compacting
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    new_new_nodes::Vector{NewNode}  # New nodes that were before the compaction point at insertion time
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # TODO: Switch these two to a min-heap of some sort
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pending_nodes::Vector{NewNode}  # New nodes that were after the compaction point at insertion time
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pending_perm::Vector{Int}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # State
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    idx::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result_idx::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    active_result_bb::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    renamed_new_nodes::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function IncrementalCompact(code::IRCode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Sort by position with attach after nodes affter regular ones
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        perm = my_sortperm(Int[(code.new_nodes[i].pos*2 + Int(code.new_nodes[i].attach_after)) for i in 1:length(code.new_nodes)])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_len = length(code.stmts) + length(code.new_nodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result = Array{Any}(undef, new_len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result_types = Array{Any}(undef, new_len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result_lines = fill(Int32(0), new_len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result_flags = fill(0x00, new_len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        used_ssas = fill(0, new_len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ssa_rename = Any[SSAValue(i) for i = 1:new_len]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        late_fixup = Vector{Int}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_new_nodes = NewNode[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        pending_nodes = NewNode[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        pending_perm = Int[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return new(code, result, result_types, result_lines, result_flags, code.cfg.blocks, ssa_rename, used_ssas, late_fixup, perm, 1,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            new_new_nodes, pending_nodes, pending_perm,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            1, 1, 1, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # For inlining
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function IncrementalCompact(parent::IncrementalCompact, code::IRCode, result_offset)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        perm = my_sortperm(Int[code.new_nodes[i].pos for i in 1:length(code.new_nodes)])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_len = length(code.stmts) + length(code.new_nodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ssa_rename = Any[SSAValue(i) for i = 1:new_len]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        used_ssas = fill(0, new_len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        late_fixup = Vector{Int}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_new_nodes = NewNode[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        pending_nodes = NewNode[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        pending_perm = Int[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return new(code, parent.result, parent.result_types, parent.result_lines, parent.result_flags,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            parent.result_bbs, ssa_rename, parent.used_ssas,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            late_fixup, perm, 1,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            new_new_nodes, pending_nodes, pending_perm,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            1, result_offset, parent.active_result_bb, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct TypesView
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ir::Union{IRCode, IncrementalCompact}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">types(ir::Union{IRCode, IncrementalCompact}) = TypesView(ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(compact::IncrementalCompact, idx::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if idx &lt; compact.result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return compact.result[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return compact.ir.stmts[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(compact::IncrementalCompact, ssa::SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert ssa.id &lt; compact.result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return compact.result[ssa.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(compact::IncrementalCompact, ssa::OldSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    id = ssa.id
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if id &lt;= length(compact.ir.stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return compact.ir.stmts[id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    id -= length(compact.ir.stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if id &lt;= length(compact.ir.new_nodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return compact.ir.new_nodes[id].node
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    id -= length(compact.ir.new_nodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return compact.pending_nodes[id].node
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(compact::IncrementalCompact, ssa::NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return compact.new_new_nodes[ssa.id].node
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function count_added_node!(compact::IncrementalCompact, @nospecialize(v))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    needs_late_fixup = isa(v, NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(v, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.used_ssas[v.id] += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for ops in userefs(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            val = ops[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(val, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                compact.used_ssas[val.id] += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif isa(val, NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                needs_late_fixup = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    needs_late_fixup
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function resort_pending!(compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sort!(compact.pending_perm, DEFAULT_STABLE, Order.By(x-&gt;compact.pending_nodes[x].pos))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function insert_node!(compact::IncrementalCompact, before, @nospecialize(typ), @nospecialize(val), attach_after::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(before, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if before.id &lt; compact.result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            count_added_node!(compact, val)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            line = compact.result_lines[before.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(compact.new_new_nodes, NewNode(before.id, attach_after, typ, val, line))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return NewSSAValue(length(compact.new_new_nodes))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            line = compact.ir.lines[before.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(compact.pending_nodes, NewNode(before.id, attach_after, typ, val, line))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(compact.pending_perm, length(compact.pending_nodes))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            resort_pending!(compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            os = OldSSAValue(length(compact.ir.stmts) + length(compact.ir.new_nodes) + length(compact.pending_nodes))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(compact.ssa_rename, os)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(compact.used_ssas, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return os
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(before, OldSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        pos = before.id
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if pos &gt; length(compact.ir.stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            #@assert attach_after
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            entry = compact.pending_nodes[pos - length(compact.ir.stmts) - length(compact.ir.new_nodes)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            pos, attach_after = entry.pos, entry.attach_after
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        line = compact.ir.lines[pos]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(compact.pending_nodes, NewNode(pos, attach_after, typ, val, line))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(compact.pending_perm, length(compact.pending_nodes))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        resort_pending!(compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        os = OldSSAValue(length(compact.ir.stmts) + length(compact.ir.new_nodes) + length(compact.pending_nodes))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(compact.ssa_rename, os)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(compact.used_ssas, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return os
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(before, NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        before_entry = compact.new_new_nodes[before.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(compact.new_new_nodes, NewNode(before_entry.pos, attach_after, typ, val, before_entry.line))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return NewSSAValue(length(compact.new_new_nodes))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;Unsupported&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function insert_node_here!(compact::IncrementalCompact, @nospecialize(val), @nospecialize(typ), ltable_idx::Int32, reverse_affinity::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if compact.result_idx &gt; length(compact.result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @assert compact.result_idx == length(compact.result) + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        resize!(compact, compact.result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-603"></a>603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    refinish = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if compact.result_idx == first(compact.result_bbs[compact.active_result_bb].stmts) &amp;&amp; reverse_affinity
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.active_result_bb -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        refinish = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result[compact.result_idx] = val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_types[compact.result_idx] = typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-611"></a>611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_lines[compact.result_idx] = ltable_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_flags[compact.result_idx] = 0x00
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if count_added_node!(compact, val)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(compact.late_fixup, compact.result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ret = SSAValue(compact.result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_idx += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    refinish &amp;&amp; finish_current_bb!(compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(view::TypesView, v::OldSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    id = v.id
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if id &lt;= length(view.ir.ir.types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return view.ir.ir.types[id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    id -= length(view.ir.ir.types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if id &lt;= length(view.ir.ir.new_nodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return view.ir.ir.new_nodes[id].typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    id -= length(view.ir.ir.new_nodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return view.ir.pending_nodes[id].typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function setindex!(compact::IncrementalCompact, @nospecialize(v), idx::SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert idx.id &lt; compact.result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (compact.result[idx.id] === v) &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Kill count for current uses
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for ops in userefs(compact.result[idx.id])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        val = ops[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @assert compact.used_ssas[val.id] &gt;= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            compact.used_ssas[val.id] -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result[idx.id] = v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Add count for new use
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-648"></a>648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if count_added_node!(compact, v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-649"></a>649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(compact.late_fixup, idx.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-650"></a>650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-651"></a>651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-652"></a>652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-653"></a>653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function setindex!(compact::IncrementalCompact, @nospecialize(v), idx::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-654"></a>654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if idx &lt; compact.result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-655"></a>655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact[SSAValue(idx)] = v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-656"></a>656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-657"></a>657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.ir.stmts[idx] = v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-658"></a>658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-659"></a>659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-660"></a>660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-661"></a>661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-662"></a>662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(view::TypesView, idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-663"></a>663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(idx, SSAValue) &amp;&amp; (idx = idx.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-664"></a>664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(view.ir, IncrementalCompact) &amp;&amp; idx &lt; view.ir.result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-665"></a>665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return view.ir.result_types[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-666"></a>666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(view.ir, IncrementalCompact) &amp;&amp; view.ir.renamed_new_nodes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-667"></a>667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if idx &lt;= length(view.ir.result_types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-668"></a>668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return view.ir.result_types[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-669"></a>669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-670"></a>670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return view.ir.new_new_nodes[idx - length(view.ir.result_types)].typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-671"></a>671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-672"></a>672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-673"></a>673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ir = isa(view.ir, IncrementalCompact) ? view.ir.ir : view.ir
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-674"></a>674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if idx &lt;= length(ir.types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-675"></a>675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return ir.types[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-676"></a>676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-677"></a>677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return ir.new_nodes[idx - length(ir.types)].typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-678"></a>678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-679"></a>679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-680"></a>680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-681"></a>681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-682"></a>682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(view::TypesView, idx::NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-683"></a>683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(view.ir, IncrementalCompact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-684"></a>684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact = view.ir
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-685"></a>685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.new_new_nodes[idx.id].typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-686"></a>686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-687"></a>687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        view.ir.new_nodes[idx.id].typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-688"></a>688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-689"></a>689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-690"></a>690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-691"></a>691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function process_phinode_values(old_values::Vector{Any}, late_fixup::Vector{Int},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-692"></a>692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                processed_idx::Int, result_idx::Int,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-693"></a>693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                ssa_rename::Vector{Any}, used_ssas::Vector{Int},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-694"></a>694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                do_rename_ssa::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-695"></a>695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    values = Vector{Any}(undef, length(old_values))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-696"></a>696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:length(old_values)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-697"></a>697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isassigned(old_values, i) || continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-698"></a>698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        val = old_values[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-699"></a>699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-700"></a>700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if do_rename_ssa
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-701"></a>701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if val.id &gt; processed_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-702"></a>702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    push!(late_fixup, result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-703"></a>703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    val = OldSSAValue(val.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-704"></a>704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-705"></a>705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    val = renumber_ssa2(val, ssa_rename, used_ssas, do_rename_ssa)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-706"></a>706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-707"></a>707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-708"></a>708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                used_ssas[val.id] += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-709"></a>709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-710"></a>710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(val, OldSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-711"></a>711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if val.id &gt; processed_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-712"></a>712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(late_fixup, result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-713"></a>713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-714"></a>714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # Always renumber these. do_rename_ssa applies only to actual SSAValues
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-715"></a>715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                val = renumber_ssa2(SSAValue(val.id), ssa_rename, used_ssas, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-716"></a>716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-717"></a>717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(val, NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-718"></a>718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(late_fixup, result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-719"></a>719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-720"></a>720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        values[i] = val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-721"></a>721</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-722"></a>722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return values
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-723"></a>723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-724"></a>724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-725"></a>725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function renumber_ssa2(val::SSAValue, ssanums::Vector{Any}, used_ssa::Vector{Int}, do_rename_ssa::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-726"></a>726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    id = val.id
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-727"></a>727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if id &gt; length(ssanums)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-728"></a>728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-729"></a>729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-730"></a>730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if do_rename_ssa
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-731"></a>731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        val = ssanums[id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-732"></a>732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-733"></a>733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(val, SSAValue) &amp;&amp; used_ssa !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-734"></a>734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        used_ssa[val.id] += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-735"></a>735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-736"></a>736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-737"></a>737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-738"></a>738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-739"></a>739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function renumber_ssa2!(@nospecialize(stmt), ssanums::Vector{Any}, used_ssa::Vector{Int}, late_fixup::Vector{Int}, result_idx::Int, do_rename_ssa::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-740"></a>740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    urs = userefs(stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-741"></a>741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for op in urs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-742"></a>742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        val = op[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-743"></a>743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, OldSSAValue) || isa(val, NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-744"></a>744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(late_fixup, result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-745"></a>745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-746"></a>746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-747"></a>747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            val = renumber_ssa2(val, ssanums, used_ssa, do_rename_ssa)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-748"></a>748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-749"></a>749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, OldSSAValue) || isa(val, NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-750"></a>750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(late_fixup, result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-751"></a>751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-752"></a>752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        op[] = val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-753"></a>753</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-754"></a>754</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return urs[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-755"></a>755</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-756"></a>756</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-757"></a>757</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function process_node!(result::Vector{Any}, result_idx::Int, ssa_rename::Vector{Any},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-758"></a>758</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        late_fixup::Vector{Int}, used_ssas::Vector{Int}, @nospecialize(stmt),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-759"></a>759</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        idx::Int, processed_idx::Int, do_rename_ssa::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-760"></a>760</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ssa_rename[idx] = SSAValue(result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-761"></a>761</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if stmt === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-762"></a>762</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ssa_rename[idx] = stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-763"></a>763</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, OldSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-764"></a>764</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ssa_rename[idx] = ssa_rename[stmt.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-765"></a>765</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, GotoNode) || isa(stmt, GlobalRef)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-766"></a>766</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result[result_idx] = stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-767"></a>767</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result_idx += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-768"></a>768</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, Expr) || isa(stmt, PiNode) || isa(stmt, GotoIfNot) || isa(stmt, ReturnNode) || isa(stmt, UpsilonNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-769"></a>769</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result[result_idx] = renumber_ssa2!(stmt, ssa_rename, used_ssas, late_fixup, result_idx, do_rename_ssa)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-770"></a>770</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result_idx += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-771"></a>771</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, PhiNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-772"></a>772</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result[result_idx] = PhiNode(stmt.edges, process_phinode_values(stmt.values, late_fixup, processed_idx, result_idx, ssa_rename, used_ssas, do_rename_ssa))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-773"></a>773</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result_idx += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-774"></a>774</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, PhiCNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-775"></a>775</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result[result_idx] = PhiCNode(process_phinode_values(stmt.values, late_fixup, processed_idx, result_idx, ssa_rename, used_ssas, do_rename_ssa))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-776"></a>776</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result_idx += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-777"></a>777</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-778"></a>778</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # identity assign, replace uses of this ssa value with its result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-779"></a>779</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if do_rename_ssa
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-780"></a>780</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stmt = ssa_rename[stmt.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-781"></a>781</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-782"></a>782</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ssa_rename[idx] = stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-783"></a>783</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-784"></a>784</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Constant assign, replace uses of this ssa value with its result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-785"></a>785</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ssa_rename[idx] = stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-786"></a>786</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-787"></a>787</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-788"></a>788</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-789"></a>789</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function process_node!(compact::IncrementalCompact, result_idx::Int, @nospecialize(stmt), idx::Int, processed_idx::Int, do_rename_ssa::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-790"></a>790</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return process_node!(compact.result, result_idx, compact.ssa_rename,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-791"></a>791</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.late_fixup, compact.used_ssas, stmt, idx, processed_idx,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-792"></a>792</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        do_rename_ssa)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-793"></a>793</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-794"></a>794</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-795"></a>795</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function resize!(compact::IncrementalCompact, nnewnodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-796"></a>796</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    old_length = length(compact.result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-797"></a>797</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(compact.result, nnewnodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-798"></a>798</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(compact.result_types, nnewnodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-799"></a>799</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(compact.result_lines, nnewnodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-800"></a>800</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(compact.result_flags, nnewnodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-801"></a>801</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(compact.used_ssas, nnewnodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-802"></a>802</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i in (old_length+1):nnewnodes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-803"></a>803</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.used_ssas[i] = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-804"></a>804</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-805"></a>805</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-806"></a>806</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-807"></a>807</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-808"></a>808</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function finish_current_bb!(compact, old_result_idx=compact.result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-809"></a>809</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bb = compact.result_bbs[compact.active_result_bb]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-810"></a>810</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # If this was the last statement in the BB and we decided to skip it, insert a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-811"></a>811</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # dummy `nothing` node, to prevent changing the structure of the CFG
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-812"></a>812</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if compact.result_idx == first(bb.stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-813"></a>813</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        length(compact.result) &lt; old_result_idx &amp;&amp; resize!(compact, old_result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-814"></a>814</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.result[old_result_idx] = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-815"></a>815</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.result_types[old_result_idx] = Nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-816"></a>816</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.result_lines[old_result_idx] = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-817"></a>817</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.result_flags[old_result_idx] = 0x00
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-818"></a>818</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.result_idx = old_result_idx + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-819"></a>819</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-820"></a>820</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_bbs[compact.active_result_bb] = BasicBlock(bb, StmtRange(first(bb.stmts), compact.result_idx-1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-821"></a>821</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.active_result_bb += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-822"></a>822</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if compact.active_result_bb &lt;= length(compact.result_bbs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-823"></a>823</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_bb = compact.result_bbs[compact.active_result_bb]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-824"></a>824</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.result_bbs[compact.active_result_bb] = BasicBlock(new_bb,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-825"></a>825</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            StmtRange(compact.result_idx, last(new_bb.stmts)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-826"></a>826</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-827"></a>827</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-828"></a>828</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-829"></a>829</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function attach_after_stmt_after(compact::IncrementalCompact, idx::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-830"></a>830</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.new_nodes_idx &gt; length(compact.perm) &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-831"></a>831</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    entry = compact.ir.new_nodes[compact.perm[compact.new_nodes_idx]]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-832"></a>832</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    entry.pos == idx &amp;&amp; entry.attach_after
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-833"></a>833</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-834"></a>834</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-835"></a>835</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function process_newnode!(compact, new_idx, new_node_entry, idx, active_bb, do_rename_ssa)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-836"></a>836</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    old_result_idx = compact.result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-837"></a>837</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bb = compact.ir.cfg.blocks[active_bb]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-838"></a>838</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_types[old_result_idx] = new_node_entry.typ
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-839"></a>839</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_lines[old_result_idx] = new_node_entry.line
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-840"></a>840</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result_idx = process_node!(compact, old_result_idx, new_node_entry.node, new_idx, idx - 1, do_rename_ssa)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-841"></a>841</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_idx = result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-842"></a>842</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # If this instruction has reverse affinity and we were at the end of a basic block,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-843"></a>843</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # finish it now.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-844"></a>844</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if new_node_entry.attach_after &amp;&amp; idx == last(bb.stmts)+1 &amp;&amp; !attach_after_stmt_after(compact, idx-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-845"></a>845</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        active_bb += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-846"></a>846</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finish_current_bb!(compact, old_result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-847"></a>847</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-848"></a>848</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (old_result_idx == result_idx) &amp;&amp; return iterate(compact, (idx, active_bb))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-849"></a>849</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Pair{Int, Any}(old_result_idx, compact.result[old_result_idx]), (compact.idx, active_bb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-850"></a>850</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-851"></a>851</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-852"></a>852</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function iterate(compact::IncrementalCompact, (idx, active_bb)::Tuple{Int, Int}=(compact.idx, 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-853"></a>853</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    old_result_idx = compact.result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-854"></a>854</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if idx &gt; length(compact.ir.stmts) &amp;&amp; (compact.new_nodes_idx &gt; length(compact.perm))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-855"></a>855</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-856"></a>856</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-857"></a>857</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if length(compact.result) &lt; old_result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-858"></a>858</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        resize!(compact, old_result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-859"></a>859</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-860"></a>860</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bb = compact.ir.cfg.blocks[active_bb]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-861"></a>861</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if compact.new_nodes_idx &lt;= length(compact.perm) &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-862"></a>862</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (entry =  compact.ir.new_nodes[compact.perm[compact.new_nodes_idx]];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-863"></a>863</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">         entry.attach_after ? entry.pos == idx - 1 : entry.pos == idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-864"></a>864</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_idx = compact.perm[compact.new_nodes_idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-865"></a>865</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.new_nodes_idx += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-866"></a>866</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_node_entry = compact.ir.new_nodes[new_idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-867"></a>867</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_idx += length(compact.ir.stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-868"></a>868</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return process_newnode!(compact, new_idx, new_node_entry, idx, active_bb, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-869"></a>869</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif !isempty(compact.pending_perm) &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-870"></a>870</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (entry = compact.pending_nodes[compact.pending_perm[1]];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-871"></a>871</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">         entry.attach_after ? entry.pos == idx - 1 : entry.pos == idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-872"></a>872</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_idx = popfirst!(compact.pending_perm)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-873"></a>873</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_node_entry = compact.pending_nodes[new_idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-874"></a>874</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_idx += length(compact.ir.stmts) + length(compact.ir.new_nodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-875"></a>875</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return process_newnode!(compact, new_idx, new_node_entry, idx, active_bb, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-876"></a>876</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-877"></a>877</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # This will get overwritten in future iterations if
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-878"></a>878</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # result_idx is not, incremented, but that&#39;s ok and expected
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-879"></a>879</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_types[old_result_idx] = compact.ir.types[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-880"></a>880</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_lines[old_result_idx] = compact.ir.lines[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-881"></a>881</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_flags[old_result_idx] = compact.ir.flags[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-882"></a>882</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result_idx = process_node!(compact, old_result_idx, compact.ir.stmts[idx], idx, idx, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-883"></a>883</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stmt_if_any = old_result_idx == result_idx ? nothing : compact.result[old_result_idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-884"></a>884</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_idx = result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-885"></a>885</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if idx == last(bb.stmts) &amp;&amp; !attach_after_stmt_after(compact, idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-886"></a>886</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        active_bb += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-887"></a>887</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finish_current_bb!(compact, old_result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-888"></a>888</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-889"></a>889</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (old_result_idx == compact.result_idx) &amp;&amp; return iterate(compact, (idx + 1, active_bb))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-890"></a>890</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.idx = idx + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-891"></a>891</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isassigned(compact.result, old_result_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-892"></a>892</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @assert false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-893"></a>893</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-894"></a>894</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Pair{Int, Any}(old_result_idx, compact.result[old_result_idx]), (compact.idx, active_bb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-895"></a>895</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-896"></a>896</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-897"></a>897</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-ir-jl-maybe_erase_unused-897"></a>
+              1 (2.70%) samples spent in maybe_erase_unused!<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              maybe_erase_unused!
+              <a href="ir-jl-bebdc9bf648f41024d37-line.html#Lir-jl-bebdc9bf648f41024d37-line.html-898">line 898</a><br />
+            </div>
+            <span class="code">function maybe_erase_unused!(extra_worklist, compact, idx, callback = x-&gt;nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-898"></a>898</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-ir-jl-maybe_erase_unused-898"></a>
+              1 (2.70%) samples spent in maybe_erase_unused!<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              simple_dce!
+              <a href="ir-jl-bebdc9bf648f41024d37-line.html#Lir-jl-bebdc9bf648f41024d37-line.html-991">line 991</a><br />
+            </div>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="ir-jl-bebdc9bf648f41024d37-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-ir-jl-maybe_erase_unused-897">maybe_erase_unused!</a><br />
+            </div>
+            <span class="code">    stmt = compact.result[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-899"></a>899</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stmt === nothing &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-900"></a>900</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if compact_exprtype(compact, SSAValue(idx)) === Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-901"></a>901</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        effect_free = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-902"></a>902</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-903"></a>903</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="queries-jl-3d33f551d26c44796e11-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-queries-jl-stmt_effect_free-6">stmt_effect_free</a><br />
+            </div>
+            <span class="code">        effect_free = stmt_effect_free(stmt, compact.result_types[idx], compact, compact.ir.spvals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-904"></a>904</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-905"></a>905</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if effect_free
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-906"></a>906</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for ops in userefs(stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-907"></a>907</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            val = ops[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-908"></a>908</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # If the pass we ran inserted new nodes, it&#39;s possible for those
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-909"></a>909</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # to be outside our used_ssas count.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-910"></a>910</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(val, SSAValue) &amp;&amp; val.id &lt;= length(compact.used_ssas)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-911"></a>911</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if compact.used_ssas[val.id] == 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-912"></a>912</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if val.id &lt; idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-913"></a>913</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        push!(extra_worklist, val.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-914"></a>914</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-915"></a>915</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-916"></a>916</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                compact.used_ssas[val.id] -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-917"></a>917</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                callback(val)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-918"></a>918</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-919"></a>919</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-920"></a>920</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        compact.result[idx] = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-921"></a>921</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-922"></a>922</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-923"></a>923</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-924"></a>924</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-925"></a>925</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-926"></a>926</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fixup_phinode_values!(compact::IncrementalCompact, old_values::Vector{Any})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-927"></a>927</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    values = Vector{Any}(undef, length(old_values))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-928"></a>928</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:length(old_values)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-929"></a>929</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isassigned(old_values, i) || continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-930"></a>930</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        val = old_values[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-931"></a>931</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(val, OldSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-932"></a>932</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            val = compact.ssa_rename[val.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-933"></a>933</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(val, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-934"></a>934</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                compact.used_ssas[val.id] += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-935"></a>935</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-936"></a>936</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(val, NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-937"></a>937</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            val = SSAValue(length(compact.result) + val.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-938"></a>938</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-939"></a>939</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        values[i] = val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-940"></a>940</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-941"></a>941</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    values
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-942"></a>942</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-943"></a>943</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-944"></a>944</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fixup_node(compact::IncrementalCompact, @nospecialize(stmt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-945"></a>945</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(stmt, PhiNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-946"></a>946</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return PhiNode(stmt.edges, fixup_phinode_values!(compact, stmt.values))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-947"></a>947</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, PhiCNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-948"></a>948</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return PhiCNode(fixup_phinode_values!(compact, stmt.values))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-949"></a>949</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-950"></a>950</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return SSAValue(length(compact.result) + stmt.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-951"></a>951</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(stmt, OldSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-952"></a>952</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return compact.ssa_rename[stmt.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-953"></a>953</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-954"></a>954</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        urs = userefs(stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-955"></a>955</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        urs === () &amp;&amp; return stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-956"></a>956</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for ur in urs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-957"></a>957</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            val = ur[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-958"></a>958</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(val, NewSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-959"></a>959</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ur[] = SSAValue(length(compact.result) + val.id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-960"></a>960</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif isa(val, OldSSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-961"></a>961</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ur[] = compact.ssa_rename[val.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-962"></a>962</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-963"></a>963</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-964"></a>964</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return urs[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-965"></a>965</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-966"></a>966</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-967"></a>967</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-968"></a>968</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function just_fixup!(compact::IncrementalCompact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-969"></a>969</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for idx in compact.late_fixup
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-970"></a>970</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stmt = compact.result[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-971"></a>971</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_stmt = fixup_node(compact, stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-972"></a>972</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (stmt !== new_stmt) &amp;&amp; (compact.result[idx] = new_stmt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-973"></a>973</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-974"></a>974</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for idx in 1:length(compact.new_new_nodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-975"></a>975</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        node = compact.new_new_nodes[idx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-976"></a>976</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new_stmt = fixup_node(compact, node.node)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-977"></a>977</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if node.node !== new_stmt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-978"></a>978</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            compact.new_new_nodes[idx] = NewNode(
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-979"></a>979</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                node.pos, node.attach_after, node.typ,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-980"></a>980</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                new_stmt, node.line)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-981"></a>981</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-982"></a>982</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-983"></a>983</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-984"></a>984</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-985"></a>985</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function simple_dce!(compact::IncrementalCompact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-986"></a>986</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-ir-jl-simple_dce-986"></a>
+              1 (2.70%) samples spent in simple_dce!<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              finish
+              <a href="ir-jl-bebdc9bf648f41024d37-line.html#Lir-jl-bebdc9bf648f41024d37-line.html-1014">line 1014</a><br />
+            </div>
+            <span class="code">    # Perform simple DCE for unused values
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-987"></a>987</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    extra_worklist = Int[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-988"></a>988</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (idx, nused) in Iterators.enumerate(compact.used_ssas)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-989"></a>989</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        idx &gt;= compact.result_idx &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-990"></a>990</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nused == 0 || continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-991"></a>991</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="ir-jl-bebdc9bf648f41024d37-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-ir-jl-maybe_erase_unused-898">maybe_erase_unused!</a><br />
+            </div>
+            <span class="code">        maybe_erase_unused!(extra_worklist, compact, idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-992"></a>992</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-993"></a>993</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !isempty(extra_worklist)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-994"></a>994</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        maybe_erase_unused!(extra_worklist, compact, pop!(extra_worklist))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-995"></a>995</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-996"></a>996</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-997"></a>997</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-998"></a>998</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function non_dce_finish!(compact::IncrementalCompact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-999"></a>999</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result_idx = compact.result_idx
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1000"></a>1000</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(compact.result, result_idx-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1001"></a>1001</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(compact.result_types, result_idx-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1002"></a>1002</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(compact.result_lines, result_idx-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1003"></a>1003</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    resize!(compact.result_flags, result_idx-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1004"></a>1004</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    just_fixup!(compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1005"></a>1005</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bb = compact.result_bbs[end]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1006"></a>1006</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.result_bbs[end] = BasicBlock(bb,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1007"></a>1007</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                StmtRange(first(bb.stmts), result_idx-1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1008"></a>1008</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact.renamed_new_nodes = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1009"></a>1009</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1010"></a>1010</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1011"></a>1011</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1012"></a>1012</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function finish(compact::IncrementalCompact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1013"></a>1013</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    non_dce_finish!(compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1014"></a>1014</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-ir-jl-finish-1014"></a>
+              1 (2.70%) samples spent in finish<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              compact!
+              <a href="ir-jl-bebdc9bf648f41024d37-line.html#Lir-jl-bebdc9bf648f41024d37-line.html-1027">line 1027</a><br />
+            </div>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="ir-jl-bebdc9bf648f41024d37-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-ir-jl-simple_dce-986">simple_dce!</a><br />
+            </div>
+            <span class="code">    simple_dce!(compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1015"></a>1015</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return complete(compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1016"></a>1016</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1017"></a>1017</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1018"></a>1018</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function complete(compact::IncrementalCompact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1019"></a>1019</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cfg = CFG(compact.result_bbs, Int[first(bb.stmts) for bb in compact.result_bbs[2:end]])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1020"></a>1020</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return IRCode(compact.ir, compact.result, compact.result_types, compact.result_lines, compact.result_flags, cfg, compact.new_new_nodes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1021"></a>1021</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1022"></a>1022</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1023"></a>1023</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-ir-jl-compact-1023"></a>
+              1 (2.70%) samples spent in compact!<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              run_passes
+              <a href="driver-jl-4d4652571be99309ac0c-line.html#Ldriver-jl-4d4652571be99309ac0c-line.html-121">line 121</a><br />
+            </div>
+            <span class="code">function compact!(code::IRCode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1024"></a>1024</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    compact = IncrementalCompact(code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1025"></a>1025</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Just run through the iterator without any processing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1026"></a>1026</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    foreach(x -&gt; nothing, compact) # x isa Pair{Int, Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1027"></a>1027</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="ir-jl-bebdc9bf648f41024d37-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-ir-jl-finish-1014">finish</a><br />
+            </div>
+            <span class="code">    return finish(compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1028"></a>1028</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1029"></a>1029</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1030"></a>1030</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct BBIdxIter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1031"></a>1031</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ir::IRCode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1032"></a>1032</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1033"></a>1033</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1034"></a>1034</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">bbidxiter(ir::IRCode) = BBIdxIter(ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1035"></a>1035</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1036"></a>1036</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function iterate(x::BBIdxIter, (idx, bb)::Tuple{Int, Int}=(1, 1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1037"></a>1037</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    idx &gt; length(x.ir.stmts) &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1038"></a>1038</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    active_bb = x.ir.cfg.blocks[bb]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1039"></a>1039</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    next_bb = bb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1040"></a>1040</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if idx == last(active_bb.stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1041"></a>1041</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        next_bb += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1042"></a>1042</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1043"></a>1043</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (bb, idx), (idx + 1, next_bb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lir-jl-bebdc9bf648f41024d37-line.html-1044"></a>1044</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/libuv-jl-530c66ad95b5a57763e9-line.html b/profiling/statprof/libuv-jl-530c66ad95b5a57763e9-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..9ac50da555a2e1cc9b414c5c85ed67bb2f837acb
--- /dev/null
+++ b/profiling/statprof/libuv-jl-530c66ad95b5a57763e9-line.html
@@ -0,0 +1,1478 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./libuv.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Core definitions for interacting with the libuv library from Julia
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(string(length(Core.ARGS) &gt;= 2 ? Core.ARGS[2] : &quot;&quot;, &quot;uv_constants.jl&quot;))  # include($BUILDROOT/base/uv_constants.jl)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># convert UV handle data to julia object, checking for null
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_sizeof_handle(handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !(UV_UNKNOWN_HANDLE &lt; handle &lt; UV_HANDLE_TYPE_MAX)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(DomainError(handle))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:uv_handle_size,Csize_t,(Int32,),handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_sizeof_req(req)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !(UV_UNKNOWN_REQ &lt; req &lt; UV_REQ_TYPE_MAX)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(DomainError(req))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:uv_req_size,Csize_t,(Int32,),req)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for h in uv_handle_types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval const $(Symbol(&quot;_sizeof_&quot;,lowercase(string(h)))) = uv_sizeof_handle($h)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for r in uv_req_types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval const $(Symbol(&quot;_sizeof_&quot;,lowercase(string(r)))) = uv_sizeof_req($r)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uv_handle_data(handle) = ccall(:jl_uv_handle_data,Ptr{Cvoid},(Ptr{Cvoid},),handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uv_req_data(handle) = ccall(:jl_uv_req_data,Ptr{Cvoid},(Ptr{Cvoid},),handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uv_req_set_data(req,data) = ccall(:jl_uv_req_set_data,Cvoid,(Ptr{Cvoid},Any),req,data)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uv_req_set_data(req,data::Ptr{Cvoid}) = ccall(:jl_uv_req_set_data,Cvoid,(Ptr{Cvoid},Ptr{Cvoid}),req,data)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro handle_as(hand, typ)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    quote
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        data = uv_handle_data($(esc(hand)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        data == C_NULL &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_pointer_to_objref(data)::($(esc(typ)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">associate_julia_struct(handle::Ptr{Cvoid}, @nospecialize(jlobj)) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_uv_associate_julia_struct, Cvoid, (Ptr{Cvoid}, Any), handle, jlobj)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">disassociate_julia_struct(uv) = disassociate_julia_struct(uv.handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">disassociate_julia_struct(handle::Ptr{Cvoid}) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    handle != C_NULL &amp;&amp; ccall(:jl_uv_disassociate_julia_struct, Cvoid, (Ptr{Cvoid},), handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># A dict of all libuv handles that are being waited on somewhere in the system
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># and should thus not be garbage collected
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const uvhandles = IdDict()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function preserve_handle(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    v = get(uvhandles, x, 0)::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uvhandles[x] = v + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unpreserve_handle(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    v = uvhandles[x]::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if v == 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        pop!(uvhandles, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uvhandles[x] = v - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Libuv error handling ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct IOError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    msg::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code::Int32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    IOError(msg::AbstractString, code::Integer) = new(msg, code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">showerror(io::IO, e::IOError) = print(io, &quot;IOError: &quot;, e.msg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _UVError(pfx::AbstractString, code::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code = Int32(code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    IOError(string(pfx, &quot;: &quot;, struverror(code), &quot; (&quot;, uverrorname(code), &quot;)&quot;), code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struverror(err::Int32) = unsafe_string(ccall(:uv_strerror,Cstring,(Int32,),err))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uverrorname(err::Int32) = unsafe_string(ccall(:uv_err_name,Cstring,(Int32,),err))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uv_error(prefix::Symbol, c::Integer) = uv_error(string(prefix),c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uv_error(prefix::AbstractString, c::Integer) = c &lt; 0 ? throw(_UVError(prefix,c)) : nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## event loop ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eventloop() = uv_eventloop::Ptr{Cvoid}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mkNewEventLoop() = ccall(:jl_new_event_loop,Ptr{Cvoid},()) # this would probably be fine, but is nowhere supported
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function run_event_loop()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_run_event_loop,Cvoid,(Ptr{Cvoid},),eventloop())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function process_events(block::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    loop = eventloop()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if block
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-98"></a>98</td>
+          <td>3 (7.14%)</td>
+          <td>3 (7.14%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-libuv-jl-process_events-98"></a>
+              3 (7.14%) samples spent in process_events<br />
+              3 (100.00%) (ex.),
+              3 (100.00%) (incl.)
+              when called from
+              wait
+              <a href="event-jl-9f2b370029d9fd3c8bef-line.html#Levent-jl-9f2b370029d9fd3c8bef-line.html-246">line 246</a><br />
+            </div>
+            <span class="code">        return ccall(:jl_run_once,Int32,(Ptr{Cvoid},),loop)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return ccall(:jl_process_events,Int32,(Ptr{Cvoid},),loop)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_alloc_buf end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_readcb end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_writecb_task end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_return_spawn end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_asynccb end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_timercb end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function reinit_stdio()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global uv_jl_alloc_buf     = @cfunction(uv_alloc_buf, Cvoid, (Ptr{Cvoid}, Csize_t, Ptr{Cvoid}))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global uv_jl_readcb        = @cfunction(uv_readcb, Cvoid, (Ptr{Cvoid}, Cssize_t, Ptr{Cvoid}))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global uv_jl_writecb_task  = @cfunction(uv_writecb_task, Cvoid, (Ptr{Cvoid}, Cint))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global uv_jl_return_spawn  = @cfunction(uv_return_spawn, Cvoid, (Ptr{Cvoid}, Int64, Int32))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global uv_jl_asynccb       = @cfunction(uv_asynccb, Cvoid, (Ptr{Cvoid},))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global uv_jl_timercb       = @cfunction(uv_timercb, Cvoid, (Ptr{Cvoid},))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global uv_eventloop = ccall(:jl_global_event_loop, Ptr{Cvoid}, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global stdin = init_stdio(ccall(:jl_stdin_stream, Ptr{Cvoid}, ()))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global stdout = init_stdio(ccall(:jl_stdout_stream, Ptr{Cvoid}, ()))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global stderr = init_stdio(ccall(:jl_stderr_stream, Ptr{Cvoid}, ()))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stdin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Global variable referring to the standard input stream.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">:stdin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stdout
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Global variable referring to the standard out stream.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">:stdout
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stderr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Global variable referring to the standard error stream.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Llibuv-jl-530c66ad95b5a57763e9-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">:stderr
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/loading-jl-267f08df202e5203e249-line.html b/profiling/statprof/loading-jl-267f08df202e5203e249-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..9ff3c08d7776fd0367bd5fbc701b2418de49b5fb
--- /dev/null
+++ b/profiling/statprof/loading-jl-267f08df202e5203e249-line.html
@@ -0,0 +1,14383 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Base.require is the implementation for the `import` statement
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Cross-platform case-sensitive path canonicalization
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Sys.isunix() &amp;&amp; !Sys.isapple()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # assume case-sensitive filesystems, don&#39;t have to do anything
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isfile_casesensitive(path) = isfile(path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">elseif Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # GetLongPathName Win32 function returns the case-preserved filename on NTFS.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function isfile_casesensitive(path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isfile(path) || return false  # Fail fast
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        basename(Filesystem.longpath(path)) == basename(path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">elseif Sys.isapple()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # HFS+ filesystem is case-preserving. The getattrlist API returns
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # a case-preserved filename. In the rare event that HFS+ is operating
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # in case-sensitive mode, this will still work but will be redundant.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Constants from &lt;sys/attr.h&gt;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const ATRATTR_BIT_MAP_COUNT = 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const ATTR_CMN_NAME = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const BITMAPCOUNT = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const COMMONATTR = 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const FSOPT_NOFOLLOW = 1  # Don&#39;t follow symbolic links
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const attr_list = zeros(UInt8, 24)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    attr_list[BITMAPCOUNT] = ATRATTR_BIT_MAP_COUNT
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    attr_list[COMMONATTR] = ATTR_CMN_NAME
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # This essentially corresponds to the following C code:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # attrlist attr_list;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # memset(&amp;attr_list, 0, sizeof(attr_list));
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # attr_list.bitmapcount = ATTR_BIT_MAP_COUNT;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # attr_list.commonattr = ATTR_CMN_NAME;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # struct Buffer {
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #    u_int32_t total_length;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #    u_int32_t filename_offset;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #    u_int32_t filename_length;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #    char filename[max_filename_length];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # };
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Buffer buf;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # getattrpath(path, &amp;attr_list, &amp;buf, sizeof(buf), FSOPT_NOFOLLOW);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function isfile_casesensitive(path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isfile(path) || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path_basename = String(basename(path))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        local casepreserved_basename
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        header_size = 12
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        buf = Vector{UInt8}(undef, length(path_basename) + header_size + 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ret = ccall(:getattrlist, Cint,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        (Cstring, Ptr{Cvoid}, Ptr{Cvoid}, Csize_t, Culong),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        path, attr_list, buf, sizeof(buf), FSOPT_NOFOLLOW)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            systemerror(:getattrlist, ret ≠ 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            filename_length = GC.@preserve buf unsafe_load(
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              convert(Ptr{UInt32}, pointer(buf) + 8))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if (filename_length + header_size) &gt; length(buf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                resize!(buf, filename_length + header_size)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            casepreserved_basename =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              view(buf, (header_size+1):(header_size+filename_length-1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Hack to compensate for inability to create a string from a subarray with no allocations.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        codeunits(path_basename) == casepreserved_basename &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # If there is no match, it&#39;s possible that the file does exist but HFS+
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # performed unicode normalization. See  https://developer.apple.com/library/mac/qa/qa1235/_index.html.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isascii(path_basename) &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        codeunits(Unicode.normalize(path_basename, :NFD)) == casepreserved_basename
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Generic fallback that performs a slow directory listing.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function isfile_casesensitive(path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isfile(path) || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        dir, filename = splitdir(path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        any(readdir(dir) .== filename)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## SHA1 ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct SHA1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bytes::Vector{UInt8}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function SHA1(bytes::Vector{UInt8})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        length(bytes) == 20 ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            throw(ArgumentError(&quot;wrong number of bytes for SHA1 hash: $(length(bytes))&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return new(bytes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">SHA1(s::AbstractString) = SHA1(hex2bytes(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">string(hash::SHA1) = bytes2hex(hash.bytes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(io::IO, hash::SHA1) = bytes2hex(io, hash.bytes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(io::IO, hash::SHA1) = print(io, &quot;SHA1(\&quot;&quot;, hash, &quot;\&quot;)&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isless(a::SHA1, b::SHA1) = lexless(a.bytes, b.bytes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">hash(a::SHA1, h::UInt) = hash((SHA1, a.bytes), h)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(a::SHA1, b::SHA1) = a.bytes == b.bytes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># fake uuid5 function (for self-assigned UUIDs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># TODO: delete and use real uuid5 once it&#39;s in stdlib
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uuid5(namespace::UUID, key::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u::UInt128 = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    h = hash(namespace)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for _ = 1:sizeof(u)÷sizeof(h)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        u &lt;&lt;= sizeof(h) &lt;&lt; 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        u |= (h = hash(key, h))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u &amp;= 0xffffffffffff0fff3fffffffffffffff
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u |= 0x00000000000050008000000000000000
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return UUID(u)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const ns_dummy_uuid = UUID(&quot;fe0723d6-3a44-4c41-8065-ee0f42c8ceab&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">dummy_uuid(project_file::String) = isfile_casesensitive(project_file) ?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uuid5(ns_dummy_uuid, realpath(project_file)) : nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## package path slugs: turning UUID + SHA1 into a pair of 4-byte &quot;slugs&quot; ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const slug_chars = String([&#39;A&#39;:&#39;Z&#39;; &#39;a&#39;:&#39;z&#39;; &#39;0&#39;:&#39;9&#39;])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function slug(x::UInt32, p::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sprint(sizehint=p) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n = length(slug_chars)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 1:p
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            x, d = divrem(x, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            write(io, slug_chars[1+d])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function package_slug(uuid::UUID, p::Int=5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    crc = _crc32c(uuid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return slug(crc, p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function version_slug(uuid::UUID, sha1::SHA1, p::Int=5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    crc = _crc32c(uuid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    crc = _crc32c(sha1.bytes, crc)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return slug(crc, p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## package identification: determine unique identity of package to be loaded ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">find_package(args...) = locate_package(identify_package(args...))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct PkgId
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uuid::Union{UUID,Nothing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    name::String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    PkgId(u::UUID, name::AbstractString) = new(UInt128(u) == 0 ? nothing : u, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    PkgId(::Nothing, name::AbstractString) = new(nothing, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">PkgId(name::AbstractString) = PkgId(nothing, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function PkgId(m::Module, name::String = String(nameof(moduleroot(m))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uuid = UUID(ccall(:jl_module_uuid, NTuple{2, UInt64}, (Any,), m))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    UInt128(uuid) == 0 ? PkgId(name) : PkgId(uuid, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(a::PkgId, b::PkgId) = a.uuid == b.uuid &amp;&amp; a.name == b.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function hash(pkg::PkgId, h::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    h += 0xc9f248583a0ca36c % UInt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    h = hash(pkg.uuid, h)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    h = hash(pkg.name, h)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return h
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(io::IO, pkg::PkgId) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print(io, pkg.name, &quot; [&quot;, pkg.uuid === nothing ? &quot;top-level&quot; : pkg.uuid, &quot;]&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function binpack(pkg::PkgId)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io = IOBuffer()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    write(io, UInt8(0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uuid = pkg.uuid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    write(io, uuid === nothing ? UInt128(0) : UInt128(uuid))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    write(io, pkg.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return String(take!(io))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function binunpack(s::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io = IOBuffer(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert read(io, UInt8) === 0x00
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uuid = read(io, UInt128)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    name = read(io, String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return PkgId(UUID(uuid), name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function identify_package(where::Module, name::String)::Union{Nothing,PkgId}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    identify_package(PkgId(where), name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function identify_package(where::PkgId, name::String)::Union{Nothing,PkgId}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    where.name === name &amp;&amp; return where
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    where.uuid === nothing &amp;&amp; return identify_package(name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for env in load_path()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        found_or_uuid = manifest_deps_get(env, where, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        found_or_uuid isa UUID &amp;&amp; return PkgId(found_or_uuid, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        found_or_uuid &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function identify_package(name::String)::Union{Nothing,PkgId}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for env in load_path()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        found_or_uuid = project_deps_get(env, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        found_or_uuid isa UUID &amp;&amp; return PkgId(found_or_uuid, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        found_or_uuid &amp;&amp; return PkgId(name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function identify_package(name::String, names::String...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkg = identify_package(name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkg      === nothing ? nothing :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkg.uuid === nothing ? identify_package(names...) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                           identify_package(pkg, names...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function identify_package(where::PkgId, name::String, names::String...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkg = identify_package(where, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkg      === nothing ? nothing :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkg.uuid === nothing ? identify_package(names...) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                           identify_package(pkg, names...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## package location: given a package identity find file to load ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function locate_package(pkg::PkgId)::Union{Nothing,String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if pkg.uuid === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for env in load_path()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            found_or_uuid = project_deps_get(env, pkg.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            found_or_uuid isa UUID &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return locate_package(PkgId(found_or_uuid, pkg.name))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            found_or_uuid &amp;&amp; return implicit_manifest_uuid_path(env, pkg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for env in load_path()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            path = manifest_uuid_path(env, pkg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            path != nothing &amp;&amp; return entry_path(path, pkg.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">locate_package(::Nothing) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pathof(m::Module)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the path of `m.jl` file that was used to `import` module `m`,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">or `nothing` if `m` was not imported from a package.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Use [`dirname`](@ref) to get the directory part and [`basename`](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to get the file name part of the path.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function pathof(m::Module)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkgid = get(Base.module_keys, m, nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkgid === nothing &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Base.locate_package(pkgid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## generic project &amp; manifest API ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const project_names = (&quot;JuliaProject.toml&quot;, &quot;Project.toml&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const manifest_names = (&quot;JuliaManifest.toml&quot;, &quot;Manifest.toml&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># return means
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `false`: nothing to see here
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `true`: `env` is an implicit environment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `path`: the path of an explicit project file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function env_project_file(env::String)::Union{Bool,String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isdir(env)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for proj in project_names
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            project_file = joinpath(env, proj)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isfile_casesensitive(project_file) &amp;&amp; return project_file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif basename(env) in project_names &amp;&amp; isfile_casesensitive(env)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return env
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function project_deps_get(env::String, name::String)::Union{Bool,UUID}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    project_file = env_project_file(env)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if project_file isa String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return explicit_project_deps_get(project_file, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    project_file &amp;&amp; implicit_project_deps_get(env, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function manifest_deps_get(env::String, where::PkgId, name::String)::Union{Bool,UUID}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert where.uuid !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    project_file = env_project_file(env)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if project_file isa String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        proj_name, proj_uuid = project_file_name_uuid_path(project_file, where.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if proj_name == where.name &amp;&amp; proj_uuid == where.uuid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # `where` matches the project, use deps as manifest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            found_or_uuid = explicit_project_deps_get(project_file, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return found_or_uuid isa UUID ? found_or_uuid : true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # look for `where` stanza in manifest file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        manifest_file = project_file_manifest_path(project_file)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isfile_casesensitive(manifest_file)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return explicit_manifest_deps_get(manifest_file, where.uuid, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return false # `where` stanza not found
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    project_file &amp;&amp; implicit_manifest_deps_get(env, where, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function manifest_uuid_path(env::String, pkg::PkgId)::Union{Nothing,String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    project_file = env_project_file(env)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if project_file isa String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        proj_name, proj_uuid, path = project_file_name_uuid_path(project_file, pkg.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        proj_name == pkg.name &amp;&amp; proj_uuid == pkg.uuid &amp;&amp; return path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        manifest_file = project_file_manifest_path(project_file)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isfile_casesensitive(manifest_file)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return explicit_manifest_uuid_path(manifest_file, pkg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    project_file ? implicit_manifest_uuid_path(env, pkg) : nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># regular expressions for scanning project &amp; manifest files
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_section            = r&quot;^\s*\[&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_array_of_tables    = r&quot;^\s*\[\s*\[&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_section_deps       = r&quot;^\s*\[\s*\&quot;?deps\&quot;?\s*\]\s*(?:#|$)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_section_capture    = r&quot;^\s*\[\s*\[\s*\&quot;?(\w+)\&quot;?\s*\]\s*\]\s*(?:#|$)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_subsection_deps    = r&quot;^\s*\[\s*\&quot;?(\w+)\&quot;?\s*\.\s*\&quot;?deps\&quot;?\s*\]\s*(?:#|$)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_key_to_string      = r&quot;^\s*(\w+)\s*=\s*\&quot;(.*)\&quot;\s*(?:#|$)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_uuid_to_string     = r&quot;^\s*uuid\s*=\s*\&quot;(.*)\&quot;\s*(?:#|$)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_name_to_string     = r&quot;^\s*name\s*=\s*\&quot;(.*)\&quot;\s*(?:#|$)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_path_to_string     = r&quot;^\s*path\s*=\s*\&quot;(.*)\&quot;\s*(?:#|$)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_hash_to_string     = r&quot;^\s*git-tree-sha1\s*=\s*\&quot;(.*)\&quot;\s*(?:#|$)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_manifest_to_string = r&quot;^\s*manifest\s*=\s*\&quot;(.*)\&quot;\s*(?:#|$)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const re_deps_to_any        = r&quot;^\s*deps\s*=\s*(.*?)\s*(?:#|$)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># find project file&#39;s top-level UUID entry (or nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function project_file_name_uuid_path(project_file::String,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    name::String)::Tuple{String,UUID,String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    open(project_file) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uuid = dummy_uuid(project_file)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path = joinpath(&quot;src&quot;, &quot;$name.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for line in eachline(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            occursin(re_section, line) &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if (m = match(re_name_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                name = String(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif (m = match(re_uuid_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                uuid = UUID(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif (m = match(re_path_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                path = String(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path = joinpath(dirname(project_file), path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return name, uuid, path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># find project file&#39;s corresponding manifest file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function project_file_manifest_path(project_file::String)::Union{Nothing,String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    open(project_file) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        dir = abspath(dirname(project_file))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for line in eachline(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            occursin(re_section, line) &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if (m = match(re_manifest_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return normpath(joinpath(dir, m.captures[1]))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        local manifest_file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for mfst in manifest_names
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            manifest_file = joinpath(dir, mfst)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isfile_casesensitive(manifest_file) &amp;&amp; return manifest_file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return manifest_file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># find `name` in a manifest file and return its UUID
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function manifest_file_name_uuid(manifest_file::String, name::String, io::IO)::Union{Nothing,UUID}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uuid = name′ = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for line in eachline(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if (m = match(re_section_capture, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            name′ == name &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            name′ = String(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif (m = match(re_uuid_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            uuid = UUID(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    name′ == name ? uuid : nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># given package dir and name, find an entry point
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># and project file if one exists (or nothing if not)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function entry_point_and_project_file(dir::String, name::String)::Union{Tuple{Nothing,Nothing},Tuple{String,Nothing},Tuple{String,String}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for entry in (&quot;&quot;, joinpath(name, &quot;src&quot;), joinpath(&quot;$name.jl&quot;, &quot;src&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path = normpath(joinpath(dir, entry, &quot;$name.jl&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isfile_casesensitive(path) || continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isempty(entry)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for proj in project_names
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                project_file = normpath(joinpath(dir, dirname(entry), proj))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                isfile_casesensitive(project_file) || continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return path, project_file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return path, nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing, nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># given a path and a name, return the entry point
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function entry_path(path::String, name::String)::Union{Nothing,String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isfile_casesensitive(path) &amp;&amp; return normpath(path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    path = normpath(joinpath(path, &quot;src&quot;, &quot;$name.jl&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isfile_casesensitive(path) ? path : nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">entry_path(::Nothing, name::String) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># given a project path (project directory or entry point)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># return the project file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function package_path_to_project_file(path::String)::Union{Nothing,String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isdir(path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        dir = dirname(path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        basename(dir) == &quot;src&quot; || return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path = dirname(dir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for proj in project_names
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        project_file = joinpath(path, proj)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isfile_casesensitive(project_file) &amp;&amp; return project_file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## explicit project &amp; manifest API ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># find project file root or deps `name =&gt; uuid` mapping
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `false` means: did not find `name`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `true` means: found `name` without UUID (can&#39;t happen in explicit projects)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `uuid` means: found `name` with `uuid` in project file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function explicit_project_deps_get(project_file::String, name::String)::Union{Bool,UUID}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    open(project_file) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        root_name = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        root_uuid = dummy_uuid(project_file)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        state = :top
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for line in eachline(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if state == :top
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if occursin(re_section, line)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    root_name == name &amp;&amp; return root_uuid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    state = occursin(re_section_deps, line) ? :deps : :other
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif (m = match(re_name_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    root_name = String(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif (m = match(re_uuid_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    root_uuid = UUID(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif state == :deps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if (m = match(re_key_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    m.captures[1] == name &amp;&amp; return UUID(m.captures[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if occursin(re_section, line)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                state = occursin(re_section_deps, line) ? :deps : :other
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return root_name == name &amp;&amp; root_uuid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># find `where` stanza and `name` in its deps and return its UUID
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `false` means: did not find `where`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `true` means: found `where` but `name` not in its deps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `uuid` means: found `where` and `name` mapped to `uuid` in its deps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function explicit_manifest_deps_get(manifest_file::String, where::UUID, name::String)::Union{Bool,UUID}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    open(manifest_file) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uuid = deps = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        state = :other
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for line in eachline(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if occursin(re_array_of_tables, line)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                uuid == where &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                uuid = deps = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                state = :stanza
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif state == :stanza
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if (m = match(re_uuid_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    uuid = UUID(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif (m = match(re_deps_to_any, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    deps = String(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif occursin(re_subsection_deps, line)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    state = :deps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif occursin(re_section, line)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    state = :other
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif state == :deps &amp;&amp; uuid == where
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if (m = match(re_key_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    m.captures[1] == name &amp;&amp; return UUID(m.captures[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uuid == where || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        deps === nothing &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # TODO: handle inline table syntax
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if deps[1] != &#39;[&#39; || deps[end] != &#39;]&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @warn &quot;Unexpected TOML deps format:\n$deps&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        occursin(repr(name), deps) || return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        seekstart(io) # rewind IO handle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return manifest_file_name_uuid(manifest_file, name, io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># find `uuid` stanza, return the corresponding path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function explicit_manifest_uuid_path(manifest_file::String, pkg::PkgId)::Union{Nothing,String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    open(manifest_file) do io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uuid = name = path = hash = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for line in eachline(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if (m = match(re_section_capture, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                uuid == pkg.uuid &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                name = String(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                path = hash = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif (m = match(re_uuid_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                uuid = UUID(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif (m = match(re_path_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                path = String(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif (m = match(re_hash_to_string, line)) != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                hash = SHA1(m.captures[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uuid == pkg.uuid || return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        name == pkg.name || return nothing # TODO: allow a mismatch?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if path != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            path = normpath(abspath(dirname(manifest_file), path))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return entry_path(path, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        hash == nothing &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Keep the 4 since it used to be the default
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for slug in (version_slug(uuid, hash, 4), version_slug(uuid, hash))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for depot in DEPOT_PATH
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                path = abspath(depot, &quot;packages&quot;, name, slug)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ispath(path) &amp;&amp; return entry_path(path, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## implicit project &amp; manifest API ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># look for an entry point for `name`:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `false` means: did not find `name`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `true` means: found `name` without project file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `uuid` means: found `name` with project file with real or dummy `uuid`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function implicit_project_deps_get(dir::String, name::String)::Union{Bool,UUID}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    path, project_file = entry_point_and_project_file(dir, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    project_file == nothing &amp;&amp; return path != nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    proj_name, proj_uuid = project_file_name_uuid_path(project_file, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    proj_name == name &amp;&amp; proj_uuid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># look for an entry-point for `where` by name, check that UUID matches
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># if there&#39;s a project file, look up `name` in its deps and return that
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `false` means: did not find `where`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `true` means: found `where` but `name` not in its deps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  - `uuid` means: found `where` and `name` mapped to `uuid` in its deps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function implicit_manifest_deps_get(dir::String, where::PkgId, name::String)::Union{Bool,UUID}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert where.uuid !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    project_file = entry_point_and_project_file(dir, where.name)[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    project_file === nothing &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    proj_name, proj_uuid = project_file_name_uuid_path(project_file, where.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    proj_name == where.name &amp;&amp; proj_uuid == where.uuid || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    found_or_uuid = explicit_project_deps_get(project_file, name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    found_or_uuid isa UUID ? found_or_uuid : true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># look for an entry-point for `pkg` and return its path if UUID matches
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function implicit_manifest_uuid_path(dir::String, pkg::PkgId)::Union{Nothing,String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    path, project_file = entry_point_and_project_file(dir, pkg.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkg.uuid === nothing &amp;&amp; project_file === nothing &amp;&amp; return path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkg.uuid === nothing || project_file === nothing &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    proj_name, proj_uuid = project_file_name_uuid_path(project_file, pkg.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    proj_name == pkg.name &amp;&amp; proj_uuid == pkg.uuid ? path : nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## other code loading functionality ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function find_source_file(path::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (isabspath(path) || isfile(path)) &amp;&amp; return path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    base_path = joinpath(Sys.BINDIR::String, DATAROOTDIR, &quot;julia&quot;, &quot;base&quot;, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return isfile(base_path) ? base_path : nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">cache_file_entry(pkg::PkgId) = joinpath(
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &quot;compiled&quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &quot;v$(VERSION.major).$(VERSION.minor)&quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pkg.uuid === nothing ? &quot;$(pkg.name).ji&quot; : joinpath(pkg.name, &quot;$(package_slug(pkg.uuid)).ji&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-603"></a>603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function find_all_in_cache_path(pkg::PkgId)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    paths = String[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    entry = cache_file_entry(pkg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for depot in DEPOT_PATH
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path = joinpath(depot, entry)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isfile_casesensitive(path) &amp;&amp; push!(paths, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return paths
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-611"></a>611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># these return either the array of modules loaded from the path / content given
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># or an Exception that describes why it couldn&#39;t be loaded
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># and it reconnects the Base.Docs.META
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _include_from_serialized(path::String, depmods::Vector{Any})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sv = ccall(:jl_restore_incremental, Any, (Cstring, Any), path, depmods)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(sv, Exception)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return sv
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    restored = sv[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isa(restored, Exception)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for M in restored::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            M = M::Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isdefined(M, Base.Docs.META)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(Base.Docs.modules, M)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if parentmodule(M) === M
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                register_root_module(M)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isassigned(sv, 2) &amp;&amp; ccall(:jl_init_restored_modules, Cvoid, (Any,), sv[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return restored
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _tryrequire_from_serialized(modkey::PkgId, build_id::UInt64, modpath::Union{Nothing, String})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if root_module_exists(modkey)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        M = root_module(modkey)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if PkgId(M) == modkey &amp;&amp; module_build_id(M) === build_id
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return M
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if modpath === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            modpath = locate_package(modkey)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            modpath === nothing &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-648"></a>648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        mod = _require_search_from_serialized(modkey, String(modpath))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-649"></a>649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isa(mod, Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-650"></a>650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for callback in package_callbacks
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-651"></a>651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                invokelatest(callback, modkey)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-652"></a>652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-653"></a>653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for M in mod::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-654"></a>654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if PkgId(M) == modkey &amp;&amp; module_build_id(M) === build_id
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-655"></a>655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return M
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-656"></a>656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-657"></a>657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-658"></a>658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-659"></a>659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-660"></a>660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-661"></a>661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-662"></a>662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-663"></a>663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _require_from_serialized(path::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-664"></a>664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # loads a precompile cache file, ignoring stale_cachfile tests
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-665"></a>665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # load all of the dependent modules first
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-666"></a>666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    local depmodnames
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-667"></a>667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io = open(path, &quot;r&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-668"></a>668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-669"></a>669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isvalid_cache_header(io) || return ArgumentError(&quot;Invalid header in cache file $path.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-670"></a>670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        depmodnames = parse_cache_header(io)[3]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-671"></a>671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        isvalid_file_crc(io) || return ArgumentError(&quot;Invalid checksum in cache file $path.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-672"></a>672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-673"></a>673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        close(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-674"></a>674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-675"></a>675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ndeps = length(depmodnames)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-676"></a>676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    depmods = Vector{Any}(undef, ndeps)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-677"></a>677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i in 1:ndeps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-678"></a>678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        modkey, build_id = depmodnames[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-679"></a>679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        dep = _tryrequire_from_serialized(modkey, build_id, nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-680"></a>680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        dep === nothing &amp;&amp; return ErrorException(&quot;Required dependency $modkey failed to load from a cache file.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-681"></a>681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        depmods[i] = dep::Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-682"></a>682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-683"></a>683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # then load the file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-684"></a>684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return _include_from_serialized(path, depmods)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-685"></a>685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-686"></a>686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-687"></a>687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># returns `true` if require found a precompile cache for this sourcepath, but couldn&#39;t load it
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-688"></a>688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># returns `false` if the module isn&#39;t known to be precompilable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-689"></a>689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># returns the set of modules restored if the cache load succeeded
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-690"></a>690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _require_search_from_serialized(pkg::PkgId, sourcepath::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-691"></a>691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    paths = find_all_in_cache_path(pkg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-692"></a>692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for path_to_try in paths::Vector{String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-693"></a>693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        staledeps = stale_cachefile(sourcepath, path_to_try)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-694"></a>694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if staledeps === true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-695"></a>695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-696"></a>696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-697"></a>697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # finish loading module graph into staledeps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-698"></a>698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i in 1:length(staledeps)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-699"></a>699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            dep = staledeps[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-700"></a>700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            dep isa Module &amp;&amp; continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-701"></a>701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            modpath, modkey, build_id = dep::Tuple{String, PkgId, UInt64}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-702"></a>702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            dep = _tryrequire_from_serialized(modkey, build_id, modpath)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-703"></a>703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if dep === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-704"></a>704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                @debug &quot;Required dependency $modkey failed to load from cache file for $modpath.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-705"></a>705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                staledeps = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-706"></a>706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-707"></a>707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-708"></a>708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            staledeps[i] = dep::Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-709"></a>709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-710"></a>710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if staledeps === true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-711"></a>711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-712"></a>712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-713"></a>713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        restored = _include_from_serialized(path_to_try, staledeps)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-714"></a>714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(restored, Exception)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-715"></a>715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @debug &quot;Deserialization checks failed while attempting to load cache from $path_to_try&quot; exception=restored
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-716"></a>716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-717"></a>717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return restored
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-718"></a>718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-719"></a>719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-720"></a>720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return !isempty(paths)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-721"></a>721</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-722"></a>722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-723"></a>723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># to synchronize multiple tasks trying to import/using something
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-724"></a>724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const package_locks = Dict{PkgId,Condition}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-725"></a>725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-726"></a>726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># to notify downstream consumers that a module was successfully loaded
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-727"></a>727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Callbacks take the form (mod::Base.PkgId) -&gt; nothing.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-728"></a>728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># WARNING: This is an experimental feature and might change later, without deprecation.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-729"></a>729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const package_callbacks = Any[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-730"></a>730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># to notify downstream consumers that a file has been included into a particular module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-731"></a>731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Callbacks take the form (mod::Module, filename::String) -&gt; nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-732"></a>732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># WARNING: This is an experimental feature and might change later, without deprecation.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-733"></a>733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const include_callbacks = Any[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-734"></a>734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-735"></a>735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># used to optionally track dependencies when requiring a module:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-736"></a>736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const _concrete_dependencies = Pair{PkgId,UInt64}[] # these dependency versions are &quot;set in stone&quot;, and the process should try to avoid invalidating them
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-737"></a>737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const _require_dependencies = Any[] # a list of (mod, path, mtime) tuples that are the file dependencies of the module currently being precompiled
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-738"></a>738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const _track_dependencies = Ref(false) # set this to true to track the list of file dependencies
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-739"></a>739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _include_dependency(mod::Module, _path::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-740"></a>740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    prev = source_path(nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-741"></a>741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if prev === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-742"></a>742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path = abspath(_path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-743"></a>743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-744"></a>744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path = normpath(joinpath(dirname(prev), _path))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-745"></a>745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-746"></a>746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if _track_dependencies[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-747"></a>747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(_require_dependencies, (mod, path, mtime(path)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-748"></a>748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-749"></a>749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return path, prev
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-750"></a>750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-751"></a>751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-752"></a>752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-753"></a>753</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    include_dependency(path::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-754"></a>754</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-755"></a>755</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">In a module, declare that the file specified by `path` (relative or absolute) is a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-756"></a>756</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">dependency for precompilation; that is, the module will need to be recompiled if this file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-757"></a>757</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">changes.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-758"></a>758</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-759"></a>759</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This is only needed if your module depends on a file that is not used via `include`. It has
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-760"></a>760</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">no effect outside of compilation.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-761"></a>761</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-762"></a>762</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function include_dependency(path::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-763"></a>763</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _include_dependency(Main, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-764"></a>764</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-765"></a>765</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-766"></a>766</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-767"></a>767</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># we throw PrecompilableError when a module doesn&#39;t want to be precompiled
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-768"></a>768</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct PrecompilableError &lt;: Exception end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-769"></a>769</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function show(io::IO, ex::PrecompilableError)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-770"></a>770</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print(io, &quot;Declaring __precompile__(false) is not allowed in files that are being precompiled.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-771"></a>771</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-772"></a>772</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">precompilableerror(ex::PrecompilableError) = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-773"></a>773</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">precompilableerror(ex::WrappedException) = precompilableerror(ex.error)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-774"></a>774</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">precompilableerror(@nospecialize ex) = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-775"></a>775</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-776"></a>776</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Call __precompile__(false) at the top of a tile prevent it from being precompiled (false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-777"></a>777</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-778"></a>778</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    __precompile__(isprecompilable::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-779"></a>779</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-780"></a>780</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Specify whether the file calling this function is precompilable, defaulting to `true`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-781"></a>781</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If a module or file is *not* safely precompilable, it should call `__precompile__(false)` in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-782"></a>782</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">order to throw an error if Julia attempts to precompile it.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-783"></a>783</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-784"></a>784</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@noinline function __precompile__(isprecompilable::Bool=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-785"></a>785</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isprecompilable &amp;&amp; ccall(:jl_generating_output, Cint, ()) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-786"></a>786</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(PrecompilableError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-787"></a>787</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-788"></a>788</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-789"></a>789</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-790"></a>790</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-791"></a>791</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># require always works in Main scope and loads files from node 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-792"></a>792</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const toplevel_load = Ref(true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-793"></a>793</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-794"></a>794</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const full_warning_showed = Ref(false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-795"></a>795</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const modules_warned_for = Set{PkgId}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-796"></a>796</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-797"></a>797</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-798"></a>798</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    require(into::Module, module::Symbol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-799"></a>799</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-800"></a>800</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This function is part of the implementation of `using` / `import`, if a module is not
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-801"></a>801</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">already defined in `Main`. It can also be called directly to force reloading a module,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-802"></a>802</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">regardless of whether it has been loaded before (for example, when interactively developing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-803"></a>803</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">libraries).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-804"></a>804</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-805"></a>805</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Loads a source file, in the context of the `Main` module, on every active node, searching
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-806"></a>806</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">standard locations for files. `require` is considered a top-level operation, so it sets the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-807"></a>807</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">current `include` path but does not use it to search for files (see help for `include`).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-808"></a>808</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This function is typically used to load library code, and is implicitly called by `using` to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-809"></a>809</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">load packages.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-810"></a>810</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-811"></a>811</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">When searching for files, `require` first looks for package code in the global array
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-812"></a>812</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`LOAD_PATH`. `require` is case-sensitive on all platforms, including those with
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-813"></a>813</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">case-insensitive filesystems like macOS and Windows.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-814"></a>814</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-815"></a>815</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">For more details regarding code loading, see the manual.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-816"></a>816</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-817"></a>817</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function require(into::Module, mod::Symbol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-818"></a>818</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uuidkey = identify_package(into, String(mod))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-819"></a>819</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Core.println(&quot;require($(PkgId(into)), $mod) -&gt; $uuidkey&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-820"></a>820</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if uuidkey === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-821"></a>821</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        where = PkgId(into)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-822"></a>822</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if where.uuid === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-823"></a>823</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            throw(ArgumentError(&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-824"></a>824</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Package $mod not found in current path:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-825"></a>825</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                - Run `import Pkg; Pkg.add($(repr(String(mod))))` to install the $mod package.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-826"></a>826</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                &quot;&quot;&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-827"></a>827</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-828"></a>828</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            s = &quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-829"></a>829</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Package $(where.name) does not have $mod in its dependencies:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-830"></a>830</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            - If you have $(where.name) checked out for development and have
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-831"></a>831</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              added $mod as a dependency but haven&#39;t updated your primary
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-832"></a>832</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              environment&#39;s manifest file, try `Pkg.resolve()`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-833"></a>833</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            - Otherwise you may need to report an issue with $(where.name)&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-834"></a>834</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-835"></a>835</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            uuidkey = identify_package(PkgId(string(into)), String(mod))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-836"></a>836</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            uuidkey === nothing &amp;&amp; throw(ArgumentError(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-837"></a>837</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-838"></a>838</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # fall back to toplevel loading with a warning
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-839"></a>839</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !(where in modules_warned_for)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-840"></a>840</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                @warn string(
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-841"></a>841</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    full_warning_showed[] ? &quot;&quot; : s, &quot;\n&quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-842"></a>842</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    string(&quot;Loading $(mod) into $(where.name) from project dependency, &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-843"></a>843</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                           &quot;future warnings for $(where.name) are suppressed.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-844"></a>844</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ) _module = nothing _file = nothing _group = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-845"></a>845</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(modules_warned_for, where)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-846"></a>846</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-847"></a>847</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            full_warning_showed[] = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-848"></a>848</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-849"></a>849</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-850"></a>850</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if _track_dependencies[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-851"></a>851</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(_require_dependencies, (into, binpack(uuidkey), 0.0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-852"></a>852</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-853"></a>853</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return require(uuidkey)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-854"></a>854</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-855"></a>855</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-856"></a>856</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function require(uuidkey::PkgId)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-857"></a>857</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !root_module_exists(uuidkey)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-858"></a>858</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        _require(uuidkey)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-859"></a>859</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # After successfully loading, notify downstream consumers
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-860"></a>860</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for callback in package_callbacks
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-861"></a>861</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            invokelatest(callback, uuidkey)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-862"></a>862</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-863"></a>863</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-864"></a>864</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return root_module(uuidkey)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-865"></a>865</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-866"></a>866</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-867"></a>867</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const loaded_modules = Dict{PkgId,Module}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-868"></a>868</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const module_keys = IdDict{Module,PkgId}() # the reverse
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-869"></a>869</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-870"></a>870</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is_root_module(m::Module) = haskey(module_keys, m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-871"></a>871</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">root_module_key(m::Module) = module_keys[m]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-872"></a>872</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-873"></a>873</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function register_root_module(m::Module)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-874"></a>874</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    key = PkgId(m, String(nameof(m)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-875"></a>875</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if haskey(loaded_modules, key)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-876"></a>876</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        oldm = loaded_modules[key]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-877"></a>877</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if oldm !== m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-878"></a>878</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @warn &quot;Replacing module `$(key.name)`&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-879"></a>879</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-880"></a>880</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-881"></a>881</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    loaded_modules[key] = m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-882"></a>882</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    module_keys[m] = key
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-883"></a>883</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-884"></a>884</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-885"></a>885</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-886"></a>886</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">register_root_module(Core)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-887"></a>887</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">register_root_module(Base)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-888"></a>888</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">register_root_module(Main)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-889"></a>889</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-890"></a>890</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This is used as the current module when loading top-level modules.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-891"></a>891</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># It has the special behavior that modules evaluated in it get added
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-892"></a>892</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># to the loaded_modules table instead of getting bindings.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-893"></a>893</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">baremodule __toplevel__
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-894"></a>894</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using Base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-895"></a>895</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-896"></a>896</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-897"></a>897</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># get a top-level Module from the given key
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-898"></a>898</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">root_module(key::PkgId) = loaded_modules[key]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-899"></a>899</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">root_module(where::Module, name::Symbol) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-900"></a>900</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    root_module(identify_package(where, String(name)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-901"></a>901</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-902"></a>902</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">root_module_exists(key::PkgId) = haskey(loaded_modules, key)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-903"></a>903</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">loaded_modules_array() = collect(values(loaded_modules))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-904"></a>904</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-905"></a>905</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unreference_module(key::PkgId)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-906"></a>906</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if haskey(loaded_modules, key)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-907"></a>907</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        m = pop!(loaded_modules, key)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-908"></a>908</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # need to ensure all modules are GC rooted; will still be referenced
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-909"></a>909</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # in module_keys
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-910"></a>910</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-911"></a>911</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-912"></a>912</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-913"></a>913</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _require(pkg::PkgId)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-914"></a>914</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # handle recursive calls to require
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-915"></a>915</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    loading = get(package_locks, pkg, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-916"></a>916</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if loading !== false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-917"></a>917</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # load already in progress for this module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-918"></a>918</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        wait(loading)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-919"></a>919</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-920"></a>920</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-921"></a>921</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    package_locks[pkg] = Condition()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-922"></a>922</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-923"></a>923</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    last = toplevel_load[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-924"></a>924</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-925"></a>925</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        toplevel_load[] = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-926"></a>926</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # perform the search operation to select the module file require intends to load
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-927"></a>927</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path = locate_package(pkg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-928"></a>928</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if path === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-929"></a>929</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            throw(ArgumentError(&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-930"></a>930</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Package $pkg is required but does not seem to be installed:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-931"></a>931</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                 - Run `Pkg.instantiate()` to install all recorded dependencies.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-932"></a>932</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                &quot;&quot;&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-933"></a>933</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-934"></a>934</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-935"></a>935</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # attempt to load the module file via the precompile cache locations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-936"></a>936</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if JLOptions().use_compiled_modules != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-937"></a>937</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            m = _require_search_from_serialized(pkg, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-938"></a>938</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !isa(m, Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-939"></a>939</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-940"></a>940</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-941"></a>941</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-942"></a>942</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-943"></a>943</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # if the module being required was supposed to have a particular version
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-944"></a>944</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # but it was not handled by the precompile loader, complain
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-945"></a>945</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for (concrete_pkg, concrete_build_id) in _concrete_dependencies
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-946"></a>946</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if pkg == concrete_pkg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-947"></a>947</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                @warn &quot;&quot;&quot;Module $(pkg.name) with build ID $concrete_build_id is missing from the cache.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-948"></a>948</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                     This may mean $pkg does not support precompilation but is imported by a module that does.&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-949"></a>949</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if JLOptions().incremental != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-950"></a>950</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # during incremental precompilation, this should be fail-fast
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-951"></a>951</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    throw(PrecompilableError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-952"></a>952</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-953"></a>953</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-954"></a>954</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-955"></a>955</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-956"></a>956</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if JLOptions().use_compiled_modules != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-957"></a>957</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if (0 == ccall(:jl_generating_output, Cint, ())) || (JLOptions().incremental != 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-958"></a>958</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # spawn off a new incremental pre-compile task for recursive `require` calls
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-959"></a>959</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # or if the require search declared it was pre-compiled before (and therefore is expected to still be pre-compilable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-960"></a>960</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                cachefile = compilecache(pkg, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-961"></a>961</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(cachefile, Exception)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-962"></a>962</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if !precompilableerror(cachefile)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-963"></a>963</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        @warn &quot;The call to compilecache failed to create a usable precompiled cache file for $pkg&quot; exception=m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-964"></a>964</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-965"></a>965</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # fall-through to loading the file locally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-966"></a>966</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-967"></a>967</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    m = _require_from_serialized(cachefile)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-968"></a>968</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if isa(m, Exception)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-969"></a>969</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        @warn &quot;The call to compilecache failed to create a usable precompiled cache file for $pkg&quot; exception=m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-970"></a>970</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-971"></a>971</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-972"></a>972</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-973"></a>973</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-974"></a>974</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-975"></a>975</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-976"></a>976</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-977"></a>977</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # just load the file normally via include
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-978"></a>978</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # for unknown dependencies
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-979"></a>979</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uuid = pkg.uuid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-980"></a>980</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uuid = (uuid === nothing ? (UInt64(0), UInt64(0)) : convert(NTuple{2, UInt64}, uuid))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-981"></a>981</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        old_uuid = ccall(:jl_module_uuid, NTuple{2, UInt64}, (Any,), __toplevel__)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-982"></a>982</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if uuid !== old_uuid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-983"></a>983</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ccall(:jl_set_module_uuid, Cvoid, (Any, NTuple{2, UInt64}), __toplevel__, uuid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-984"></a>984</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-985"></a>985</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-986"></a>986</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            include_relative(__toplevel__, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-987"></a>987</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-988"></a>988</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-989"></a>989</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if uuid !== old_uuid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-990"></a>990</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ccall(:jl_set_module_uuid, Cvoid, (Any, NTuple{2, UInt64}), __toplevel__, old_uuid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-991"></a>991</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-992"></a>992</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-993"></a>993</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-994"></a>994</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        toplevel_load[] = last
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-995"></a>995</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        loading = pop!(package_locks, pkg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-996"></a>996</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        notify(loading, all=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-997"></a>997</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-998"></a>998</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-999"></a>999</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1000"></a>1000</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1001"></a>1001</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># relative-path load
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1002"></a>1002</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1003"></a>1003</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1004"></a>1004</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    include_string(m::Module, code::AbstractString, filename::AbstractString=&quot;string&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1005"></a>1005</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1006"></a>1006</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Like `include`, except reads code from the given string rather than from a file.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1007"></a>1007</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1008"></a>1008</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include_string(m::Module, txt::String, fname::String) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1009"></a>1009</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_load_file_string, Any, (Ptr{UInt8}, Csize_t, Cstring, Any),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1010"></a>1010</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">          txt, sizeof(txt), fname, m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1011"></a>1011</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1012"></a>1012</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include_string(m::Module, txt::AbstractString, fname::AbstractString=&quot;string&quot;) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1013"></a>1013</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    include_string(m, String(txt), String(fname))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1014"></a>1014</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1015"></a>1015</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function source_path(default::Union{AbstractString,Nothing}=&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1016"></a>1016</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = current_task()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1017"></a>1017</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1018"></a>1018</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        s = t.storage
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1019"></a>1019</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if s !== nothing &amp;&amp; haskey(s, :SOURCE_PATH)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1020"></a>1020</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return s[:SOURCE_PATH]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1021"></a>1021</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1022"></a>1022</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if t === t.parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1023"></a>1023</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return default
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1024"></a>1024</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1025"></a>1025</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = t.parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1026"></a>1026</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1027"></a>1027</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1028"></a>1028</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1029"></a>1029</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function source_dir()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1030"></a>1030</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = source_path(nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1031"></a>1031</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p === nothing ? pwd() : dirname(p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1032"></a>1032</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1033"></a>1033</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1034"></a>1034</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include_relative(mod::Module, path::AbstractString) = include_relative(mod, String(path))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1035"></a>1035</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-loading-jl-include_relative-1035"></a>
+              40 (95.24%) samples spent in include_relative<br />
+              0 (ex.),
+              40 (100.00%) (incl.)
+              when called from
+              include
+              <a href="sysimg-jl-58aafbf6293fe483e566-line.html#Lsysimg-jl-58aafbf6293fe483e566-line.html-29">line 29</a><br />
+            </div>
+            <span class="code">function include_relative(mod::Module, _path::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1036"></a>1036</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    path, prev = _include_dependency(mod, _path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1037"></a>1037</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for callback in include_callbacks # to preserve order, must come before Core.include
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1038"></a>1038</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        invokelatest(callback, mod, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1039"></a>1039</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1040"></a>1040</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tls = task_local_storage()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1041"></a>1041</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tls[:SOURCE_PATH] = path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1042"></a>1042</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    local result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1043"></a>1043</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1044"></a>1044</td>
+          <td></td>
+          <td>40 (95.24%)</td>
+          <td>
+            <div class="callees">
+              40 (100.00%)
+              samples spent calling
+              <a href="boot-jl-1c95b3ccecba8d7f1acb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-boot-jl-include-317">include</a><br />
+            </div>
+            <span class="code">        result = Core.include(mod, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1045"></a>1045</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1046"></a>1046</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if prev === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1047"></a>1047</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            delete!(tls, :SOURCE_PATH)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1048"></a>1048</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1049"></a>1049</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            tls[:SOURCE_PATH] = prev
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1050"></a>1050</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1051"></a>1051</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1052"></a>1052</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1053"></a>1053</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1054"></a>1054</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1055"></a>1055</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1056"></a>1056</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.include([m::Module,] path::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1057"></a>1057</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1058"></a>1058</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Evaluate the contents of the input source file in the global scope of module `m`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1059"></a>1059</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Every module (except those defined with `baremodule`) has its own 1-argument
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1060"></a>1060</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">definition of `include`, which evaluates the file in that module.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1061"></a>1061</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Returns the result of the last evaluated expression of the input file. During including,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1062"></a>1062</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a task-local include path is set to the directory containing the file. Nested calls to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1063"></a>1063</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`include` will search relative to that path. This function is typically used to load source
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1064"></a>1064</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">interactively, or to combine files in packages that are broken into multiple source files.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1065"></a>1065</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1066"></a>1066</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Base.include # defined in sysimg.jl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1067"></a>1067</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1068"></a>1068</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1069"></a>1069</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    evalfile(path::AbstractString, args::Vector{String}=String[])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1070"></a>1070</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1071"></a>1071</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Load the file using [`Base.include`](@ref), evaluate all expressions,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1072"></a>1072</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and return the value of the last one.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1073"></a>1073</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1074"></a>1074</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function evalfile(path::AbstractString, args::Vector{String}=String[])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1075"></a>1075</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Core.eval(Module(:__anon__),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1076"></a>1076</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        Expr(:toplevel,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1077"></a>1077</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             :(const ARGS = $args),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1078"></a>1078</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             :(eval(x) = $(Expr(:core, :eval))(__anon__, x)),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1079"></a>1079</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             :(include(x) = $(Expr(:top, :include))(__anon__, x)),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1080"></a>1080</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             :(include($path))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1081"></a>1081</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1082"></a>1082</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">evalfile(path::AbstractString, args::Vector) = evalfile(path, String[args...])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1083"></a>1083</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1084"></a>1084</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function load_path_setup_code(load_path::Bool=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1085"></a>1085</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code = &quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1086"></a>1086</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    append!(empty!(Base.DEPOT_PATH), $(repr(map(abspath, DEPOT_PATH))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1087"></a>1087</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    append!(empty!(Base.DL_LOAD_PATH), $(repr(map(abspath, DL_LOAD_PATH))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1088"></a>1088</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1089"></a>1089</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if load_path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1090"></a>1090</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        load_path = map(abspath, Base.load_path())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1091"></a>1091</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path_sep = Sys.iswindows() ? &#39;;&#39; : &#39;:&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1092"></a>1092</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        any(path -&gt; path_sep in path, load_path) &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1093"></a>1093</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            error(&quot;LOAD_PATH entries cannot contain $(repr(path_sep))&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1094"></a>1094</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        code *= &quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1095"></a>1095</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        append!(empty!(Base.LOAD_PATH), $(repr(load_path)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1096"></a>1096</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ENV[&quot;JULIA_LOAD_PATH&quot;] = $(repr(join(load_path, Sys.iswindows() ? &#39;;&#39; : &#39;:&#39;)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1097"></a>1097</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        Base.HOME_PROJECT[] = Base.ACTIVE_PROJECT[] = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1098"></a>1098</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        &quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1099"></a>1099</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1100"></a>1100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return code
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1101"></a>1101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1102"></a>1102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1103"></a>1103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function create_expr_cache(input::String, output::String, concrete_deps::typeof(_concrete_dependencies), uuid::Union{Nothing,UUID})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1104"></a>1104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rm(output, force=true)   # Remove file if it exists
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1105"></a>1105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code_object = &quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1106"></a>1106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while !eof(stdin)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1107"></a>1107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            code = readuntil(stdin, &#39;\\0&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1108"></a>1108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            eval(Meta.parse(code))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1109"></a>1109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1110"></a>1110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        &quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1111"></a>1111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io = open(pipeline(detach(`$(julia_cmd()) -O0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1112"></a>1112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                              --output-ji $output --output-incremental=yes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1113"></a>1113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                              --startup-file=no --history-file=no --warn-overwrite=yes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1114"></a>1114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                              --color=$(have_color ? &quot;yes&quot; : &quot;no&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1115"></a>1115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                              --eval $code_object`), stderr=stderr),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1116"></a>1116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              &quot;w&quot;, stdout)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1117"></a>1117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    in = io.in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1118"></a>1118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1119"></a>1119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        write(in, &quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1120"></a>1120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1121"></a>1121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                $(Base.load_path_setup_code())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1122"></a>1122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Base._track_dependencies[] = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1123"></a>1123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Base.empty!(Base._concrete_dependencies)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1124"></a>1124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            &quot;&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1125"></a>1125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for (pkg, build_id) in concrete_deps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1126"></a>1126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            pkg_str = if pkg.uuid === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1127"></a>1127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                &quot;Base.PkgId($(repr(pkg.name)))&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1128"></a>1128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1129"></a>1129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                &quot;Base.PkgId(Base.UUID(\&quot;$(pkg.uuid)\&quot;), $(repr(pkg.name)))&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1130"></a>1130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1131"></a>1131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            write(in, &quot;Base.push!(Base._concrete_dependencies, $pkg_str =&gt; $(repr(build_id)))\n&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1132"></a>1132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1133"></a>1133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        write(io, &quot;end\0&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1134"></a>1134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uuid_tuple = uuid === nothing ? (0, 0) : convert(NTuple{2, UInt64}, uuid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1135"></a>1135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        write(in, &quot;ccall(:jl_set_module_uuid, Cvoid, (Any, NTuple{2, UInt64}), Base.__toplevel__, $uuid_tuple)\0&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1136"></a>1136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        source = source_path(nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1137"></a>1137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if source !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1138"></a>1138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            write(in, &quot;task_local_storage()[:SOURCE_PATH] = $(repr(source))\0&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1139"></a>1139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1140"></a>1140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        write(in, &quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1141"></a>1141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1142"></a>1142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Base.include(Base.__toplevel__, $(repr(abspath(input))))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1143"></a>1143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            catch ex
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1144"></a>1144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Base.precompilableerror(ex) || Base.rethrow(ex)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1145"></a>1145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Base.@debug &quot;Aborting `createexprcache&#39;&quot; exception=(Base.ErrorException(&quot;Declaration of __precompile__(false) not allowed&quot;), Base.catch_backtrace())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1146"></a>1146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Base.exit(125) # we define status = 125 means PrecompileableError
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1147"></a>1147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end\0&quot;&quot;&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1148"></a>1148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # TODO: cleanup is probably unnecessary here
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1149"></a>1149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if source !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1150"></a>1150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            write(in, &quot;delete!(task_local_storage(), :SOURCE_PATH)\0&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1151"></a>1151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1152"></a>1152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        write(in, &quot;ccall(:jl_set_module_uuid, Cvoid, (Any, NTuple{2, UInt64}), Base.__toplevel__, (0, 0))\0&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1153"></a>1153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        close(in)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1154"></a>1154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    catch ex
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1155"></a>1155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        close(in)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1156"></a>1156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        process_running(io) &amp;&amp; Timer(t -&gt; kill(io), 5.0) # wait a short time before killing the process to give it a chance to clean up on its own first
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1157"></a>1157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rethrow(ex)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1158"></a>1158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1159"></a>1159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return io
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1160"></a>1160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1161"></a>1161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1162"></a>1162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1163"></a>1163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.compilecache(module::PkgId)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1164"></a>1164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1165"></a>1165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Creates a precompiled cache file for a module and all of its dependencies.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1166"></a>1166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This can be used to reduce package load times. Cache files are stored in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1167"></a>1167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`DEPOT_PATH[1]/compiled`. See [Module initialization and precompilation](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1168"></a>1168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for important notes.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1169"></a>1169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1170"></a>1170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function compilecache(pkg::PkgId)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1171"></a>1171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    path = locate_package(pkg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1172"></a>1172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    path === nothing &amp;&amp; throw(ArgumentError(&quot;$pkg not found during precompilation&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1173"></a>1173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return compilecache(pkg, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1174"></a>1174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1175"></a>1175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function compilecache(pkg::PkgId, path::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1176"></a>1176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # decide where to put the resulting cache file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1177"></a>1177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cachefile = abspath(DEPOT_PATH[1], cache_file_entry(pkg))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1178"></a>1178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cachepath = dirname(cachefile)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1179"></a>1179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isdir(cachepath) || mkpath(cachepath)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1180"></a>1180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # build up the list of modules that we want the precompile process to preserve
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1181"></a>1181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    concrete_deps = copy(_concrete_dependencies)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1182"></a>1182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (key, mod) in loaded_modules
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1183"></a>1183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !(mod === Main || mod === Core || mod === Base)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1184"></a>1184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(concrete_deps, key =&gt; module_build_id(mod))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1185"></a>1185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1186"></a>1186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1187"></a>1187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # run the expression and cache the result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1188"></a>1188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    verbosity = isinteractive() ? CoreLogging.Info : CoreLogging.Debug
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1189"></a>1189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isfile(cachefile)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1190"></a>1190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @logmsg verbosity &quot;Recompiling stale cache file $cachefile for $pkg&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1191"></a>1191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1192"></a>1192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @logmsg verbosity &quot;Precompiling $pkg&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1193"></a>1193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1194"></a>1194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = create_expr_cache(path, cachefile, concrete_deps, pkg.uuid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1195"></a>1195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if success(p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1196"></a>1196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # append checksum to the end of the .ji file:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1197"></a>1197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        open(cachefile, &quot;a+&quot;) do f
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1198"></a>1198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            write(f, _crc32c(seekstart(f)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1199"></a>1199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1200"></a>1200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif p.exitcode == 125
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1201"></a>1201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return PrecompilableError()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1202"></a>1202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1203"></a>1203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;Failed to precompile $pkg to $cachefile.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1204"></a>1204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1205"></a>1205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return cachefile
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1206"></a>1206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1207"></a>1207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1208"></a>1208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">module_build_id(m::Module) = ccall(:jl_module_build_id, UInt64, (Any,), m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1209"></a>1209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1210"></a>1210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isvalid_cache_header(f::IOStream) = (0 != ccall(:jl_read_verify_header, Cint, (Ptr{Cvoid},), f.ios))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1211"></a>1211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isvalid_file_crc(f::IOStream) = (_crc32c(seekstart(f), filesize(f) - 4) == read(f, UInt32))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1212"></a>1212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1213"></a>1213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function parse_cache_header(f::IO)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1214"></a>1214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    modules = Vector{Pair{PkgId, UInt64}}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1215"></a>1215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1216"></a>1216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n = read(f, Int32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1217"></a>1217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n == 0 &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1218"></a>1218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sym = String(read(f, n)) # module name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1219"></a>1219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uuid = UUID((read(f, UInt64), read(f, UInt64))) # pkg UUID
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1220"></a>1220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        build_id = read(f, UInt64) # build UUID (mostly just a timestamp)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1221"></a>1221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(modules, PkgId(uuid, sym) =&gt; build_id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1222"></a>1222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1223"></a>1223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    totbytes = read(f, Int64) # total bytes for file dependencies
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1224"></a>1224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # read the list of requirements
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1225"></a>1225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # and split the list into include and requires statements
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1226"></a>1226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    includes = Tuple{PkgId, String, Float64}[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1227"></a>1227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    requires = Pair{PkgId, PkgId}[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1228"></a>1228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1229"></a>1229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n2 = read(f, Int32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1230"></a>1230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n2 == 0 &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1231"></a>1231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        depname = String(read(f, n2))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1232"></a>1232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        mtime = read(f, Float64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1233"></a>1233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n1 = read(f, Int32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1234"></a>1234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # map ids to keys
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1235"></a>1235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        modkey = (n1 == 0) ? PkgId(&quot;&quot;) : modules[n1].first
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1236"></a>1236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if n1 != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1237"></a>1237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # consume (and ignore) the module path too
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1238"></a>1238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1239"></a>1239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                n1 = read(f, Int32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1240"></a>1240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                totbytes -= 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1241"></a>1241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                n1 == 0 &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1242"></a>1242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                skip(f, n1) # String(read(f, n1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1243"></a>1243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                totbytes -= n1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1244"></a>1244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1245"></a>1245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1246"></a>1246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if depname[1] == &#39;\0&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1247"></a>1247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(requires, modkey =&gt; binunpack(depname))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1248"></a>1248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1249"></a>1249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            push!(includes, (modkey, depname, mtime))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1250"></a>1250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1251"></a>1251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        totbytes -= 4 + 4 + n2 + 8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1252"></a>1252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1253"></a>1253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert totbytes == 12 &quot;header of cache file appears to be corrupt&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1254"></a>1254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    srctextpos = read(f, Int64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1255"></a>1255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # read the list of modules that are required to be present during loading
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1256"></a>1256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    required_modules = Vector{Pair{PkgId, UInt64}}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1257"></a>1257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1258"></a>1258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n = read(f, Int32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1259"></a>1259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n == 0 &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1260"></a>1260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sym = String(read(f, n)) # module name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1261"></a>1261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uuid = UUID((read(f, UInt64), read(f, UInt64))) # pkg UUID
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1262"></a>1262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        build_id = read(f, UInt64) # build id
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1263"></a>1263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(required_modules, PkgId(uuid, sym) =&gt; build_id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1264"></a>1264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1265"></a>1265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return modules, (includes, requires), required_modules, srctextpos
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1266"></a>1266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1267"></a>1267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1268"></a>1268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function parse_cache_header(cachefile::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1269"></a>1269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io = open(cachefile, &quot;r&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1270"></a>1270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1271"></a>1271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        !isvalid_cache_header(io) &amp;&amp; throw(ArgumentError(&quot;Invalid header in cache file $cachefile.&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1272"></a>1272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return parse_cache_header(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1273"></a>1273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1274"></a>1274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        close(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1275"></a>1275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1276"></a>1276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1277"></a>1277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1278"></a>1278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function cache_dependencies(f::IO)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1279"></a>1279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    defs, (includes, requires), modules = parse_cache_header(f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1280"></a>1280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return modules, map(mod_fl_mt -&gt; (mod_fl_mt[2], mod_fl_mt[3]), includes)  # discard the module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1281"></a>1281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1282"></a>1282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1283"></a>1283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function cache_dependencies(cachefile::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1284"></a>1284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io = open(cachefile, &quot;r&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1285"></a>1285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1286"></a>1286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        !isvalid_cache_header(io) &amp;&amp; throw(ArgumentError(&quot;Invalid header in cache file $cachefile.&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1287"></a>1287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return cache_dependencies(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1288"></a>1288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1289"></a>1289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        close(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1290"></a>1290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1291"></a>1291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1292"></a>1292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1293"></a>1293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read_dependency_src(io::IO, filename::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1294"></a>1294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    modules, (includes, requires), required_modules, srctextpos = parse_cache_header(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1295"></a>1295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    srctextpos == 0 &amp;&amp; error(&quot;no source-text stored in cache file&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1296"></a>1296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    seek(io, srctextpos)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1297"></a>1297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return _read_dependency_src(io, filename)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1298"></a>1298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1299"></a>1299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1300"></a>1300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _read_dependency_src(io::IO, filename::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1301"></a>1301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while !eof(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1302"></a>1302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        filenamelen = read(io, Int32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1303"></a>1303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        filenamelen == 0 &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1304"></a>1304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        fn = String(read(io, filenamelen))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1305"></a>1305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        len = read(io, UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1306"></a>1306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if fn == filename
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1307"></a>1307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return String(read(io, len))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1308"></a>1308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1309"></a>1309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        seek(io, position(io) + len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1310"></a>1310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1311"></a>1311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    error(filename, &quot; is not stored in the source-text cache&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1312"></a>1312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1313"></a>1313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1314"></a>1314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read_dependency_src(cachefile::String, filename::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1315"></a>1315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io = open(cachefile, &quot;r&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1316"></a>1316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1317"></a>1317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        !isvalid_cache_header(io) &amp;&amp; throw(ArgumentError(&quot;Invalid header in cache file $cachefile.&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1318"></a>1318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return read_dependency_src(io, filename)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1319"></a>1319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1320"></a>1320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        close(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1321"></a>1321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1322"></a>1322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1323"></a>1323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1324"></a>1324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># returns true if it &quot;cachefile.ji&quot; is stale relative to &quot;modpath.jl&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1325"></a>1325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># otherwise returns the list of dependencies to also check
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1326"></a>1326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function stale_cachefile(modpath::String, cachefile::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1327"></a>1327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io = open(cachefile, &quot;r&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1328"></a>1328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1329"></a>1329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isvalid_cache_header(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1330"></a>1330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @debug &quot;Rejecting cache file $cachefile due to it containing an invalid cache header&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1331"></a>1331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return true # invalid cache file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1332"></a>1332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1333"></a>1333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (modules, (includes, requires), required_modules) = parse_cache_header(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1334"></a>1334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        modules = Dict{PkgId, UInt64}(modules)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1335"></a>1335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1336"></a>1336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Check if transitive dependencies can be fulfilled
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1337"></a>1337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ndeps = length(required_modules)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1338"></a>1338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        depmods = Vector{Any}(undef, ndeps)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1339"></a>1339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i in 1:ndeps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1340"></a>1340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            req_key, req_build_id = required_modules[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1341"></a>1341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # Module is already loaded
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1342"></a>1342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if root_module_exists(req_key)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1343"></a>1343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                M = root_module(req_key)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1344"></a>1344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if PkgId(M) == req_key &amp;&amp; module_build_id(M) === req_build_id
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1345"></a>1345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    depmods[i] = M
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1346"></a>1346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1347"></a>1347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    @debug &quot;Rejecting cache file $cachefile because module $req_key is already loaded and incompatible.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1348"></a>1348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return true # Won&#39;t be able to fulfill dependency
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1349"></a>1349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1350"></a>1350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1351"></a>1351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                path = locate_package(req_key)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1352"></a>1352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if path === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1353"></a>1353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    @debug &quot;Rejecting cache file $cachefile because dependency $req_key not found.&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1354"></a>1354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return true # Won&#39;t be able to fulfill dependency
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1355"></a>1355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1356"></a>1356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                depmods[i] = (path, req_key, req_build_id)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1357"></a>1357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1358"></a>1358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1359"></a>1359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1360"></a>1360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # check if this file is going to provide one of our concrete dependencies
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1361"></a>1361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # or if it provides a version that conflicts with our concrete dependencies
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1362"></a>1362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # or neither
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1363"></a>1363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        skip_timecheck = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1364"></a>1364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for (req_key, req_build_id) in _concrete_dependencies
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1365"></a>1365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            build_id = get(modules, req_key, UInt64(0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1366"></a>1366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if build_id !== UInt64(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1367"></a>1367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if build_id === req_build_id
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1368"></a>1368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    skip_timecheck = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1369"></a>1369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1370"></a>1370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1371"></a>1371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                @debug &quot;Rejecting cache file $cachefile because it provides the wrong uuid (got $build_id) for $mod (want $req_build_id)&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1372"></a>1372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return true # cachefile doesn&#39;t provide the required version of the dependency
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1373"></a>1373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1374"></a>1374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1375"></a>1375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1376"></a>1376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # now check if this file is fresh relative to its source files
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1377"></a>1377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !skip_timecheck
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1378"></a>1378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !samefile(includes[1][2], modpath)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1379"></a>1379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                @debug &quot;Rejecting cache file $cachefile because it is for file $(includes[1][2])) not file $modpath&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1380"></a>1380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return true # cache file was compiled from a different path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1381"></a>1381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1382"></a>1382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for (modkey, req_modkey) in requires
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1383"></a>1383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # verify that `require(modkey, name(req_modkey))` ==&gt; `req_modkey`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1384"></a>1384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if identify_package(modkey, req_modkey.name) != req_modkey
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1385"></a>1385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    @debug &quot;Rejecting cache file $cachefile because uuid mapping for $modkey =&gt; $req_modkey has changed&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1386"></a>1386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1387"></a>1387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1388"></a>1388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1389"></a>1389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for (_, f, ftime_req) in includes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1390"></a>1390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # Issue #13606: compensate for Docker images rounding mtimes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1391"></a>1391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # Issue #20837: compensate for GlusterFS truncating mtimes to microseconds
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1392"></a>1392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ftime = mtime(f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1393"></a>1393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if ftime != ftime_req &amp;&amp; ftime != floor(ftime_req) &amp;&amp; ftime != trunc(ftime_req, digits=6)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1394"></a>1394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    @debug &quot;Rejecting stale cache file $cachefile (mtime $ftime_req) because file $f (mtime $ftime) has changed&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1395"></a>1395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1396"></a>1396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1397"></a>1397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1398"></a>1398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1399"></a>1399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1400"></a>1400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isvalid_file_crc(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1401"></a>1401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @debug &quot;Rejecting cache file $cachefile because it has an invalid checksum&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1402"></a>1402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1403"></a>1403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1404"></a>1404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1405"></a>1405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return depmods # fresh cachefile
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1406"></a>1406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1407"></a>1407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        close(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1408"></a>1408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1409"></a>1409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1410"></a>1410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1411"></a>1411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1412"></a>1412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @__FILE__ -&gt; AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1413"></a>1413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1414"></a>1414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Expand to a string with the path to the file containing the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1415"></a>1415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macrocall, or an empty string if evaluated by `julia -e &lt;expr&gt;`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1416"></a>1416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `nothing` if the macro was missing parser source information.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1417"></a>1417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Alternatively see [`PROGRAM_FILE`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1418"></a>1418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1419"></a>1419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro __FILE__()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1420"></a>1420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    __source__.file === nothing &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1421"></a>1421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return String(__source__.file)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1422"></a>1422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1423"></a>1423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1424"></a>1424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1425"></a>1425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @__DIR__ -&gt; AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1426"></a>1426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1427"></a>1427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Expand to a string with the absolute path to the directory of the file
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1428"></a>1428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">containing the macrocall.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1429"></a>1429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the current working directory if run from a REPL or if evaluated by `julia -e &lt;expr&gt;`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1430"></a>1430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1431"></a>1431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro __DIR__()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1432"></a>1432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    __source__.file === nothing &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1433"></a>1433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return abspath(dirname(String(__source__.file)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lloading-jl-267f08df202e5203e249-line.html-1434"></a>1434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/operators-jl-714ade2c8745dd55a410-line.html b/profiling/statprof/operators-jl-714ade2c8745dd55a410-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..a2bbf4162d55e82d4539fe4f245798c4b7e845ab
--- /dev/null
+++ b/profiling/statprof/operators-jl-714ade2c8745dd55a410-line.html
@@ -0,0 +1,10307 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## types ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &lt;:(T1, T2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Subtype operator: returns `true` if and only if all values of type `T1` are
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">also of type `T2`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Float64 &lt;: AbstractFloat
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Vector{Int} &lt;: AbstractArray
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Matrix{Float64} &lt;: Matrix{AbstractFloat}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(&lt;:)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &gt;:(T1, T2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Supertype operator, equivalent to `T2 &lt;: T1`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const (&gt;:)(@nospecialize(a), @nospecialize(b)) = (b &lt;: a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    supertype(T::DataType)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the supertype of DataType `T`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; supertype(Int32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Signed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function supertype(T::DataType)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    T.super
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function supertype(T::UnionAll)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    UnionAll(T.var, supertype(T.body))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## generic comparison ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ==(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Generic equality operator. Falls back to [`===`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Should be implemented for all types with a notion of equality, based on the abstract value
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">that an instance represents. For example, all numeric types are compared by numeric value,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ignoring type. Strings are compared as sequences of characters, ignoring encoding.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">For collections, `==` is generally called recursively on all contents,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">though other properties (like the shape for arrays) may also be taken into account.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This operator follows IEEE semantics for floating-point numbers: `0.0 == -0.0` and
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`NaN != NaN`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The result is of type `Bool`, except when one of the operands is [`missing`](@ref),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">in which case `missing` is returned
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">([three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic)).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">For collections, `missing` is returned if at least one of the operands contains
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a `missing` value and all non-missing values are equal.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Use [`isequal`](@ref) or [`===`](@ref) to always get a `Bool` result.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Implementation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">New numeric types should implement this function for two arguments of the new type, and
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">handle comparison to other types via promotion rules where possible.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`isequal`](@ref) falls back to `==`, so new methods of `==` will be used by the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`Dict`](@ref) type to compare keys. If your type will be used as a dictionary key, it
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">should therefore also implement [`hash`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(x, y) = x === y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isequal(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Similar to [`==`](@ref), except for the treatment of floating point numbers
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and of missing values. `isequal` treats all floating-point `NaN` values as equal
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to each other, treats `-0.0` as unequal to `0.0`, and [`missing`](@ref) as equal
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to `missing`. Always returns a `Bool` value.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Implementation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The default implementation of `isequal` calls `==`, so a type that does not involve
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">floating-point values generally only needs to define `==`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`isequal` is the comparison function used by hash tables (`Dict`). `isequal(x,y)` must imply
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">that `hash(x) == hash(y)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This typically means that types for which a custom `==` or `isequal` method exists must
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">implement a corresponding `hash` method (and vice versa). Collections typically implement
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`isequal` by calling `isequal` recursively on all contents.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Scalar types generally do not need to implement `isequal` separate from `==`, unless they
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">represent floating-point numbers amenable to a more efficient implementation than that
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">provided as a generic fallback (based on `isnan`, `signbit`, and `==`).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isequal([1., NaN], [1., NaN])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; [1., NaN] == [1., NaN]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 0.0 == -0.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isequal(0.0, -0.0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isequal(x, y) = x == y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">signequal(x, y) = signbit(x)::Bool == signbit(y)::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">signless(x, y) = signbit(x)::Bool &amp; !signbit(y)::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isequal(x::AbstractFloat, y::AbstractFloat) = (isnan(x) &amp; isnan(y)) | signequal(x, y) &amp; (x == y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isequal(x::Real,          y::AbstractFloat) = (isnan(x) &amp; isnan(y)) | signequal(x, y) &amp; (x == y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isequal(x::AbstractFloat, y::Real         ) = (isnan(x) &amp; isnan(y)) | signequal(x, y) &amp; (x == y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isless(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Test whether `x` is less than `y`, according to a canonical total order. Values that are
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">normally unordered, such as `NaN`, are ordered in an arbitrary but consistent fashion.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`missing`](@ref) values are ordered last.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This is the default comparison used by [`sort`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Implementation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Non-numeric types with a canonical total order should implement this function.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Numeric types only need to implement it if they have special values such as `NaN`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Types with a canonical partial order should implement [`&lt;`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isless end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isless(x::AbstractFloat, y::AbstractFloat) = (!isnan(x) &amp; (isnan(y) | signless(x, y))) | (x &lt; y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isless(x::Real,          y::AbstractFloat) = (!isnan(x) &amp; (isnan(y) | signless(x, y))) | (x &lt; y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isless(x::AbstractFloat, y::Real         ) = (!isnan(x) &amp; (isnan(y) | signless(x, y))) | (x &lt; y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function ==(T::Type, S::Type)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    T&lt;:S &amp;&amp; S&lt;:T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function !=(T::Type, S::Type)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    !(T == S)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(T::TypeVar, S::Type) = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(T::Type, S::TypeVar) = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## comparison fallbacks ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    !=(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ≠(x,y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Not-equals comparison operator. Always gives the opposite answer as [`==`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Implementation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">New types should generally not implement this, and rely on the fallback definition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`!=(x,y) = !(x==y)` instead.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 3 != 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; &quot;foo&quot; ≠ &quot;foo&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!=(x, y) = !(x == y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const ≠ = !=
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ===(x,y) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ≡(x,y) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether `x` and `y` are identical, in the sense that no program could distinguish
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">them. First the types of `x` and `y` are compared. If those are identical, mutable objects
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">are compared by address in memory and immutable objects (such as numbers) are compared by
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">contents at the bit level. This function is sometimes called &quot;egal&quot;.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">It always returns a `Bool` value.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a = [1, 2]; b = [1, 2];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a == b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a === b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a === a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">===
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const ≡ = ===
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    !==(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ≢(x,y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Always gives the opposite answer as [`===`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a = [1, 2]; b = [1, 2];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a ≢ b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a ≢ a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!==(@nospecialize(x), @nospecialize(y)) = !(x === y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const ≢ = !==
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &lt;(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Less-than comparison operator. Falls back to [`isless`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Because of the behavior of floating-point NaN values, this operator implements
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a partial order.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Implementation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">New numeric types with a canonical partial order should implement this function for
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">two arguments of the new type.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Types with a canonical total order should implement [`isless`](@ref) instead.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(x &lt; y) | (x == y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; &#39;a&#39; &lt; &#39;b&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; &quot;abc&quot; &lt; &quot;abd&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 5 &lt; 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;(x, y) = isless(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &gt;(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Greater-than comparison operator. Falls back to `y &lt; x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Implementation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Generally, new types should implement [`&lt;`](@ref) instead of this function,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and rely on the fallback definition `&gt;(x, y) = y &lt; x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; &#39;a&#39; &gt; &#39;b&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 7 &gt; 3 &gt; 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; &quot;abc&quot; &gt; &quot;abd&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 5 &gt; 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-286"></a>286</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-operators-jl-286"></a>
+              1 (2.38%) samples spent in &gt;<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              unsafe_write
+              <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#Liobuffer-jl-0cfbb4403b3061764f48-line.html-407">line 407</a><br />
+            </div>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-49">&lt;</a><br />
+            </div>
+            <span class="code">&gt;(x, y) = y &lt; x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &lt;=(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ≤(x,y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Less-than-or-equals comparison operator. Falls back to `(x &lt; y) | (x == y)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; &#39;a&#39; &lt;= &#39;b&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 7 ≤ 7 ≤ 9
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; &quot;abc&quot; ≤ &quot;abc&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 5 &lt;= 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;=(x, y) = (x &lt; y) | (x == y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const ≤ = &lt;=
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &gt;=(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ≥(x,y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Greater-than-or-equals comparison operator. Falls back to `y &lt;= x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; &#39;a&#39; &gt;= &#39;b&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 7 ≥ 7 ≥ 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; &quot;abc&quot; ≥ &quot;abc&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 5 &gt;= 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&gt;=(x, y) = (y &lt;= x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const ≥ = &gt;=
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># this definition allows Number types to implement &lt; instead of isless,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># which is more idiomatic:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isless(x::Real, y::Real) = x&lt;y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ifelse(condition::Bool, x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `x` if `condition` is `true`, otherwise return `y`. This differs from `?` or `if` in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">that it is an ordinary function, so all the arguments are evaluated first. In some cases,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using `ifelse` instead of an `if` statement can eliminate the branch in generated code and
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">provide higher performance in tight loops.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; ifelse(1 &gt; 2, 1, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ifelse
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cmp(x,y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return -1, 0, or 1 depending on whether `x` is less than, equal to, or greater than `y`,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">respectively. Uses the total order implemented by `isless`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; cmp(1, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; cmp(2, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; cmp(2+im, 3-im)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ERROR: MethodError: no method matching isless(::Complex{Int64}, ::Complex{Int64})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[...]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">cmp(x, y) = isless(x, y) ? -1 : ifelse(isless(y, x), 1, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cmp(&lt;, x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return -1, 0, or 1 depending on whether `x` is less than, equal to, or greater than `y`,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">respectively. The first argument specifies a less-than comparison function to use.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">cmp(&lt;, x, y) = (x &lt; y) ? -1 : ifelse(y &lt; x, 1, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># cmp returns -1, 0, +1 indicating ordering
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">cmp(x::Integer, y::Integer) = ifelse(isless(x, y), -1, ifelse(isless(y, x), 1, 0))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    max(x, y, ...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the maximum of the arguments. See also the [`maximum`](@ref) function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to take the maximum element from a collection.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; max(2, 5, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">max(x, y) = ifelse(isless(y, x), x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    min(x, y, ...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the minimum of the arguments. See also the [`minimum`](@ref) function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to take the minimum element from a collection.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; min(2, 5, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">min(x,y) = ifelse(isless(y, x), y, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    minmax(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `(min(x,y), max(x,y))`. See also: [`extrema`](@ref) that returns `(minimum(x), maximum(x))`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; minmax(&#39;c&#39;,&#39;b&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(&#39;b&#39;, &#39;c&#39;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">minmax(x,y) = isless(y, x) ? (y, x) : (x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    extrema(itr) -&gt; Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Compute both the minimum and maximum element in a single pass, and return them as a 2-tuple.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; extrema(2:10)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(2, 10)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; extrema([9,pi,4.5])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(3.141592653589793, 9.0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">extrema(itr) = _extrema_itr(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _extrema_itr(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = iterate(itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y === nothing &amp;&amp; throw(ArgumentError(&quot;collection must be non-empty&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (v, s) = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    vmin = vmax = v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y = iterate(itr, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        y === nothing &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (x, s) = y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        vmax = max(x, vmax)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        vmin = min(x, vmin)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (vmin, vmax)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">extrema(x::Real) = (x, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## definitions providing basic traits of arithmetic operators ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    identity(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The identity function. Returns its argument.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; identity(&quot;Well, what did you expect?&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;Well, what did you expect?&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">identity(x) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">+(x::Number) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">*(x::Number) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(&amp;)(x::Integer) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(|)(x::Integer) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">xor(x::Integer) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const ⊻ = xor
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># foldl for argument lists. expand recursively up to a point, then
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># switch to a loop. this allows small cases like `a+b+c+d` to be inlined
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># efficiently, without a major slowdown for `+(x...)` when `x` is big.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">afoldl(op,a) = a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">afoldl(op,a,b) = op(a,b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">afoldl(op,a,b,c...) = afoldl(op, op(a,b), c...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function afoldl(op,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,qs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y = op(op(op(op(op(op(op(op(op(op(op(op(op(op(op(a,b),c),d),e),f),g),h),i),j),k),l),m),n),o),p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in qs; y = op(y,x); end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for op in (:+, :*, :&amp;, :|, :xor, :min, :max, :kron)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @eval begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # note: these definitions must not cause a dispatch loop when +(a,b) is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # not defined, and must only try to call 2-argument definitions, so
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # that defining +(a,b) is sufficient for full functionality.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ($op)(a, b, c, xs...) = afoldl($op, ($op)(($op)(a,b),c), xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # a further concern is that it&#39;s easy for a type like (Int,Int...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # to match many definitions, so we need to keep the number of
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # definitions down to avoid losing type information.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    \\(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Left division operator: multiplication of `y` by the inverse of `x` on the left. Gives
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">floating-point results for integer arguments.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 3 \\ 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; inv(3) * 6
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [4 3; 2 1]; x = [5, 6];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A \\ x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2-element Array{Float64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  6.5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -7.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; inv(A) * x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2-element Array{Float64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  6.5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> -7.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">\(x,y) = adjoint(adjoint(y)/adjoint(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Core &lt;&lt;, &gt;&gt;, and &gt;&gt;&gt; take either Int or UInt as second arg. Signed shift
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># counts can shift in either direction, and are translated here to unsigned
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># counts. Integer datatypes only need to implement the unsigned version.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &lt;&lt;(x, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Left bit shift operator, `x &lt;&lt; n`. For `n &gt;= 0`, the result is `x` shifted left
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">by `n` bits, filling with `0`s. This is equivalent to `x * 2^n`. For `n &lt; 0`,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">this is equivalent to `x &gt;&gt; -n`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Int8(3) &lt;&lt; 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">12
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; bitstring(Int8(3))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;00000011&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; bitstring(Int8(12))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;00001100&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also [`&gt;&gt;`](@ref), [`&gt;&gt;&gt;`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function &lt;&lt;(x::Integer, c::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typemin(Int) &lt;= c &lt;= typemax(Int) &amp;&amp; return x &lt;&lt; (c % Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (x &gt;= 0 || c &gt;= 0) &amp;&amp; return zero(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    oftype(x, -1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;&lt;(x::Integer, c::Unsigned) = c &lt;= typemax(UInt) ? x &lt;&lt; (c % UInt) : zero(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;&lt;(x::Integer, c::Int) = c &gt;= 0 ? x &lt;&lt; unsigned(c) : x &gt;&gt; unsigned(-c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &gt;&gt;(x, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Right bit shift operator, `x &gt;&gt; n`. For `n &gt;= 0`, the result is `x` shifted
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">right by `n` bits, where `n &gt;= 0`, filling with `0`s if `x &gt;= 0`, `1`s if `x &lt;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0`, preserving the sign of `x`. This is equivalent to `fld(x, 2^n)`. For `n &lt;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0`, this is equivalent to `x &lt;&lt; -n`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Int8(13) &gt;&gt; 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; bitstring(Int8(13))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;00001101&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; bitstring(Int8(3))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;00000011&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Int8(-14) &gt;&gt; 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; bitstring(Int8(-14))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;11110010&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; bitstring(Int8(-4))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;11111100&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also [`&gt;&gt;&gt;`](@ref), [`&lt;&lt;`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function &gt;&gt;(x::Integer, c::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-603"></a>603</td>
+          <td></td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-operators-jl-603"></a>
+              1 (2.38%) samples spent in &gt;&gt;<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              digitgen
+              <a href="fastshortest-jl-253e248589e118f4dde7-line.html#Lfastshortest-jl-253e248589e118f4dde7-line.html-92">line 92</a><br />
+            </div>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-448">&gt;&gt;</a><br />
+            </div>
+            <span class="code">    typemin(Int) &lt;= c &lt;= typemax(Int) &amp;&amp; return x &gt;&gt; (c % Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (x &gt;= 0 || c &lt; 0) &amp;&amp; return zero(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    oftype(x, -1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&gt;&gt;(x::Integer, c::Unsigned) = c &lt;= typemax(UInt) ? x &gt;&gt; (c % UInt) : zero(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&gt;&gt;(x::Integer, c::Int) = c &gt;= 0 ? x &gt;&gt; unsigned(c) : x &lt;&lt; unsigned(-c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-611"></a>611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &gt;&gt;&gt;(x, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Unsigned right bit shift operator, `x &gt;&gt;&gt; n`. For `n &gt;= 0`, the result is `x`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">shifted right by `n` bits, where `n &gt;= 0`, filling with `0`s. For `n &lt; 0`, this
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is equivalent to `x &lt;&lt; -n`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">For [`Unsigned`](@ref) integer types, this is equivalent to [`&gt;&gt;`](@ref). For
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`Signed`](@ref) integer types, this is equivalent to `signed(unsigned(x) &gt;&gt; n)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Int8(-14) &gt;&gt;&gt; 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">60
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; bitstring(Int8(-14))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;11110010&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; bitstring(Int8(60))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;00111100&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`BigInt`](@ref)s are treated as if having infinite size, so no filling is required and this
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is equivalent to [`&gt;&gt;`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also [`&gt;&gt;`](@ref), [`&lt;&lt;`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function &gt;&gt;&gt;(x::Integer, c::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typemin(Int) &lt;= c &lt;= typemax(Int) ? x &gt;&gt;&gt; (c % Int) : zero(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&gt;&gt;&gt;(x::Integer, c::Unsigned) = c &lt;= typemax(UInt) ? x &gt;&gt;&gt; (c % UInt) : zero(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&gt;&gt;&gt;(x::Integer, c::Int) = c &gt;= 0 ? x &gt;&gt;&gt; unsigned(c) : x &lt;&lt; unsigned(-c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># fallback div, fld, and cld implementations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># NOTE: C89 fmod() and x87 FPREM implicitly provide truncating float division,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># so it is used here as the basis of float div().
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">div(x::T, y::T) where {T&lt;:Real} = convert(T,round((x-rem(x,y))/y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-648"></a>648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-649"></a>649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-650"></a>650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fld(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-651"></a>651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-652"></a>652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Largest integer less than or equal to `x/y`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-653"></a>653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-654"></a>654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-655"></a>655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-656"></a>656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; fld(7.3,5.5)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-657"></a>657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-658"></a>658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-659"></a>659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-660"></a>660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fld(x::T, y::T) where {T&lt;:Real} = convert(T,round((x-mod(x,y))/y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-661"></a>661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-662"></a>662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-663"></a>663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cld(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-664"></a>664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-665"></a>665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Smallest integer larger than or equal to `x/y`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-666"></a>666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-667"></a>667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-668"></a>668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-669"></a>669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; cld(5.5,2.2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-670"></a>670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3.0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-671"></a>671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-672"></a>672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-673"></a>673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">cld(x::T, y::T) where {T&lt;:Real} = convert(T,round((x-modCeil(x,y))/y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-674"></a>674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#rem(x::T, y::T) where {T&lt;:Real} = convert(T,x-y*trunc(x/y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-675"></a>675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#mod(x::T, y::T) where {T&lt;:Real} = convert(T,x-y*floor(x/y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-676"></a>676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">modCeil(x::T, y::T) where {T&lt;:Real} = convert(T,x-y*ceil(x/y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-677"></a>677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-678"></a>678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># operator alias
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-679"></a>679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-680"></a>680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-681"></a>681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rem(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-682"></a>682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    %(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-683"></a>683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-684"></a>684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Remainder from Euclidean division, returning a value of the same sign as `x`, and smaller in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-685"></a>685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">magnitude than `y`. This value is always exact.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-686"></a>686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-687"></a>687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-688"></a>688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-689"></a>689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; x = 15; y = 4;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-690"></a>690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-691"></a>691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; x % y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-692"></a>692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-693"></a>693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-694"></a>694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; x == div(x, y) * y + rem(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-695"></a>695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-696"></a>696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-697"></a>697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-698"></a>698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rem
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-699"></a>699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const % = rem
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-700"></a>700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-701"></a>701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-702"></a>702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    div(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-703"></a>703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ÷(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-704"></a>704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-705"></a>705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The quotient from Euclidean division. Computes `x/y`, truncated to an integer.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-706"></a>706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-707"></a>707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-708"></a>708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-709"></a>709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 9 ÷ 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-710"></a>710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-711"></a>711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-712"></a>712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; -5 ÷ 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-713"></a>713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-714"></a>714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-715"></a>715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-716"></a>716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">div
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-717"></a>717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const ÷ = div
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-718"></a>718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-719"></a>719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-720"></a>720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mod1(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-721"></a>721</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-722"></a>722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Modulus after flooring division, returning a value `r` such that `mod(r, y) == mod(x, y)`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-723"></a>723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">in the range ``(0, y]`` for positive `y` and in the range ``[y,0)`` for negative `y`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-724"></a>724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-725"></a>725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also: [`fld1`](@ref), [`fldmod1`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-726"></a>726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-727"></a>727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-728"></a>728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-729"></a>729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; mod1(4, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-730"></a>730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-731"></a>731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-732"></a>732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; mod1(4, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-733"></a>733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-734"></a>734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-735"></a>735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-736"></a>736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mod1(x::T, y::T) where {T&lt;:Real} = (m = mod(x, y); ifelse(m == 0, y, m))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-737"></a>737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-738"></a>738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-739"></a>739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-740"></a>740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fld1(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-741"></a>741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-742"></a>742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Flooring division, returning a value consistent with `mod1(x,y)`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-743"></a>743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-744"></a>744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also: [`mod1`](@ref), [`fldmod1`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-745"></a>745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-746"></a>746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-747"></a>747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-748"></a>748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; x = 15; y = 4;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-749"></a>749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-750"></a>750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; fld1(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-751"></a>751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-752"></a>752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-753"></a>753</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; x == fld(x, y) * y + mod(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-754"></a>754</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-755"></a>755</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-756"></a>756</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; x == (fld1(x, y) - 1) * y + mod1(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-757"></a>757</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-758"></a>758</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-759"></a>759</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-760"></a>760</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fld1(x::T, y::T) where {T&lt;:Real} = (m = mod1(x, y); fld(x + y - m, y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-761"></a>761</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fld1(x::T, y::T) where T&lt;:Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-762"></a>762</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    d = div(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-763"></a>763</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return d + (!signbit(x ⊻ y) &amp; (d * y != x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-764"></a>764</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-765"></a>765</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-766"></a>766</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-767"></a>767</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fldmod1(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-768"></a>768</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-769"></a>769</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `(fld1(x,y), mod1(x,y))`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-770"></a>770</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-771"></a>771</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also: [`fld1`](@ref), [`mod1`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-772"></a>772</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-773"></a>773</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fldmod1(x, y) = (fld1(x, y), mod1(x, y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-774"></a>774</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-775"></a>775</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-776"></a>776</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-777"></a>777</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    widen(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-778"></a>778</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-779"></a>779</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `x` is a type, return a &quot;larger&quot; type, defined so that arithmetic operations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-780"></a>780</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`+` and `-` are guaranteed not to overflow nor lose precision for any combination
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-781"></a>781</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">of values that type `x` can hold.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-782"></a>782</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-783"></a>783</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">For fixed-size integer types less than 128 bits, `widen` will return a type with
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-784"></a>784</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">twice the number of bits.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-785"></a>785</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-786"></a>786</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `x` is a value, it is converted to `widen(typeof(x))`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-787"></a>787</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-788"></a>788</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-789"></a>789</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-790"></a>790</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; widen(Int32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-791"></a>791</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Int64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-792"></a>792</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-793"></a>793</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; widen(1.5f0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-794"></a>794</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1.5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-795"></a>795</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-796"></a>796</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-797"></a>797</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widen(x::T) where {T} = convert(widen(T), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-798"></a>798</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">widen(x::Type{T}) where {T} = throw(MethodError(widen, (T,)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-799"></a>799</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-800"></a>800</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># function pipelining
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-801"></a>801</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-802"></a>802</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-803"></a>803</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    |&gt;(x, f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-804"></a>804</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-805"></a>805</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Applies a function to the preceding argument. This allows for easy function chaining.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-806"></a>806</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-807"></a>807</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-808"></a>808</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-809"></a>809</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; [1:5;] |&gt; x-&gt;x.^2 |&gt; sum |&gt; inv
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-810"></a>810</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0.01818181818181818
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-811"></a>811</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-812"></a>812</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-813"></a>813</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">|&gt;(x, f) = f(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-814"></a>814</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-815"></a>815</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># function composition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-816"></a>816</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-817"></a>817</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-818"></a>818</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f ∘ g
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-819"></a>819</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-820"></a>820</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Compose functions: i.e. `(f ∘ g)(args...)` means `f(g(args...))`. The `∘` symbol can be
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-821"></a>821</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">entered in the Julia REPL (and most editors, appropriately configured) by typing `\\circ&lt;tab&gt;`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-822"></a>822</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-823"></a>823</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-824"></a>824</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-825"></a>825</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; map(uppercase∘first, [&quot;apple&quot;, &quot;banana&quot;, &quot;carrot&quot;])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-826"></a>826</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Char,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-827"></a>827</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> &#39;A&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-828"></a>828</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> &#39;B&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-829"></a>829</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> &#39;C&#39;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-830"></a>830</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-831"></a>831</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-832"></a>832</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">∘(f, g) = (x...)-&gt;f(g(x...))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-833"></a>833</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-834"></a>834</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-835"></a>835</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-836"></a>836</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    !f::Function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-837"></a>837</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-838"></a>838</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Predicate function negation: when the argument of `!` is a function, it returns a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-839"></a>839</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function which computes the boolean negation of `f`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-840"></a>840</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-841"></a>841</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-842"></a>842</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-843"></a>843</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; str = &quot;∀ ε &gt; 0, ∃ δ &gt; 0: |x-y| &lt; δ ⇒ |f(x)-f(y)| &lt; ε&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-844"></a>844</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;∀ ε &gt; 0, ∃ δ &gt; 0: |x-y| &lt; δ ⇒ |f(x)-f(y)| &lt; ε&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-845"></a>845</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-846"></a>846</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; filter(isletter, str)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-847"></a>847</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;εδxyδfxfyε&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-848"></a>848</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-849"></a>849</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; filter(!isletter, str)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-850"></a>850</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;∀  &gt; 0, ∃  &gt; 0: |-| &lt;  ⇒ |()-()| &lt; &quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-851"></a>851</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-852"></a>852</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-853"></a>853</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!(f::Function) = (x...)-&gt;!f(x...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-854"></a>854</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-855"></a>855</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-856"></a>856</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Fix1(f, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-857"></a>857</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-858"></a>858</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">A type representing a partially-applied version of the two-argument function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-859"></a>859</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`f`, with the first argument fixed to the value &quot;x&quot;. In other words,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-860"></a>860</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`Fix1(f, x)` behaves similarly to `y-&gt;f(x, y)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-861"></a>861</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-862"></a>862</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct Fix1{F,T} &lt;: Function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-863"></a>863</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f::F
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-864"></a>864</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x::T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-865"></a>865</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-866"></a>866</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Fix1(f::F, x::T) where {F,T} = new{F,T}(f, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-867"></a>867</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Fix1(f::Type{F}, x::T) where {F,T} = new{Type{F},T}(f, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-868"></a>868</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-869"></a>869</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-870"></a>870</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(f::Fix1)(y) = f.f(f.x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-871"></a>871</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-872"></a>872</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-873"></a>873</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Fix2(f, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-874"></a>874</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-875"></a>875</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">A type representing a partially-applied version of the two-argument function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-876"></a>876</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`f`, with the second argument fixed to the value &quot;x&quot;. In other words,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-877"></a>877</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`Fix2(f, x)` behaves similarly to `y-&gt;f(y, x)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-878"></a>878</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-879"></a>879</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct Fix2{F,T} &lt;: Function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-880"></a>880</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f::F
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-881"></a>881</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x::T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-882"></a>882</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-883"></a>883</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Fix2(f::F, x::T) where {F,T} = new{F,T}(f, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-884"></a>884</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Fix2(f::Type{F}, x::T) where {F,T} = new{Type{F},T}(f, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-885"></a>885</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-886"></a>886</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-887"></a>887</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(f::Fix2)(y) = f.f(y, f.x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-888"></a>888</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-889"></a>889</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-890"></a>890</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isequal(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-891"></a>891</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-892"></a>892</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a function that compares its argument to `x` using [`isequal`](@ref), i.e.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-893"></a>893</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a function equivalent to `y -&gt; isequal(y, x)`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-894"></a>894</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-895"></a>895</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The returned function is of type `Base.Fix2{typeof(isequal)}`, which can be
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-896"></a>896</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">used to implement specialized methods.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-897"></a>897</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-898"></a>898</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isequal(x) = Fix2(isequal, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-899"></a>899</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-900"></a>900</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-901"></a>901</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ==(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-902"></a>902</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-903"></a>903</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a function that compares its argument to `x` using [`==`](@ref), i.e.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-904"></a>904</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a function equivalent to `y -&gt; y == x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-905"></a>905</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-906"></a>906</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The returned function is of type `Base.Fix2{typeof(==)}`, which can be
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-907"></a>907</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">used to implement specialized methods.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-908"></a>908</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-909"></a>909</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(x) = Fix2(==, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-910"></a>910</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-911"></a>911</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-912"></a>912</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    splat(f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-913"></a>913</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-914"></a>914</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Defined as
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-915"></a>915</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```julia
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-916"></a>916</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    splat(f) = args-&gt;f(args...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-917"></a>917</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-918"></a>918</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">i.e. given a function returns a new function that takes one argument and splats
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-919"></a>919</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">its argument into the original function. This is useful as an adaptor to pass
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-920"></a>920</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a multi-argument function in a context that expects a single argument, but
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-921"></a>921</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">passes a tuple as that single argument.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-922"></a>922</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-923"></a>923</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Example usage:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-924"></a>924</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-925"></a>925</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; map(splat(+), zip(1:3,4:6))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-926"></a>926</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">3-element Array{Int64,1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-927"></a>927</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-928"></a>928</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 7
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-929"></a>929</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 9
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-930"></a>930</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-931"></a>931</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-932"></a>932</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">splat(f) = args-&gt;f(args...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-933"></a>933</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-934"></a>934</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## in &amp; contains
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-935"></a>935</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-936"></a>936</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-937"></a>937</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    in(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-938"></a>938</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-939"></a>939</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a function that checks whether its argument is [`in`](@ref) `x`, i.e.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-940"></a>940</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a function equivalent to `y -&gt; y in x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-941"></a>941</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-942"></a>942</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The returned function is of type `Base.Fix2{typeof(in)}`, which can be
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-943"></a>943</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">used to implement specialized methods.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-944"></a>944</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-945"></a>945</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">in(x) = Fix2(in, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-946"></a>946</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-947"></a>947</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function in(x, itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-948"></a>948</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    anymissing = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-949"></a>949</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for y in itr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-950"></a>950</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        v = (y == x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-951"></a>951</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if ismissing(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-952"></a>952</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            anymissing = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-953"></a>953</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif v
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-954"></a>954</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-955"></a>955</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-956"></a>956</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-957"></a>957</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return anymissing ? missing : false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-958"></a>958</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-959"></a>959</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-960"></a>960</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const ∈ = in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-961"></a>961</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">∋(itr, x) = ∈(x, itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-962"></a>962</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">∉(x, itr) = !∈(x, itr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-963"></a>963</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">∌(itr, x) = !∋(itr, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-964"></a>964</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-965"></a>965</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-966"></a>966</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    in(item, collection) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-967"></a>967</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ∈(item, collection) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-968"></a>968</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ∋(collection, item) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-969"></a>969</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-970"></a>970</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether an item is in the given collection, in the sense that it is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-971"></a>971</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`==`](@ref) to one of the values generated by iterating over the collection.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-972"></a>972</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Returns a `Bool` value, except if `item` is [`missing`](@ref) or `collection`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-973"></a>973</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">contains `missing` but not `item`, in which case `missing` is returned
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-974"></a>974</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">([three-valued logic](https://en.wikipedia.org/wiki/Three-valued_logic),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-975"></a>975</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">matching the behavior of [`any`](@ref) and [`==`](@ref)).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-976"></a>976</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-977"></a>977</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Some collections follow a slightly different definition. For example,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-978"></a>978</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`Set`](@ref)s check whether the item [`isequal`](@ref) to one of the elements.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-979"></a>979</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`Dict`](@ref)s look for `key=&gt;value` pairs, and the key is compared using
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-980"></a>980</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`isequal`](@ref). To test for the presence of a key in a dictionary,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-981"></a>981</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">use [`haskey`](@ref) or `k in keys(dict)`. For these collections, the result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-982"></a>982</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is always a `Bool` and never `missing`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-983"></a>983</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-984"></a>984</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-985"></a>985</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-986"></a>986</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; a = 1:3:20
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-987"></a>987</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">1:3:19
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-988"></a>988</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-989"></a>989</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 4 in a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-990"></a>990</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-991"></a>991</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-992"></a>992</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 5 in a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-993"></a>993</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-994"></a>994</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-995"></a>995</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; missing in [1, 2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-996"></a>996</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">missing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-997"></a>997</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-998"></a>998</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 1 in [2, missing]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-999"></a>999</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">missing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1000"></a>1000</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1001"></a>1001</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 1 in [1, missing]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1002"></a>1002</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1003"></a>1003</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1004"></a>1004</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; missing in Set([1, 2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1005"></a>1005</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1006"></a>1006</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1007"></a>1007</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1008"></a>1008</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">in, ∋
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1009"></a>1009</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1010"></a>1010</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1011"></a>1011</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ∉(item, collection) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1012"></a>1012</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ∌(collection, item) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1013"></a>1013</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1014"></a>1014</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Negation of `∈` and `∋`, i.e. checks that `item` is not in `collection`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1015"></a>1015</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1016"></a>1016</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1017"></a>1017</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1018"></a>1018</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 1 ∉ 2:4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1019"></a>1019</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1020"></a>1020</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1021"></a>1021</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 1 ∉ 1:3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1022"></a>1022</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1023"></a>1023</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1024"></a>1024</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loperators-jl-714ade2c8745dd55a410-line.html-1025"></a>1025</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">∉, ∌
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/optimize-jl-9a25bbc7af72ab9ad4ff-line.html b/profiling/statprof/optimize-jl-9a25bbc7af72ab9ad4ff-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..6ad68bad4ed1cd5f445be8b3d8e4d4053290d7cd
--- /dev/null
+++ b/profiling/statprof/optimize-jl-9a25bbc7af72ab9ad4ff-line.html
@@ -0,0 +1,4553 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./compiler/optimize.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on ons  9 okt 2019 08:41:28</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#####################
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># OptimizationState #
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#####################
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct OptimizationState
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    linfo::MethodInstance
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result_vargs::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    calledges::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    src::CodeInfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mod::Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nargs::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    min_valid::UInt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    max_valid::UInt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    params::Params
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sp::SimpleVector # static parameters
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    slottypes::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const_api::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function OptimizationState(frame::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        s_edges = frame.stmt_edges[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if s_edges === ()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            s_edges = []
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            frame.stmt_edges[1] = s_edges
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        src = frame.src
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return new(frame.linfo, frame.result.vargs,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   s_edges::Vector{Any},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   src, frame.mod, frame.nargs,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   frame.min_valid, frame.max_valid,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   frame.params, frame.sp, frame.slottypes, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function OptimizationState(linfo::MethodInstance, src::CodeInfo,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                               params::Params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # prepare src for running optimization passes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # if it isn&#39;t already
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nssavalues = src.ssavaluetypes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if nssavalues isa Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            src.ssavaluetypes = Any[ Any for i = 1:nssavalues ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nslots = length(src.slotnames)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        slottypes = Any[ Any for i = 1:nslots ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        s_edges = []
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # cache some useful state computations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        toplevel = !isa(linfo.def, Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !toplevel
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            meth = linfo.def
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            inmodule = meth.module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            nargs = meth.nargs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            inmodule = linfo.def::Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            nargs = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result_vargs = Any[] # if you want something more accurate, set it yourself :P
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return new(linfo, result_vargs,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   s_edges::Vector{Any},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   src, inmodule, nargs,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   min_world(linfo), max_world(linfo),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   params, spvals_from_meth_instance(linfo), slottypes, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function OptimizationState(linfo::MethodInstance, params::Params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    src = retrieve_code_info(linfo)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    src === nothing &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return OptimizationState(linfo, src, params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#############
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># constants #
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#############
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># The slot has uses that are not statically dominated by any assignment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This is implied by `SLOT_USEDUNDEF`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># If this is not set, all the uses are (statically) dominated by the defs.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># In particular, if a slot has `AssignedOnce &amp;&amp; !StaticUndef`, it is an SSA.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const SLOT_STATICUNDEF  = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const SLOT_ASSIGNEDONCE = 16 # slot is assigned to only once
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const SLOT_USEDUNDEF    = 32 # slot has uses that might raise UndefVarError
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># const SLOT_CALLED      = 64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const IR_FLAG_INBOUNDS = 0x01
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># known to be always effect-free (in particular nothrow)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const _PURE_BUILTINS = Any[tuple, svec, ===, typeof, nfields]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># known to be effect-free if the are nothrow
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const _PURE_OR_ERROR_BUILTINS = [
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fieldtype, apply_type, isa, UnionAll,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    getfield, arrayref, isdefined, Core.sizeof,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Core.kwfunc
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const TOP_TUPLE = GlobalRef(Core, :tuple)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#########
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># logic #
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#########
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_topmod(sv::OptimizationState) = _topmod(sv.mod)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function update_valid_age!(min_valid::UInt, max_valid::UInt, sv::OptimizationState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sv.min_valid = max(sv.min_valid, min_valid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sv.max_valid = min(sv.max_valid, max_valid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert(!isa(sv.linfo.def, Method) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            (sv.min_valid == typemax(UInt) &amp;&amp; sv.max_valid == typemin(UInt)) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            sv.min_valid &lt;= sv.params.world &lt;= sv.max_valid,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            &quot;invalid age range update&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">update_valid_age!(li::MethodInstance, sv::OptimizationState) = update_valid_age!(min_world(li), max_world(li), sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function add_backedge!(li::MethodInstance, caller::OptimizationState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(caller.linfo.def, Method) || return # don&#39;t add backedges to toplevel exprs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(caller.calledges, li)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    update_valid_age!(li, caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isinlineable(m::Method, me::OptimizationState, bonus::Int=0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # compute the cost (size) of inlining this code
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    inlineable = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cost_threshold = me.params.inline_cost_threshold
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if m.module === _topmod(m.module)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # a few functions get special treatment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        name = m.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sig = m.sig
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if ((name === :+ || name === :* || name === :min || name === :max) &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isa(sig,DataType) &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            sig == Tuple{sig.parameters[1],Any,Any,Any,Vararg{Any}})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            inlineable = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif (name === :iterate || name === :unsafe_convert ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                name === :cconvert)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cost_threshold *= 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !inlineable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        inlineable = inline_worthy(me.src.code, me.src, me.sp, me.slottypes, me.params, cost_threshold + bonus)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return inlineable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># These affect control flow within the function (so may not be removed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># if there is no usage within the function), but don&#39;t affect the purity
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># of the function as a whole.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function stmt_affects_purity(@nospecialize(stmt), ir)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(stmt, GotoNode) || isa(stmt, ReturnNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(stmt, GotoIfNot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = argextype(stmt.cond, ir, ir.spvals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return !(t ⊑ Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(stmt, Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return stmt.head != :simdloop &amp;&amp; stmt.head != :enter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># run the optimization work
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-optimize-jl-optimize-163"></a>
+              1 (2.70%) samples spent in optimize<br />
+              0 (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              typeinf
+              <a href="typeinfer-jl-14b2448d998dfdb61460-line.html#Ltypeinfer-jl-14b2448d998dfdb61460-line.html-35">line 35</a><br />
+            </div>
+            <span class="code">function optimize(opt::OptimizationState, @nospecialize(result))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    def = opt.linfo.def
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nargs = Int(opt.nargs) - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-166"></a>166</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="driver-jl-4d4652571be99309ac0c-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-driver-jl-run_passes-113">run_passes</a><br />
+            </div>
+            <span class="code">    @timeit &quot;optimizer&quot; ir = run_passes(opt.src, nargs, opt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    force_noinline = _any(@nospecialize(x) -&gt; isexpr(x, :meta) &amp;&amp; x.args[1] == :noinline, ir.meta)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # compute inlining and other related optimizations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if (isa(result, Const) || isconstType(result))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        proven_pure = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # must be proven pure to use const_api; otherwise we might skip throwing errors
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # (issue #20704)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # TODO: Improve this analysis; if a function is marked @pure we should really
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # only care about certain errors (e.g. method errors and type errors).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if length(ir.stmts) &lt; 10
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            proven_pure = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for i in 1:length(ir.stmts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                stmt = ir.stmts[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if stmt_affects_purity(stmt, ir) &amp;&amp; !stmt_effect_free(stmt, ir.types[i], ir, ir.spvals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    proven_pure = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if proven_pure
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                for fl in opt.src.slotflags
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if (fl &amp; SLOT_USEDUNDEF) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        proven_pure = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if proven_pure
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            opt.src.pure = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if proven_pure &amp;&amp; !coverage_enabled()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # use constant calling convention
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # Do not emit `jl_fptr_const_return` if coverage is enabled
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # so that we don&#39;t need to add coverage support
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # to the `jl_call_method_internal` fast path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # Still set pure flag to make sure `inference` tests pass
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # and to possibly enable more optimization in the future
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !(isa(result, Const) &amp;&amp; !is_inlineable_constant(result.val))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                opt.const_api = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            force_noinline || (opt.src.inlineable = true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    replace_code_newstyle!(opt.src, ir, nargs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # determine and cache inlineability
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !force_noinline
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # don&#39;t keep ASTs for functions specialized on a Union argument
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # TODO: this helps avoid a type-system bug mis-computing sparams during intersection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        sig = unwrap_unionall(opt.linfo.specTypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(sig, DataType) &amp;&amp; sig.name === Tuple.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for P in sig.parameters
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                P = unwrap_unionall(P)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(P, Union)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    force_noinline = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            force_noinline = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !opt.src.inlineable &amp;&amp; result === Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            force_noinline = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if force_noinline
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        opt.src.inlineable = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(def, Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if opt.src.inlineable &amp;&amp; isdispatchtuple(opt.linfo.specTypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # obey @inline declaration if a dispatch barrier would not help
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            bonus = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if result ⊑ Tuple &amp;&amp; !isbitstype(widenconst(result))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                bonus = opt.params.inline_tupleret_bonus
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if opt.src.inlineable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # For functions declared @inline, increase the cost threshold 20x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                bonus += opt.params.inline_cost_threshold*19
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            opt.src.inlineable = isinlineable(def, opt, bonus)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># whether `f` is pure for inference
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function is_pure_intrinsic_infer(f::IntrinsicFunction)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return !(f === Intrinsics.pointerref || # this one is volatile
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.pointerset || # this one is never effect-free
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.llvmcall ||   # this one is never effect-free
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.arraylen ||   # this one is volatile
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.sqrt_llvm ||  # this one may differ at runtime (by a few ulps)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.cglobal)  # cglobal lookup answer changes at runtime
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># whether `f` is pure for optimizations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function is_pure_intrinsic_optim(f::IntrinsicFunction)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return !(f === Intrinsics.pointerref || # this one is volatile
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.pointerset || # this one is never effect-free
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.llvmcall ||   # this one is never effect-free
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.arraylen ||   # this one is volatile
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.checked_sdiv_int ||  # these may throw errors
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.checked_udiv_int ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.checked_srem_int ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.checked_urem_int ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             f === Intrinsics.cglobal)  # cglobal throws an error for symbol-not-found
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Computing the cost of a function body
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># saturating sum (inputs are nonnegative), prevents overflow with typemax(Int) below
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">plus_saturate(x::Int, y::Int) = max(x, y, x+y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># known return type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isknowntype(@nospecialize T) = (T == Union{}) || isconcretetype(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function statement_cost(ex::Expr, line::Int, src::CodeInfo, spvals::SimpleVector, slottypes::Vector{Any}, params::Params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    head = ex.head
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if is_meta_expr_head(head)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif head === :call
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        farg = ex.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ftyp = argextype(farg, src, spvals, slottypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if ftyp === IntrinsicFunction &amp;&amp; farg isa SSAValue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # if this comes from code that was already inlined into another function,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # Consts have been widened. try to recover in simple cases.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            farg = src.code[farg.id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(farg, GlobalRef) || isa(farg, QuoteNode) || isa(farg, IntrinsicFunction) || isexpr(farg, :static_parameter)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ftyp = argextype(farg, src, spvals, slottypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        f = singleton_type(ftyp)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(f, IntrinsicFunction)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            iidx = Int(reinterpret(Int32, f::IntrinsicFunction)) + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !isassigned(T_IFUNC_COST, iidx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # unknown/unhandled intrinsic
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return params.inline_nonleaf_penalty
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return T_IFUNC_COST[iidx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(f, Builtin)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # The efficiency of operations like a[i] and s.b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # depend strongly on whether the result can be
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # inferred, so check the type of ex
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if f === Main.Core.getfield || f === Main.Core.tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # we might like to penalize non-inferrability, but
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # tuple iteration/destructuring makes that impossible
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # return plus_saturate(argcost, isknowntype(extyp) ? 1 : params.inline_nonleaf_penalty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif f === Main.Core.arrayref &amp;&amp; length(ex.args) &gt;= 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                atyp = argextype(ex.args[3], src, spvals, slottypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return isknowntype(atyp) ? 4 : params.inline_nonleaf_penalty
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            fidx = find_tfunc(f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if fidx === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # unknown/unhandled builtin or anonymous function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # Use the generic cost of a direct function call
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return 20
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return T_FFUNC_COST[fidx]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return params.inline_nonleaf_penalty
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif head === :foreigncall || head === :invoke
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Calls whose &quot;return type&quot; is Union{} do not actually return:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # they are errors. Since these are not part of the typical
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # run-time of the function, we omit them from
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # consideration. This way, non-inlined error branches do not
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # prevent inlining.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        extyp = line == -1 ? Any : src.ssavaluetypes[line]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return extyp === Union{} ? 0 : 20
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif head === :return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a = ex.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if a isa Expr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return statement_cost(a, -1, src, spvals, slottypes, params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif head === :(=)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if ex.args[1] isa GlobalRef
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cost = 20
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cost = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        a = ex.args[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if a isa Expr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            cost = plus_saturate(cost, statement_cost(a, -1, src, spvals, slottypes, params))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return cost
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif head === :copyast
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return 100
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif head === :enter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # try/catch is a couple function calls,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # but don&#39;t inline functions with try/catch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # since these aren&#39;t usually performance-sensitive functions,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # and llvm is more likely to miscompile them when these functions get large
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return typemax(Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif head === :gotoifnot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        target = ex.args[2]::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # loops are generally always expensive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # but assume that forward jumps are already counted for from
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # summing the cost of the not-taken branch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return target &lt; line ? 40 : 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function inline_worthy(body::Array{Any,1}, src::CodeInfo, spvals::SimpleVector, slottypes::Vector{Any},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                       params::Params, cost_threshold::Integer=params.inline_cost_threshold)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bodycost::Int = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for line = 1:length(body)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stmt = body[line]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if stmt isa Expr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            thiscost = statement_cost(stmt, line, src, spvals, slottypes, params)::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif stmt isa GotoNode
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # loops are generally always expensive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # but assume that forward jumps are already counted for from
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # summing the cost of the not-taken branch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            thiscost = stmt.label &lt; line ? 40 : 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bodycost = plus_saturate(bodycost, thiscost)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bodycost &gt; cost_threshold &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function is_known_call(e::Expr, @nospecialize(func), src, spvals::SimpleVector, slottypes::Vector{Any} = empty_slottypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if e.head !== :call
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f = argextype(e.args[1], src, spvals, slottypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return isa(f, Const) &amp;&amp; f.val === func
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function renumber_ir_elements!(body::Vector{Any}, changemap::Vector{Int})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return renumber_ir_elements!(body, changemap, changemap)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function renumber_ir_elements!(body::Vector{Any}, ssachangemap::Vector{Int}, labelchangemap::Vector{Int})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 2:length(labelchangemap)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        labelchangemap[i] += labelchangemap[i - 1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if ssachangemap !== labelchangemap
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 2:length(ssachangemap)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ssachangemap[i] += ssachangemap[i - 1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (labelchangemap[end] != 0 &amp;&amp; ssachangemap[end] != 0) || return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:length(body)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        el = body[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(el, GotoNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            body[i] = GotoNode(el.label + labelchangemap[el.label])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(el, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            body[i] = SSAValue(el.id + ssachangemap[el.id])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(el, Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if el.head === :gotoifnot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                cond = el.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(cond, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    el.args[1] = SSAValue(cond.id + ssachangemap[cond.id])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                tgt = el.args[2]::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                el.args[2] = tgt + labelchangemap[tgt]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif el.head === :enter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                tgt = el.args[1]::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                el.args[1] = tgt + labelchangemap[tgt]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif !is_meta_expr_head(el.head)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if el.head === :(=) &amp;&amp; el.args[2] isa Expr &amp;&amp; !is_meta_expr_head(el.args[2].head)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    el = el.args[2]::Expr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                args = el.args
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                for i = 1:length(args)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    el = args[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if isa(el, SSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        args[i] = SSAValue(el.id + ssachangemap[el.id])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Loptimize-jl-9a25bbc7af72ab9ad4ff-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;compiler/ssair/driver.jl&quot;)
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/promotion-jl-fe649671ed190521a171-line.html b/profiling/statprof/promotion-jl-fe649671ed190521a171-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..91a7ae735b5c5a52a221cf6529d858785e0f6487
--- /dev/null
+++ b/profiling/statprof/promotion-jl-fe649671ed190521a171-line.html
@@ -0,0 +1,4438 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./promotion.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## type join (closest common ancestor, or least upper bound) ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typejoin(T, S)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the closest common ancestor of `T` and `S`, i.e. the narrowest type from which
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">they both inherit.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typejoin() = (@_pure_meta; Bottom)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typejoin(@nospecialize(t)) = (@_pure_meta; t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typejoin(@nospecialize(t), ts...) = (@_pure_meta; typejoin(t, typejoin(ts...)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function typejoin(@nospecialize(a), @nospecialize(b))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(a, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return typejoin(a.ub, b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(b, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return typejoin(a, b.ub)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif a &lt;: b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif b &lt;: a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return a
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(a, UnionAll)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return UnionAll(a.var, typejoin(a.body, b))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(b, UnionAll)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return UnionAll(b.var, typejoin(a, b.body))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(a, Union)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return typejoin(typejoin(a.a, a.b), b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(b, Union)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return typejoin(a, typejoin(b.a, b.b))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif a &lt;: Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !(b &lt;: Tuple)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ap, bp = a.parameters, b.parameters
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        lar = length(ap)::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        lbr = length(bp)::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if lar == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Tuple{Vararg{tailjoin(bp, 1)}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if lbr == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Tuple{Vararg{tailjoin(ap, 1)}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        laf, afixed = full_va_len(ap)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        lbf, bfixed = full_va_len(bp)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if laf &lt; lbf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isvarargtype(ap[lar]) &amp;&amp; !afixed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                c = Vector{Any}(undef, laf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                c[laf] = Vararg{typejoin(unwrapva(ap[lar]), tailjoin(bp, laf))}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                n = laf-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                c = Vector{Any}(undef, laf+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                c[laf+1] = Vararg{tailjoin(bp, laf+1)}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                n = laf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif lbf &lt; laf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isvarargtype(bp[lbr]) &amp;&amp; !bfixed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                c = Vector{Any}(undef, lbf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                c[lbf] = Vararg{typejoin(unwrapva(bp[lbr]), tailjoin(ap, lbf))}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                n = lbf-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                c = Vector{Any}(undef, lbf+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                c[lbf+1] = Vararg{tailjoin(ap, lbf+1)}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                n = lbf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c = Vector{Any}(undef, laf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            n = laf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 1:n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ai = ap[min(i,lar)]; bi = bp[min(i,lbr)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ci = typejoin(unwrapva(ai), unwrapva(bi))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            c[i] = i == length(c) &amp;&amp; (isvarargtype(ai) || isvarargtype(bi)) ? Vararg{ci} : ci
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Tuple{c...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif b &lt;: Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while b !== Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if a &lt;: b.name.wrapper
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            while a.name !== b.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                a = supertype(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if a.name === Type.body.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ap = a.parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                bp = b.parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if ((isa(ap,TypeVar) &amp;&amp; ap.lb === Bottom &amp;&amp; ap.ub === Any) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    (isa(bp,TypeVar) &amp;&amp; bp.lb === Bottom &amp;&amp; bp.ub === Any))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # handle special Type{T} supertype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            aprimary = a.name.wrapper
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # join on parameters
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            n = length(a.parameters)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if n == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return aprimary
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            vars = []
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for i = 1:n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ai, bi = a.parameters[i], b.parameters[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if ai === bi || (isa(ai,Type) &amp;&amp; isa(bi,Type) &amp;&amp; ai &lt;: bi &amp;&amp; bi &lt;: ai)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    aprimary = aprimary{ai}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    pushfirst!(vars, aprimary.var)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    aprimary = aprimary.body
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for v in vars
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                aprimary = UnionAll(v, aprimary)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return aprimary
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        b = supertype(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    promote_typejoin(T, S)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Compute a type that contains both `T` and `S`, which could be
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">either a parent of both types, or a `Union` if appropriate.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Falls back to [`typejoin`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_typejoin(@nospecialize(a), @nospecialize(b)) = _promote_typejoin(a, b)::Type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_promote_typejoin(@nospecialize(a), @nospecialize(b)) = typejoin(a, b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_promote_typejoin(::Type{Nothing}, ::Type{T}) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isconcretetype(T) || T === Union{} ? Union{T, Nothing} : Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_promote_typejoin(::Type{T}, ::Type{Nothing}) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isconcretetype(T) || T === Union{} ? Union{T, Nothing} : Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_promote_typejoin(::Type{Missing}, ::Type{T}) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isconcretetype(T) || T === Union{} ? Union{T, Missing} : Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_promote_typejoin(::Type{T}, ::Type{Missing}) where {T} =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isconcretetype(T) || T === Union{} ? Union{T, Missing} : Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_promote_typejoin(::Type{Nothing}, ::Type{Missing}) = Union{Nothing, Missing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_promote_typejoin(::Type{Missing}, ::Type{Nothing}) = Union{Nothing, Missing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_promote_typejoin(::Type{Nothing}, ::Type{Nothing}) = Nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_promote_typejoin(::Type{Missing}, ::Type{Missing}) = Missing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Returns length, isfixed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function full_va_len(p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isempty(p) &amp;&amp; return 0, true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    last = p[end]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isvarargtype(last)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        N = unwrap_unionall(last).parameters[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(N, Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return (length(p) + N - 1)::Int, true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return length(p)::Int, false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return length(p)::Int, true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># reduce typejoin over A[i:end]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function tailjoin(A, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if i &gt; length(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return unwrapva(A[end])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for j = i:length(A)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = typejoin(t, unwrapva(A[j]))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## promotion mechanism ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    promote_type(type1, type2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Promotion refers to converting values of mixed types to a single common type.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`promote_type` represents the default promotion behavior in Julia when
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">operators (usually mathematical) are given arguments of differing types.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`promote_type` generally tries to return a type which can at least approximate
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">most values of either input type without excessively widening.  Some loss is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">tolerated; for example, `promote_type(Int64, Float64)` returns
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`Float64`](@ref) even though strictly, not all [`Int64`](@ref) values can be
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">represented exactly as `Float64` values.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; promote_type(Int64, Float64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Float64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; promote_type(Int32, Int64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Int64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; promote_type(Float32, BigInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">BigFloat
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; promote_type(Int16, Float16)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Float16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; promote_type(Int64, Float16)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Float16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; promote_type(Int8, UInt16)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">UInt16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function promote_type end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_type()  = Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_type(T) = T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_type(T, S, U, V...) = (@_inline_meta; promote_type(T, promote_type(S, U, V...)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_type(::Type{Bottom}, ::Type{Bottom}) = Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_type(::Type{T}, ::Type{T}) where {T} = T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_type(::Type{T}, ::Type{Bottom}) where {T} = T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_type(::Type{Bottom}, ::Type{T}) where {T} = T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function promote_type(::Type{T}, ::Type{S}) where {T,S}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Try promote_rule in both orders. Typically only one is defined,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # and there is a fallback returning Bottom below, so the common case is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #   promote_type(T, S) =&gt;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #   promote_result(T, S, result, Bottom) =&gt;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    #   typejoin(result, Bottom) =&gt; result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    promote_result(T, S, promote_rule(T,S), promote_rule(S,T))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    promote_rule(type1, type2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Specifies what type should be used by [`promote`](@ref) when given values of types `type1` and
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`type2`. This function should not be called directly, but should have definitions added to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">it for new types as appropriate.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function promote_rule end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{&lt;:Any}, ::Type{&lt;:Any}) = Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># To fix ambiguities
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{Any}, ::Type{&lt;:Any}) = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{&lt;:Any}, ::Type{Any}) = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_rule(::Type{Any}, ::Type{Any}) = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_result(::Type{&lt;:Any},::Type{&lt;:Any},::Type{T},::Type{S}) where {T,S} = (@_inline_meta; promote_type(T,S))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># If no promote_rule is defined, both directions give Bottom. In that
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># case use typejoin on the original types instead.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_result(::Type{T},::Type{S},::Type{Bottom},::Type{Bottom}) where {T,S} = (@_inline_meta; typejoin(T, S))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    promote(xs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Convert all arguments to a common type, and return them all (as a tuple).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If no arguments can be converted, an error is raised.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; promote(Int8(1), Float16(4.5), Float32(4.1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(1.0f0, 4.5f0, 4.1f0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function promote end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _promote(x::T, y::S) where {T,S}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    R = promote_type(T, S)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (convert(R, x), convert(R, y))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_typeof(x) = typeof(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_typeof(x, xs...) = (@_inline_meta; promote_type(typeof(x), promote_typeof(xs...)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _promote(x, y, z)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    R = promote_typeof(x, y, z)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (convert(R, x), convert(R, y), convert(R, z))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _promote(x, y, zs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    R = promote_typeof(x, y, zs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (convert(R, x), convert(R, y), convert(Tuple{Vararg{R}}, zs)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># TODO: promote(x::T, ys::T...) where {T} here to catch all circularities?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## promotions in arithmetic, etc. ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote() = ()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote(x) = (x,)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function promote(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    px, py = _promote(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    not_sametype((x,y), (px,py))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    px, py
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function promote(x, y, z)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_inline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    px, py, pz = _promote(x, y, z)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    not_sametype((x,y,z), (px,py,pz))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    px, py, pz
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function promote(x, y, z, a...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = _promote(x, y, z, a...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    not_sametype((x, y, z, a...), p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote(x::T, y::T, zs::T...) where {T} = (x, y, zs...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">not_sametype(x::T, y::T) where {T} = sametype_error(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">not_sametype(x, y) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function sametype_error(input)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_noinline_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    error(&quot;promotion of types &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">          join(map(x-&gt;string(typeof(x)), input), &quot;, &quot;, &quot; and &quot;),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">          &quot; failed to change any arguments&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">+(x::Number, y::Number) = +(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">*(x::Number, y::Number) = *(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">-(x::Number, y::Number) = -(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">/(x::Number, y::Number) = /(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ^(x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Exponentiation operator. If `x` is a matrix, computes matrix exponentiation.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `y` is an `Int` literal (e.g. `2` in `x^2` or `-3` in `x^-3`), the Julia code
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`x^y` is transformed by the compiler to `Base.literal_pow(^, x, Val(y))`, to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">enable compile-time specialization on the value of the exponent.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(As a default fallback we have `Base.literal_pow(^, x, Val(y)) = ^(x,y)`,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">where usually `^ == Base.^` unless `^` has been defined in the calling
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">namespace.)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; 3^5
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">243
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A = [1 2; 3 4]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×2 Array{Int64,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 1  2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 3  4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; A^3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">2×2 Array{Int64,2}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 37   54
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> 81  118
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">^(x::Number, y::Number) = ^(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fma(x::Number, y::Number, z::Number) = fma(promote(x,y,z)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">muladd(x::Number, y::Number, z::Number) = muladd(promote(x,y,z)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">==(x::Number, y::Number) = (==)(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;( x::Real, y::Real)     = (&lt; )(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&lt;=(x::Real, y::Real)     = (&lt;=)(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">div(x::Real, y::Real) = div(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fld(x::Real, y::Real) = fld(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">cld(x::Real, y::Real) = cld(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rem(x::Real, y::Real) = rem(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mod(x::Real, y::Real) = mod(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mod1(x::Real, y::Real) = mod1(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fld1(x::Real, y::Real) = fld1(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">max(x::Real, y::Real) = max(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">min(x::Real, y::Real) = min(promote(x,y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">minmax(x::Real, y::Real) = minmax(promote(x, y)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># &quot;Promotion&quot; that takes a function into account and tries to preserve
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># non-concrete types. These are meant to be used mainly by elementwise
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># operations, so it is advised against overriding them
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_default_type(T::Type) = T
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if isdefined(Core, :Compiler)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const _return_type = Core.Compiler.return_type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _return_type(@nospecialize(f), @nospecialize(t)) = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    promote_op(f, argtypes...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Guess what an appropriate container eltype would be for storing results of
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`f(::argtypes...)`. The guess is in part based on type inference, so can change any time.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! warning
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    In pathological cases, the type returned by `promote_op(f, argtypes...)` may not even
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    be a supertype of the return value of `f(::argtypes...)`. Therefore, `promote_op`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    should _not_ be used e.g. in the preallocation of an output array.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! warning
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Due to its fragility, use of `promote_op` should be avoided. It is preferable to base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    the container eltype on the type of the actual elements. Only in the absence of any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elements (for an empty result container), it may be unavoidable to call `promote_op`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">promote_op(::Any...) = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function promote_op(f, ::Type{S}) where S
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    TT = Tuple{_default_type(S)}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    T = _return_type(f, TT)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isdispatchtuple(Tuple{S}) &amp;&amp; return isdispatchtuple(Tuple{T}) ? T : Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return typejoin(S, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function promote_op(f, ::Type{R}, ::Type{S}) where {R,S}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    TT = Tuple{_default_type(R), _default_type(S)}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    T = _return_type(f, TT)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isdispatchtuple(Tuple{R}) &amp;&amp; isdispatchtuple(Tuple{S}) &amp;&amp; return isdispatchtuple(Tuple{T}) ? T : Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return typejoin(R, S, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## catch-alls to prevent infinite recursion when definitions are missing ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">no_op_err(name, T) = error(name,&quot; not defined for &quot;,T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(+)(x::T, y::T) where {T&lt;:Number} = no_op_err(&quot;+&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(*)(x::T, y::T) where {T&lt;:Number} = no_op_err(&quot;*&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(-)(x::T, y::T) where {T&lt;:Number} = no_op_err(&quot;-&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(/)(x::T, y::T) where {T&lt;:Number} = no_op_err(&quot;/&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(^)(x::T, y::T) where {T&lt;:Number} = no_op_err(&quot;^&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fma(x::T, y::T, z::T) where {T&lt;:Number} = no_op_err(&quot;fma&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fma(x::Integer, y::Integer, z::Integer) = x*y+z
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">muladd(x::T, y::T, z::T) where {T&lt;:Number} = x*y+z
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(&amp;)(x::T, y::T) where {T&lt;:Integer} = no_op_err(&quot;&amp;&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(|)(x::T, y::T) where {T&lt;:Integer} = no_op_err(&quot;|&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">xor(x::T, y::T) where {T&lt;:Integer} = no_op_err(&quot;xor&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-425"></a>425</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-promotion-jl-425"></a>
+              1 (2.38%) samples spent in ==<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              ==
+              <a href="int-jl-af434f8f2b4fe43f173a-line.html#Lint-jl-af434f8f2b4fe43f173a-line.html-432">line 432</a><br />
+            </div>
+            <span class="code">(==)(x::T, y::T) where {T&lt;:Number} = x === y
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(&lt; )(x::T, y::T) where {T&lt;:Real} = no_op_err(&quot;&lt;&quot; , T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(&lt;=)(x::T, y::T) where {T&lt;:Real} = no_op_err(&quot;&lt;=&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rem(x::T, y::T) where {T&lt;:Real} = no_op_err(&quot;rem&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mod(x::T, y::T) where {T&lt;:Real} = no_op_err(&quot;mod&quot;, T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">min(x::Real) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">max(x::Real) = x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">minmax(x::Real) = (x, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">max(x::T, y::T) where {T&lt;:Real} = ifelse(y &lt; x, x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">min(x::T, y::T) where {T&lt;:Real} = ifelse(y &lt; x, y, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">minmax(x::T, y::T) where {T&lt;:Real} = y &lt; x ? (y, x) : (x, y)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lpromotion-jl-fe649671ed190521a171-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flipsign(x::T, y::T) where {T&lt;:Signed} = no_op_err(&quot;flipsign&quot;, T)
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/queries-jl-3d33f551d26c44796e11-line.html b/profiling/statprof/queries-jl-3d33f551d26c44796e11-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..c3ca119b6ec9e75910a99bfe0da135f417513ef2
--- /dev/null
+++ b/profiling/statprof/queries-jl-3d33f551d26c44796e11-line.html
@@ -0,0 +1,818 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./compiler/ssair/queries.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on ons  9 okt 2019 08:41:28</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether a statement is side-effect-free, i.e. may be removed if it has no uses.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-ssair-queries-jl-stmt_effect_free-6"></a>
+              1 (2.70%) samples spent in stmt_effect_free<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              maybe_erase_unused!
+              <a href="ir-jl-bebdc9bf648f41024d37-line.html#Lir-jl-bebdc9bf648f41024d37-line.html-903">line 903</a><br />
+            </div>
+            <span class="code">function stmt_effect_free(@nospecialize(stmt), @nospecialize(rt), src, spvals::SimpleVector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-7"></a>7</td>
+          <td>1 (2.70%)</td>
+          <td>1 (2.70%)</td>
+          <td>
+            <span class="code">    isa(stmt, Union{PiNode, PhiNode}) &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(stmt, Union{ReturnNode, GotoNode, GotoIfNot}) &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(stmt, GlobalRef) &amp;&amp; return isdefined(stmt.mod, stmt.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(stmt, Slot) &amp;&amp; return false # Slots shouldn&#39;t occur in the IR at this point, but let&#39;s be defensive here
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(stmt, Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        e = stmt::Expr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        head = e.head
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if head === :static_parameter
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            etyp = sparam_type(spvals[e.args[1]])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # if we aren&#39;t certain enough about the type, it might be an UndefVarError at runtime
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return isa(etyp, Const) || issingletontype(widenconst(etyp))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ea = e.args
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if head === :call
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            f = argextype(ea[1], src, spvals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            f = isa(f, Const) ? f.val : isType(f) ? f.parameters[1] : return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            f === return_type &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            contains_is(_PURE_BUILTINS, f) &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            contains_is(_PURE_OR_ERROR_BUILTINS, f) || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rt === Bottom &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return _builtin_nothrow(f, Any[argextype(ea[i], src, spvals) for i = 2:length(ea)], rt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif head === :new
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            a = ea[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            typ = argextype(a, src, spvals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # `Expr(:new)` of unknown type could raise arbitrary TypeError.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            typ, isexact = instanceof_tfunc(typ)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isexact || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isconcretedispatch(typ) || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            typ = typ::DataType
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            fieldcount(typ) &gt;= length(ea) - 1 || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for fld_idx in 1:(length(ea) - 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                eT = argextype(ea[fld_idx + 1], src, spvals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                fT = fieldtype(typ, fld_idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                eT ⊑ fT || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif head === :isdefined || head === :the_exception || head === :copyast || head === :inbounds || head === :boundscheck
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # e.g. :simdloop
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abstract_eval_ssavalue(s::SSAValue, src::IRCode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return types(src)[s]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function abstract_eval_ssavalue(s::SSAValue, src::IncrementalCompact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return types(src)[s]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function compact_exprtype(compact::IncrementalCompact, @nospecialize(value))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(value, AnySSAValue)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return types(compact)[value]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isa(value, Argument)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return compact.ir.argtypes[value.n]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return argextype(value, compact.ir, compact.ir.spvals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is_tuple_call(ir::IRCode, @nospecialize(def)) = isa(def, Expr) &amp;&amp; is_known_call(def, tuple, ir, ir.spvals)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is_tuple_call(compact::IncrementalCompact, @nospecialize(def)) = isa(def, Expr) &amp;&amp; is_known_call(def, tuple, compact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function is_known_call(e::Expr, @nospecialize(func), src::IncrementalCompact)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if e.head !== :call
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f = compact_exprtype(src, e.args[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return isa(f, Const) &amp;&amp; f.val === func
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lqueries-jl-3d33f551d26c44796e11-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/reflection-jl-e4829e64897104a61856-line.html b/profiling/statprof/reflection-jl-e4829e64897104a61856-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..03b4f4b700d8cfcbb8193b924995990a012e624a
--- /dev/null
+++ b/profiling/statprof/reflection-jl-e4829e64897104a61856-line.html
@@ -0,0 +1,11328 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./reflection.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on ons  9 okt 2019 08:41:28</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># name and module reflection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nameof(m::Module) -&gt; Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get the name of a `Module` as a `Symbol`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; nameof(Base.Broadcast)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">:Broadcast
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">nameof(m::Module) = ccall(:jl_module_name, Ref{Symbol}, (Any,), m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    parentmodule(m::Module) -&gt; Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get a module&#39;s enclosing `Module`. `Main` is its own parent.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; parentmodule(Main)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Main
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; parentmodule(Base.Broadcast)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">parentmodule(m::Module) = ccall(:jl_module_parent, Ref{Module}, (Any,), m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    moduleroot(m::Module) -&gt; Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Find the root module of a given module. This is the first module in the chain of
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">parent modules of `m` which is either a registered root module or which is its
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">own parent module.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function moduleroot(m::Module)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        is_root_module(m) &amp;&amp; return m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        p = parentmodule(m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        p == m &amp;&amp; return m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        m = p
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @__MODULE__ -&gt; Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get the `Module` of the toplevel eval,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">which is the `Module` code is currently being read from.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro __MODULE__()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return __module__
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fullname(m::Module)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get the fully-qualified name of a module as a tuple of symbols. For example,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; fullname(Base.Iterators)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(:Base, :Iterators)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; fullname(Main)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(:Main,)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fullname(m::Module)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mn = nameof(m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if m === Main || m === Base || m === Core
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return (mn,)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mp = parentmodule(m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if mp === m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return (mn,)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (fullname(mp)..., mn)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    names(x::Module; all::Bool = false, imported::Bool = false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get an array of the names exported by a `Module`, excluding deprecated names.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `all` is true, then the list also includes non-exported names defined in the module,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">deprecated names, and compiler-generated names.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `imported` is true, then names explicitly imported from other modules
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">are also included.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">As a special case, all names defined in `Main` are considered \&quot;exported\&quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">since it is not idiomatic to explicitly export names from `Main`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">names(m::Module; all::Bool = false, imported::Bool = false) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sort!(ccall(:jl_module_names, Array{Symbol,1}, (Any, Cint, Cint), m, all, imported))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isexported(m::Module, s::Symbol) = ccall(:jl_module_exports_p, Cint, (Any, Any), m, s) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isdeprecated(m::Module, s::Symbol) = ccall(:jl_is_binding_deprecated, Cint, (Any, Any), m, s) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isbindingresolved(m::Module, var::Symbol) = ccall(:jl_binding_resolved_p, Cint, (Any, Any), m, var) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function binding_module(m::Module, s::Symbol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = ccall(:jl_get_module_of_binding, Ptr{Cvoid}, (Any, Any), m, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p == C_NULL &amp;&amp; return m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return unsafe_pointer_to_objref(p)::Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function resolve(g::GlobalRef; force::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if force || isbindingresolved(g.mod, g.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return GlobalRef(binding_module(g.mod, g.name), g.name)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return g
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const NamedTuple_typename = NamedTuple.body.body.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _fieldnames(@nospecialize t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if t.name === NamedTuple_typename
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if t.parameters[1] isa Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return t.parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            throw(ArgumentError(&quot;type does not have definite field names&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isdefined(t, :names) ? t.names : t.name.names
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fieldname(x::DataType, i::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get the name of field `i` of a `DataType`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; fieldname(Rational, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">:num
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; fieldname(Rational, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">:den
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fieldname(t::DataType, i::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if t.abstract
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;type does not have definite field names&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    names = _fieldnames(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n_fields = length(names)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    field_label = n_fields == 1 ? &quot;field&quot; : &quot;fields&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i &gt; n_fields &amp;&amp; throw(ArgumentError(&quot;Cannot access field $i since type $t only has $n_fields $field_label.&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i &lt; 1 &amp;&amp; throw(ArgumentError(&quot;Field numbers must be positive integers. $i is invalid.&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return names[i]::Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fieldname(t::UnionAll, i::Integer) = fieldname(unwrap_unionall(t), i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fieldname(t::Type{&lt;:Tuple}, i::Integer) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i &lt; 1 || i &gt; fieldcount(t) ? throw(BoundsError(t, i)) : Int(i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fieldnames(x::DataType)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get a tuple with the names of the fields of a `DataType`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; fieldnames(Rational)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(:num, :den)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fieldnames(t::DataType) = (fieldcount(t); # error check to make sure type is specific enough
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                           (_fieldnames(t)...,))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fieldnames(t::UnionAll) = fieldnames(unwrap_unionall(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fieldnames(::Core.TypeofBottom) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    throw(ArgumentError(&quot;The empty type does not have field names since it does not have instances.&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fieldnames(t::Type{&lt;:Tuple}) = ntuple(identity, fieldcount(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nameof(t::DataType) -&gt; Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get the name of a (potentially `UnionAll`-wrapped) `DataType` (without its parent module)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">as a symbol.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; module Foo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           struct S{T}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Foo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; nameof(Foo.S{T} where T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">:S
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">nameof(t::DataType) = t.name.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">nameof(t::UnionAll) = nameof(unwrap_unionall(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    parentmodule(t::DataType) -&gt; Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine the module containing the definition of a (potentially `UnionAll`-wrapped) `DataType`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; module Foo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           struct Int end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Foo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; parentmodule(Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Core
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; parentmodule(Foo.Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Foo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">parentmodule(t::DataType) = t.name.module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">parentmodule(t::UnionAll) = parentmodule(unwrap_unionall(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isconst(m::Module, s::Symbol) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether a global is declared `const` in a given `Module`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isconst(m::Module, s::Symbol) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_is_const, Cint, (Any, Any), m, s) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @isdefined s -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Tests whether variable `s` is defined in the current scope.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; function f()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           println(@isdefined x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           x = 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           println(@isdefined x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">f (generic function with 1 method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; f()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro isdefined(s::Symbol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Expr(:isdefined, esc(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    objectid(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get a hash value for `x` based on object identity. `objectid(x)==objectid(y)` if `x === y`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">objectid(@nospecialize(x)) = ccall(:jl_object_id, UInt, (Any,), x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># concrete datatype predicates
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct DataTypeLayout
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nfields::UInt32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    alignment::UInt32
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # alignment : 28;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # haspadding : 1;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # pointerfree : 1;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # fielddesc_type : 2;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.datatype_alignment(dt::DataType) -&gt; Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Memory allocation minimum alignment for instances of this type.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Can be called on any `isconcretetype`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function datatype_alignment(dt::DataType)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dt.layout == C_NULL &amp;&amp; throw(UndefRefError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    alignment = unsafe_load(convert(Ptr{DataTypeLayout}, dt.layout)).alignment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Int(alignment &amp; 0x1FF)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.datatype_haspadding(dt::DataType) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return whether the fields of instances of this type are packed in memory,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">with no intervening padding bytes.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Can be called on any `isconcretetype`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function datatype_haspadding(dt::DataType)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dt.layout == C_NULL &amp;&amp; throw(UndefRefError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    alignment = unsafe_load(convert(Ptr{DataTypeLayout}, dt.layout)).alignment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (alignment &gt;&gt; 9) &amp; 1 == 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.datatype_pointerfree(dt::DataType) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return whether instances of this type can contain references to gc-managed memory.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Can be called on any `isconcretetype`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function datatype_pointerfree(dt::DataType)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dt.layout == C_NULL &amp;&amp; throw(UndefRefError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    alignment = unsafe_load(convert(Ptr{DataTypeLayout}, dt.layout)).alignment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (alignment &gt;&gt; 10) &amp; 0xFFFFF == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.datatype_fielddesc_type(dt::DataType) -&gt; Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the size in bytes of each field-description entry in the layout array,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">located at `(dt.layout + sizeof(DataTypeLayout))`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Can be called on any `isconcretetype`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also [`Base.fieldoffset`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function datatype_fielddesc_type(dt::DataType)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dt.layout == C_NULL &amp;&amp; throw(UndefRefError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    alignment = unsafe_load(convert(Ptr{DataTypeLayout}, dt.layout)).alignment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (alignment &gt;&gt; 30) &amp; 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isimmutable(v) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `true` iff value `v` is immutable.  See [Mutable Composite Types](@ref)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for a discussion of immutability. Note that this function works on values, so if you give it
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a type, it will tell you that a value of `DataType` is mutable.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isimmutable(1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isimmutable([1,2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isimmutable(@nospecialize(x)) = (@_pure_meta; !typeof(x).mutable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.isstructtype(T) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether type `T` was declared as a struct type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(i.e. using the `struct` or `mutable struct` keyword).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isstructtype(@nospecialize(t::Type))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = unwrap_unionall(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # TODO: what to do for `Union`?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(t, DataType) || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return length(t.types) != 0 || (t.size == 0 &amp;&amp; !t.abstract)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.isprimitivetype(T) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether type `T` was declared as a primitive type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(i.e. using the `primitive` keyword).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isprimitivetype(@nospecialize(t::Type))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = unwrap_unionall(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # TODO: what to do for `Union`?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isa(t, DataType) || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return length(t.types) == 0 &amp;&amp; t.size != 0 &amp;&amp; !t.abstract
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isbitstype(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `true` if type `T` is a &quot;plain data&quot; type,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">meaning it is immutable and contains no references to other values,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">only `primitive` types and other `isbitstype` types.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Typical examples are numeric types such as [`UInt8`](@ref),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`Float64`](@ref), and [`Complex{Float64}`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This category of types is significant since they are valid as type parameters,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">may not track [`isdefined`](@ref) / [`isassigned`](@ref) status,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and have a defined layout that is compatible with C.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isbitstype(Complex{Float64})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isbitstype(Complex)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isbitstype(@nospecialize(t::Type)) = (@_pure_meta; isa(t, DataType) &amp;&amp; t.isbitstype)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isbits(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return `true` if `x` is an instance of an `isbitstype` type.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isbits(@nospecialize x) = (@_pure_meta; typeof(x).isbitstype)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isdispatchtuple(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether type `T` is a tuple &quot;leaf type&quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">meaning it could appear as a type signature in dispatch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and has no subtypes (or supertypes) which could appear in a call.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isdispatchtuple(@nospecialize(t)) = (@_pure_meta; isa(t, DataType) &amp;&amp; t.isdispatchtuple)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iskindtype(@nospecialize t) = (t === DataType || t === UnionAll || t === Union || t === typeof(Bottom))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isconcretedispatch(@nospecialize t) = isconcretetype(t) &amp;&amp; !iskindtype(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">has_free_typevars(@nospecialize(t)) = ccall(:jl_has_free_typevars, Cint, (Any,), t) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># equivalent to isa(v, Type) &amp;&amp; isdispatchtuple(Tuple{v}) || v === Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># and is thus perhaps most similar to the old (pre-1.0) `isleaftype` query
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const _TYPE_NAME = Type.body.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isdispatchelem(@nospecialize v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (v === Bottom) || (v === typeof(Bottom)) || isconcretedispatch(v) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (isa(v, DataType) &amp;&amp; v.name === _TYPE_NAME &amp;&amp; !has_free_typevars(v)) # isType(v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isconcretetype(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether type `T` is a concrete type, meaning it could have direct instances
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(values `x` such that `typeof(x) === T`).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isconcretetype(Complex)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isconcretetype(Complex{Float32})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isconcretetype(Vector{Complex})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isconcretetype(Vector{Complex{Float32}})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isconcretetype(Union{})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; isconcretetype(Union{Int,String})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isconcretetype(@nospecialize(t)) = (@_pure_meta; isa(t, DataType) &amp;&amp; t.isconcretetype)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.isabstracttype(T)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether type `T` was declared as an abstract type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(i.e. using the `abstract` keyword).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.isabstracttype(AbstractArray)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.isabstracttype(Vector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isabstracttype(@nospecialize(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = unwrap_unionall(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # TODO: what to do for `Union`?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return isa(t, DataType) &amp;&amp; t.abstract
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.parameter_upper_bound(t::UnionAll, idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine the upper bound of a type parameter in the underlying datatype.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This method should generally not be relied upon:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">code instead should usually use static parameters in dispatch to extract these values.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; struct Foo{T&lt;:AbstractFloat, N}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           x::Tuple{T, N}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.parameter_upper_bound(Foo, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">AbstractFloat
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.parameter_upper_bound(Foo, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function parameter_upper_bound(t::UnionAll, idx)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return rewrap_unionall((unwrap_unionall(t)::DataType).parameters[idx], t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typeintersect(T, S)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Compute a type that contains the intersection of `T` and `S`. Usually this will be the
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">smallest such type or one close to it.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typeintersect(@nospecialize(a),@nospecialize(b)) = (@_pure_meta; ccall(:jl_type_intersection, Any, (Any,Any), a, b))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fieldoffset(type, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The byte offset of field `i` of a type relative to the data start. For example, we could
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">use it in the following manner to summarize information about a struct:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; structinfo(T) = [(fieldoffset(T,i), fieldname(T,i), fieldtype(T,i)) for i = 1:fieldcount(T)];
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; structinfo(Base.Filesystem.StatStruct)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">12-element Array{Tuple{UInt64,Symbol,DataType},1}:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000000, :device, UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000008, :inode, UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000010, :mode, UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000018, :nlink, Int64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000020, :uid, UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000028, :gid, UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000030, :rdev, UInt64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000038, :size, Int64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000040, :blksize, Int64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000048, :blocks, Int64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000050, :mtime, Float64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"> (0x0000000000000058, :ctime, Float64)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fieldoffset(x::DataType, idx::Integer) = (@_pure_meta; ccall(:jl_get_field_offset, Csize_t, (Any, Cint), x, idx))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fieldtype(T, name::Symbol | index::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine the declared type of a field (specified by name or index) in a composite DataType `T`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; struct Foo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           x::Int64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           y::String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; fieldtype(Foo, :x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Int64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; fieldtype(Foo, 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fieldtype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fieldindex(T, name::Symbol, err:Bool=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get the index of a named field, throwing an error if the field does not exist (when err==true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">or returning 0 (when err==false).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; struct Foo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           x::Int64
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           y::String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.fieldindex(Foo, :z)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ERROR: type Foo has no field z
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Stacktrace:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[...]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.fieldindex(Foo, :z, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fieldindex(T::DataType, name::Symbol, err::Bool=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Int(ccall(:jl_field_index, Cint, (Any, Any, Cint), T, name, err)+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">argument_datatype(@nospecialize t) = ccall(:jl_argument_datatype, Any, (Any,), t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function argument_mt(@nospecialize t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dt = argument_datatype(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (dt === nothing || !isdefined(dt.name, :mt)) &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    dt.name.mt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fieldcount(t::Type)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get the number of fields that an instance of the given type would have.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">An error is thrown if the type is too abstract to determine this.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function fieldcount(@nospecialize t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if t isa UnionAll || t isa Union
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = argument_datatype(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if t === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            throw(ArgumentError(&quot;type does not have a definite number of fields&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = t::DataType
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif t == Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-603"></a>603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;The empty type does not have a well-defined number of fields since it does not have instances.&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !(t isa DataType)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(TypeError(:fieldcount, &quot;&quot;, Type, t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if t.name === NamedTuple_typename
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        names, types = t.parameters
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if names isa Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-611"></a>611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return length(names)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if types isa DataType &amp;&amp; types &lt;: Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return fieldcount(types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        abstr = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        abstr = t.abstract || (t.name === Tuple.name &amp;&amp; isvatuple(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if abstr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;type does not have a definite number of fields&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return length(t.types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># return all instances, for types that can be enumerated
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    instances(T::Type)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return a collection of all instances of the given type, if applicable. Mostly used for
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">enumerated types (see `@enum`).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Example
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; @enum Color red blue green
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; instances(Color)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(red::Color = 0, blue::Color = 1, green::Color = 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function instances end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function to_tuple_type(@nospecialize(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @_pure_meta
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(t,Tuple) || isa(t,AbstractArray) || isa(t,SimpleVector)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = Tuple{t...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-648"></a>648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-649"></a>649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(t,Type) &amp;&amp; t&lt;:Tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-650"></a>650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for p in unwrap_unionall(t).parameters
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-651"></a>651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !(isa(p,Type) || isa(p,TypeVar))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-652"></a>652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                error(&quot;argument tuple type must contain only types&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-653"></a>653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-654"></a>654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-655"></a>655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-656"></a>656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;expected tuple type&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-657"></a>657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-658"></a>658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-659"></a>659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-660"></a>660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-661"></a>661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function signature_type(@nospecialize(f), @nospecialize(args))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-662"></a>662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f_type = isa(f, Type) ? Type{f} : typeof(f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-663"></a>663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(args, Type)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-664"></a>664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        u = unwrap_unionall(args)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-665"></a>665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return rewrap_unionall(Tuple{f_type, u.parameters...}, args)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-666"></a>666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-667"></a>667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Tuple{f_type, args...}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-668"></a>668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-669"></a>669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-670"></a>670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-671"></a>671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-672"></a>672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code_lowered(f, types; generated = true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-673"></a>673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-674"></a>674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return an array of the lowered forms (IR) for the methods matching the given generic function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-675"></a>675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">and type signature.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-676"></a>676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-677"></a>677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `generated` is `false`, the returned `CodeInfo` instances will correspond to fallback
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-678"></a>678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">implementations. An error is thrown if no fallback implementation exists.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-679"></a>679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `generated` is `true`, these `CodeInfo` instances will correspond to the method bodies
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-680"></a>680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">yielded by expanding the generators.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-681"></a>681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-682"></a>682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Note that an error will be thrown if `types` are not leaf types when `generated` is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-683"></a>683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`true` and the corresponding method is a `@generated` method.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-684"></a>684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-685"></a>685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function code_lowered(@nospecialize(f), @nospecialize(t = Tuple); generated::Bool = true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-686"></a>686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return map(method_instances(f, t)) do m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-687"></a>687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if generated &amp;&amp; isgenerated(m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-688"></a>688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(m, Core.MethodInstance)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-689"></a>689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return Core.Compiler.get_staged(m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-690"></a>690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else # isa(m, Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-691"></a>691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                error(&quot;Could not expand generator for `@generated` method &quot;, m, &quot;. &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-692"></a>692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                      &quot;This can happen if the provided argument types (&quot;, t, &quot;) are &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-693"></a>693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                      &quot;not leaf types, but the `generated` argument is `true`.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-694"></a>694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-695"></a>695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-696"></a>696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return uncompressed_ast(m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-697"></a>697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-698"></a>698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-699"></a>699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-700"></a>700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isgenerated(m::Method) = isdefined(m, :generator)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-701"></a>701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isgenerated(m::Core.MethodInstance) = isgenerated(m.def)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-702"></a>702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-703"></a>703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># low-level method lookup functions used by the compiler
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-704"></a>704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-705"></a>705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unionlen(x::Union) = unionlen(x.a) + unionlen(x.b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-706"></a>706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unionlen(@nospecialize(x)) = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-707"></a>707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-708"></a>708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_uniontypes(x::Union, ts) = (_uniontypes(x.a,ts); _uniontypes(x.b,ts); ts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-709"></a>709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_uniontypes(@nospecialize(x), ts) = (push!(ts, x); ts)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-710"></a>710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uniontypes(@nospecialize(x)) = _uniontypes(x, Any[])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-711"></a>711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-712"></a>712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _methods(@nospecialize(f), @nospecialize(t), lim::Int, world::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-713"></a>713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tt = signature_type(f, t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-714"></a>714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return _methods_by_ftype(tt, lim, world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-715"></a>715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-716"></a>716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-717"></a>717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _methods_by_ftype(@nospecialize(t), lim::Int, world::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-718"></a>718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return _methods_by_ftype(t, lim, world, UInt[typemin(UInt)], UInt[typemax(UInt)])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-719"></a>719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-720"></a>720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _methods_by_ftype(@nospecialize(t), lim::Int, world::UInt, min::Array{UInt,1}, max::Array{UInt,1})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-721"></a>721</td>
+          <td>1 (2.70%)</td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-reflection-jl-_methods_by_ftype-721"></a>
+              1 (2.70%) samples spent in _methods_by_ftype<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              abstract_call_gf_by_type
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#Labstractinterpretation-jl-35ae29f448859d864444-line.html-49">line 49</a><br />
+            </div>
+            <span class="code">    return ccall(:jl_matching_methods, Any, (Any, Cint, Cint, UInt, Ptr{UInt}, Ptr{UInt}), t, lim, 0, world, min, max)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-722"></a>722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-723"></a>723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-724"></a>724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># high-level, more convenient method lookup functions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-725"></a>725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-726"></a>726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># type for reflecting and pretty-printing a subset of methods
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-727"></a>727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct MethodList
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-728"></a>728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ms::Array{Method,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-729"></a>729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mt::Core.MethodTable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-730"></a>730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-731"></a>731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-732"></a>732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">length(m::MethodList) = length(m.ms)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-733"></a>733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isempty(m::MethodList) = isempty(m.ms)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-734"></a>734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iterate(m::MethodList, s...) = iterate(m.ms, s...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-735"></a>735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eltype(::Type{MethodList}) = Method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-736"></a>736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-737"></a>737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function MethodList(mt::Core.MethodTable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-738"></a>738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ms = Method[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-739"></a>739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    visit(mt) do m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-740"></a>740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(ms, m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-741"></a>741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-742"></a>742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return MethodList(ms, mt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-743"></a>743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-744"></a>744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-745"></a>745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-746"></a>746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    methods(f, [types])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-747"></a>747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-748"></a>748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Returns the method table for `f`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-749"></a>749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-750"></a>750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `types` is specified, returns an array of methods whose types match.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-751"></a>751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-752"></a>752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function methods(@nospecialize(f), @nospecialize(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-753"></a>753</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(f, Core.Builtin)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-754"></a>754</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;argument is not a generic function&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-755"></a>755</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-756"></a>756</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = to_tuple_type(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-757"></a>757</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    world = typemax(UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-758"></a>758</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return MethodList(Method[m[3] for m in _methods(f, t, -1, world)], typeof(f).name.mt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-759"></a>759</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-760"></a>760</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-761"></a>761</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">methods(f::Core.Builtin) = MethodList(Method[], typeof(f).name.mt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-762"></a>762</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-763"></a>763</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function methods_including_ambiguous(@nospecialize(f), @nospecialize(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-764"></a>764</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tt = signature_type(f, t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-765"></a>765</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    world = typemax(UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-766"></a>766</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    min = UInt[typemin(UInt)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-767"></a>767</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    max = UInt[typemax(UInt)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-768"></a>768</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ms = ccall(:jl_matching_methods, Any, (Any, Cint, Cint, UInt, Ptr{UInt}, Ptr{UInt}), tt, -1, 1, world, min, max)::Array{Any,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-769"></a>769</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return MethodList(Method[m[3] for m in ms], typeof(f).name.mt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-770"></a>770</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-771"></a>771</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function methods(@nospecialize(f))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-772"></a>772</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # return all matches
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-773"></a>773</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return methods(f, Tuple{Vararg{Any}})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-774"></a>774</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-775"></a>775</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-776"></a>776</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function visit(f, mt::Core.MethodTable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-777"></a>777</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mt.defs !== nothing &amp;&amp; visit(f, mt.defs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-778"></a>778</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-779"></a>779</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-780"></a>780</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function visit(f, mc::Core.TypeMapLevel)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-781"></a>781</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if mc.targ !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-782"></a>782</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        e = mc.targ::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-783"></a>783</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i in 1:length(e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-784"></a>784</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isassigned(e, i) &amp;&amp; visit(f, e[i])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-785"></a>785</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-786"></a>786</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-787"></a>787</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if mc.arg1 !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-788"></a>788</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        e = mc.arg1::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-789"></a>789</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i in 1:length(e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-790"></a>790</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            isassigned(e, i) &amp;&amp; visit(f, e[i])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-791"></a>791</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-792"></a>792</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-793"></a>793</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mc.list !== nothing &amp;&amp; visit(f, mc.list)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-794"></a>794</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mc.any !== nothing &amp;&amp; visit(f, mc.any)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-795"></a>795</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-796"></a>796</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-797"></a>797</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function visit(f, d::Core.TypeMapEntry)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-798"></a>798</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while d !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-799"></a>799</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        f(d.func)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-800"></a>800</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        d = d.next
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-801"></a>801</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-802"></a>802</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-803"></a>803</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-804"></a>804</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-805"></a>805</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function length(mt::Core.MethodTable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-806"></a>806</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-807"></a>807</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    visit(mt) do m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-808"></a>808</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-809"></a>809</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-810"></a>810</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return n::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-811"></a>811</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-812"></a>812</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isempty(mt::Core.MethodTable) = (mt.defs === nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-813"></a>813</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-814"></a>814</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uncompressed_ast(m::Method) = isdefined(m,:source) ? uncompressed_ast(m, m.source) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-815"></a>815</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                              isdefined(m,:generator) ? error(&quot;Method is @generated; try `code_lowered` instead.&quot;) :
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-816"></a>816</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                              error(&quot;Code for this Method is not available.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-817"></a>817</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uncompressed_ast(m::Method, s::CodeInfo) = s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-818"></a>818</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uncompressed_ast(m::Method, s::Array{UInt8,1}) = ccall(:jl_uncompress_ast, Any, (Any, Any), m, s)::CodeInfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-819"></a>819</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uncompressed_ast(m::Core.MethodInstance) = uncompressed_ast(m.def)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-820"></a>820</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-821"></a>821</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function method_instances(@nospecialize(f), @nospecialize(t), world::UInt = typemax(UInt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-822"></a>822</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tt = signature_type(f, t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-823"></a>823</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    results = Vector{Union{Method,Core.MethodInstance}}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-824"></a>824</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for method_data in _methods_by_ftype(tt, -1, world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-825"></a>825</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        mtypes, msp, m = method_data
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-826"></a>826</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        instance = Core.Compiler.code_for_method(m, mtypes, msp, world, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-827"></a>827</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(results, ifelse(isa(instance, Core.MethodInstance), instance, m))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-828"></a>828</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-829"></a>829</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return results
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-830"></a>830</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-831"></a>831</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-832"></a>832</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># this type mirrors jl_cgparams_t (documented in julia.h)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-833"></a>833</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct CodegenParams
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-834"></a>834</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cached::Cint
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-835"></a>835</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-836"></a>836</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    track_allocations::Cint
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-837"></a>837</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code_coverage::Cint
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-838"></a>838</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    static_alloc::Cint
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-839"></a>839</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    prefer_specsig::Cint
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-840"></a>840</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-841"></a>841</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    module_setup::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-842"></a>842</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    module_activation::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-843"></a>843</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    raise_exception::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-844"></a>844</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    emit_function::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-845"></a>845</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    emitted_function::Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-846"></a>846</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-847"></a>847</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    CodegenParams(;cached::Bool=true,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-848"></a>848</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   track_allocations::Bool=true, code_coverage::Bool=true,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-849"></a>849</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   static_alloc::Bool=true, prefer_specsig::Bool=false,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-850"></a>850</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   module_setup=nothing, module_activation=nothing, raise_exception=nothing,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-851"></a>851</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                   emit_function=nothing, emitted_function=nothing) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-852"></a>852</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        new(Cint(cached),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-853"></a>853</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Cint(track_allocations), Cint(code_coverage),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-854"></a>854</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Cint(static_alloc), Cint(prefer_specsig),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-855"></a>855</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            module_setup, module_activation, raise_exception,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-856"></a>856</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            emit_function, emitted_function)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-857"></a>857</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-858"></a>858</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-859"></a>859</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># give a decent error message if we try to instantiate a staged function on non-leaf types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-860"></a>860</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function func_for_method_checked(m::Method, @nospecialize types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-861"></a>861</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isdefined(m, :generator) &amp;&amp; !isdispatchtuple(types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-862"></a>862</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;cannot call @generated function `&quot;, m, &quot;` &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-863"></a>863</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              &quot;with abstract argument types: &quot;, types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-864"></a>864</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-865"></a>865</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return m
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-866"></a>866</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-867"></a>867</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-868"></a>868</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-869"></a>869</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code_typed(f, types; optimize=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-870"></a>870</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-871"></a>871</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Returns an array of type-inferred lowered form (IR) for the methods matching the given
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-872"></a>872</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">generic function and type signature. The keyword argument `optimize` controls whether
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-873"></a>873</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">additional optimizations, such as inlining, are also applied.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-874"></a>874</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-875"></a>875</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function code_typed(@nospecialize(f), @nospecialize(types=Tuple); optimize=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-876"></a>876</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_is_in_pure_context, Bool, ()) &amp;&amp; error(&quot;code reflection cannot be used from generated functions&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-877"></a>877</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(f, Core.Builtin)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-878"></a>878</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;argument is not a generic function&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-879"></a>879</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-880"></a>880</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    types = to_tuple_type(types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-881"></a>881</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    asts = []
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-882"></a>882</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    world = ccall(:jl_get_world_counter, UInt, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-883"></a>883</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    params = Core.Compiler.Params(world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-884"></a>884</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in _methods(f, types, -1, world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-885"></a>885</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        meth = func_for_method_checked(x[3], types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-886"></a>886</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (code, ty) = Core.Compiler.typeinf_code(meth, x[1], x[2], optimize, params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-887"></a>887</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        code === nothing &amp;&amp; error(&quot;inference not successful&quot;) # inference disabled?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-888"></a>888</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(asts, code =&gt; ty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-889"></a>889</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-890"></a>890</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return asts
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-891"></a>891</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-892"></a>892</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-893"></a>893</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function return_types(@nospecialize(f), @nospecialize(types=Tuple))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-894"></a>894</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_is_in_pure_context, Bool, ()) &amp;&amp; error(&quot;code reflection cannot be used from generated functions&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-895"></a>895</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(f, Core.Builtin)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-896"></a>896</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;argument is not a generic function&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-897"></a>897</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-898"></a>898</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    types = to_tuple_type(types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-899"></a>899</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rt = []
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-900"></a>900</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    world = ccall(:jl_get_world_counter, UInt, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-901"></a>901</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    params = Core.Compiler.Params(world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-902"></a>902</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for x in _methods(f, types, -1, world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-903"></a>903</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        meth = func_for_method_checked(x[3], types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-904"></a>904</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ty = Core.Compiler.typeinf_type(meth, x[1], x[2], params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-905"></a>905</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ty === nothing &amp;&amp; error(&quot;inference not successful&quot;) # inference disabled?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-906"></a>906</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(rt, ty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-907"></a>907</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-908"></a>908</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return rt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-909"></a>909</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-910"></a>910</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-911"></a>911</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-912"></a>912</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    which(f, types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-913"></a>913</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-914"></a>914</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Returns the method of `f` (a `Method` object) that would be called for arguments of the given `types`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-915"></a>915</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-916"></a>916</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If `types` is an abstract type, then the method that would be called by `invoke` is returned.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-917"></a>917</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-918"></a>918</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function which(@nospecialize(f), @nospecialize(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-919"></a>919</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(f, Core.Builtin)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-920"></a>920</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;argument is not a generic function&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-921"></a>921</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-922"></a>922</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = to_tuple_type(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-923"></a>923</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tt = signature_type(f, t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-924"></a>924</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    m = ccall(:jl_gf_invoke_lookup, Any, (Any, UInt), tt, typemax(UInt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-925"></a>925</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if m === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-926"></a>926</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;no unique matching method found for the specified argument types&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-927"></a>927</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-928"></a>928</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return m.func::Method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-929"></a>929</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-930"></a>930</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-931"></a>931</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-932"></a>932</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    which(module, symbol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-933"></a>933</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-934"></a>934</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the module in which the binding for the variable referenced by `symbol` in `module` was created.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-935"></a>935</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-936"></a>936</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function which(m::Module, s::Symbol)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-937"></a>937</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isdefined(m, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-938"></a>938</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;\&quot;$s\&quot; is not defined in module $m&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-939"></a>939</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-940"></a>940</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return binding_module(m, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-941"></a>941</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-942"></a>942</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-943"></a>943</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># function reflection
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-944"></a>944</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-945"></a>945</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nameof(f::Function) -&gt; Symbol
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-946"></a>946</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-947"></a>947</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get the name of a generic `Function` as a symbol, or `:anonymous`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-948"></a>948</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-949"></a>949</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">nameof(f::Function) = typeof(f).name.mt.name
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-950"></a>950</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-951"></a>951</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">functionloc(m::Core.MethodInstance) = functionloc(m.def)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-952"></a>952</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-953"></a>953</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-954"></a>954</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    functionloc(m::Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-955"></a>955</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-956"></a>956</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Returns a tuple `(filename,line)` giving the location of a `Method` definition.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-957"></a>957</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-958"></a>958</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function functionloc(m::Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-959"></a>959</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ln = m.line
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-960"></a>960</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if ln &lt;= 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-961"></a>961</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;could not determine location of method definition&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-962"></a>962</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-963"></a>963</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (find_source_file(string(m.file)), ln)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-964"></a>964</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-965"></a>965</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-966"></a>966</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-967"></a>967</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    functionloc(f::Function, types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-968"></a>968</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-969"></a>969</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Returns a tuple `(filename,line)` giving the location of a generic `Function` definition.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-970"></a>970</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-971"></a>971</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">functionloc(@nospecialize(f), @nospecialize(types)) = functionloc(which(f,types))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-972"></a>972</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-973"></a>973</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function functionloc(@nospecialize(f))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-974"></a>974</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mt = methods(f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-975"></a>975</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isempty(mt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-976"></a>976</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(f, Function)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-977"></a>977</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            error(&quot;function has no definitions&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-978"></a>978</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-979"></a>979</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            error(&quot;object is not callable&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-980"></a>980</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-981"></a>981</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-982"></a>982</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if length(mt) &gt; 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-983"></a>983</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;function has multiple methods; please specify a type signature&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-984"></a>984</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-985"></a>985</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return functionloc(first(mt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-986"></a>986</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-987"></a>987</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-988"></a>988</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-989"></a>989</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    parentmodule(f::Function) -&gt; Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-990"></a>990</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-991"></a>991</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine the module containing the (first) definition of a generic
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-992"></a>992</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-993"></a>993</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-994"></a>994</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">parentmodule(f::Function) = parentmodule(typeof(f))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-995"></a>995</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-996"></a>996</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-997"></a>997</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    parentmodule(f::Function, types) -&gt; Module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-998"></a>998</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-999"></a>999</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine the module containing a given definition of a generic function.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1000"></a>1000</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1001"></a>1001</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function parentmodule(@nospecialize(f), @nospecialize(types))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1002"></a>1002</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    m = methods(f, types)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1003"></a>1003</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isempty(m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1004"></a>1004</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;no matching methods&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1005"></a>1005</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1006"></a>1006</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return first(m).module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1007"></a>1007</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1008"></a>1008</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1009"></a>1009</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1010"></a>1010</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    hasmethod(f, Tuple type; world = typemax(UInt)) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1011"></a>1011</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1012"></a>1012</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether the given generic function has a method matching the given
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1013"></a>1013</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`Tuple` of argument types with the upper bound of world age given by `world`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1014"></a>1014</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1015"></a>1015</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">See also [`applicable`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1016"></a>1016</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1017"></a>1017</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1018"></a>1018</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1019"></a>1019</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; hasmethod(length, Tuple{Array})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1020"></a>1020</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1021"></a>1021</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1022"></a>1022</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1023"></a>1023</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function hasmethod(@nospecialize(f), @nospecialize(t); world = typemax(UInt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1024"></a>1024</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = to_tuple_type(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1025"></a>1025</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = signature_type(f, t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1026"></a>1026</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ccall(:jl_method_exists, Cint, (Any, Any, UInt), typeof(f).name.mt, t, world) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1027"></a>1027</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1028"></a>1028</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1029"></a>1029</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1030"></a>1030</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isambiguous(m1, m2; ambiguous_bottom=false) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1031"></a>1031</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1032"></a>1032</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether two methods `m1` and `m2` (typically of the same
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1033"></a>1033</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function) are ambiguous.  This test is performed in the context of
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1034"></a>1034</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">other methods of the same function; in isolation, `m1` and `m2` might
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1035"></a>1035</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">be ambiguous, but if a third method resolving the ambiguity has been
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1036"></a>1036</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">defined, this returns `false`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1037"></a>1037</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1038"></a>1038</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">For parametric types, the `ambiguous_bottom` keyword argument controls whether
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1039"></a>1039</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`Union{}` counts as an ambiguous intersection of type parameters – when `true`,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1040"></a>1040</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">it is considered ambiguous, when `false` it is not.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1041"></a>1041</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1042"></a>1042</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1043"></a>1043</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1044"></a>1044</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; foo(x::Complex{&lt;:Integer}) = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1045"></a>1045</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">foo (generic function with 1 method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1046"></a>1046</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1047"></a>1047</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; foo(x::Complex{&lt;:Rational}) = 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1048"></a>1048</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">foo (generic function with 2 methods)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1049"></a>1049</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1050"></a>1050</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; m1, m2 = collect(methods(foo));
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1051"></a>1051</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1052"></a>1052</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; typeintersect(m1.sig, m2.sig)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1053"></a>1053</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Tuple{#foo,Complex{Union{}}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1054"></a>1054</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1055"></a>1055</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.isambiguous(m1, m2, ambiguous_bottom=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1056"></a>1056</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1057"></a>1057</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1058"></a>1058</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; Base.isambiguous(m1, m2, ambiguous_bottom=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1059"></a>1059</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1060"></a>1060</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1061"></a>1061</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1062"></a>1062</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isambiguous(m1::Method, m2::Method; ambiguous_bottom::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1063"></a>1063</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ti = typeintersect(m1.sig, m2.sig)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1064"></a>1064</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ti === Bottom &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1065"></a>1065</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !ambiguous_bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1066"></a>1066</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        has_bottom_parameter(ti) &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1067"></a>1067</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1068"></a>1068</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ml = _methods_by_ftype(ti, -1, typemax(UInt))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1069"></a>1069</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isempty(ml) &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1070"></a>1070</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for m in ml
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1071"></a>1071</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if ti &lt;: m[3].sig
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1072"></a>1072</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1073"></a>1073</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1074"></a>1074</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1075"></a>1075</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1076"></a>1076</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1077"></a>1077</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1078"></a>1078</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1079"></a>1079</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    delete_method(m::Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1080"></a>1080</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1081"></a>1081</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Make method `m` uncallable and force recompilation of any methods that use(d) it.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1082"></a>1082</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1083"></a>1083</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function delete_method(m::Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1084"></a>1084</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_method_table_disable, Cvoid, (Any, Any), get_methodtable(m), m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1085"></a>1085</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1086"></a>1086</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1087"></a>1087</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function get_methodtable(m::Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1088"></a>1088</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ft = ccall(:jl_first_argument_datatype, Any, (Any,), m.sig)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1089"></a>1089</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (ft::DataType).name.mt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1090"></a>1090</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1091"></a>1091</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1092"></a>1092</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1093"></a>1093</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    has_bottom_parameter(t) -&gt; Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1094"></a>1094</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1095"></a>1095</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Determine whether `t` is a Type for which one or more of its parameters is `Union{}`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1096"></a>1096</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1097"></a>1097</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function has_bottom_parameter(t::Type)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1098"></a>1098</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ret = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1099"></a>1099</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for p in t.parameters
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1100"></a>1100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ret |= (p == Bottom) || has_bottom_parameter(p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1101"></a>1101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1102"></a>1102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1103"></a>1103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1104"></a>1104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">has_bottom_parameter(t::UnionAll) = has_bottom_parameter(unwrap_unionall(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1105"></a>1105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">has_bottom_parameter(t::Union) = has_bottom_parameter(t.a) &amp; has_bottom_parameter(t.b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1106"></a>1106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">has_bottom_parameter(t::TypeVar) = t.ub == Bottom || has_bottom_parameter(t.ub)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1107"></a>1107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">has_bottom_parameter(::Any) = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1108"></a>1108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1109"></a>1109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">min_world(m::Method) = reinterpret(UInt, m.min_world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1110"></a>1110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">max_world(m::Method) = reinterpret(UInt, m.max_world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1111"></a>1111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">min_world(m::Core.MethodInstance) = reinterpret(UInt, m.min_world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1112"></a>1112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">max_world(m::Core.MethodInstance) = reinterpret(UInt, m.max_world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1113"></a>1113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1114"></a>1114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1115"></a>1115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    propertynames(x, private=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1116"></a>1116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1117"></a>1117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get a tuple or a vector of the properties (`x.property`) of an object `x`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1118"></a>1118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This is typically the same as [`fieldnames(typeof(x))`](@ref), but types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1119"></a>1119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">that overload [`getproperty`](@ref) should generally overload `propertynames`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1120"></a>1120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">as well to get the properties of an instance of the type.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1121"></a>1121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1122"></a>1122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">`propertynames(x)` may return only &quot;public&quot; property names that are part
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1123"></a>1123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">of the documented interface of `x`.   If you want it to also return &quot;private&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1124"></a>1124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">fieldnames intended for internal use, pass `true` for the optional second argument.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1125"></a>1125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">REPL tab completion on `x.` shows only the `private=false` properties.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1126"></a>1126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1127"></a>1127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">propertynames(x) = fieldnames(typeof(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1128"></a>1128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">propertynames(m::Module) = names(m)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lreflection-jl-e4829e64897104a61856-line.html-1129"></a>1129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">propertynames(x, private) = propertynames(x) # ignore private flag by default
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/statprofiler.css b/profiling/statprof/statprofiler.css
new file mode 100644
index 0000000000000000000000000000000000000000..bbc6d5149f394efd1c3f61b94a356021b3a3c563
--- /dev/null
+++ b/profiling/statprof/statprofiler.css
@@ -0,0 +1,79 @@
+.report-header {
+    height: 10ex;
+    background-color: #04b431;
+    background-color: #298a08;
+    padding: 1ex;
+    color: #ffffff;
+    margin-bottom: 2ex;
+}
+
+.report-header a {
+    color: #ffffff;
+    text-decoration: none;
+    font-size: 80%;
+}
+
+.report-link {
+}
+
+.report-title {
+    padding-top: 1ex;
+    padding-bottom: 1ex;
+    float: left;
+    font-size: 200%;
+}
+
+.generated-on {
+    padding-top: 5ex;
+    float: right;
+    text-align: right;
+}
+
+#body-content {
+    margin: 1ex;
+}
+
+body {
+    margin: 0px;
+    font-family: sans-serif;
+}
+
+table {
+    border-collapse: collapse;
+    /* border-spacing: 0px; */
+}
+
+table.sortable th:not(.sorttable_sorted):not(.sorttable_sorted_reverse):not(.sorttable_nosort):after {
+    content: " \25B4\25BE"
+}
+
+th {
+    border: solid 1px #c0c0c0;
+    padding-right: 0.5ex;
+    font-size: 80%;
+}
+
+td {
+    border: solid 1px #c0c0c0;
+    padding-left: 0.5ex;
+    padding-right: 0.5ex;
+}
+
+.call-sites {
+    font-family: monospace;
+    padding-left: 1.5em;
+    margin-bottom: 1em;
+    color: #707070;
+}
+
+.callees {
+    font-family: monospace;
+    padding-left: 1.5em;
+    margin-bottom: 1em;
+    color: #707070;
+}
+
+.code {
+    font-family: monospace;
+    white-space: pre;
+}
\ No newline at end of file
diff --git a/profiling/statprof/stream-jl-9a841f596a6f3ffbe5b9-line.html b/profiling/statprof/stream-jl-9a841f596a6f3ffbe5b9-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..0cddd49b052673fdc39c04ad0a78a9dd224af815
--- /dev/null
+++ b/profiling/statprof/stream-jl-9a841f596a6f3ffbe5b9-line.html
@@ -0,0 +1,11027 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./stream.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">import .Libc: RawFD, dup
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    import .Libc: WindowsRawSocket
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const OS_HANDLE = WindowsRawSocket
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const INVALID_OS_HANDLE = WindowsRawSocket(Ptr{Cvoid}(-1))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const OS_HANDLE = RawFD
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const INVALID_OS_HANDLE = RawFD(-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## types ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type IOServer end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type LibuvServer &lt;: IOServer end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">abstract type LibuvStream &lt;: IO end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># IO
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># +- GenericIOBuffer{T&lt;:AbstractArray{UInt8,1}} (not exported)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># +- AbstractPipe (not exported)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># .  +- Pipe
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># .  +- Process (not exported)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># .  +- ProcessChain (not exported)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># +- BufferStream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># +- DevNull (not exported)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># +- Filesystem.File
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># +- LibuvStream (not exported)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># .  +- PipeEndpoint (not exported)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># .  +- TCPSocket
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># .  +- TTY (not exported)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># .  +- UDPSocket
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># +- IOBuffer = Base.GenericIOBuffer{Array{UInt8,1}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># +- IOStream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># IOServer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># +- LibuvServer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># .  +- PipeServer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># .  +- TCPServer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Redirectable = Union{IO, FileRedirect, Libc.RawFD} (not exported)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function stream_wait(x, c...) # for x::LibuvObject
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    preserve_handle(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return wait(c...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unpreserve_handle(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">bytesavailable(s::LibuvStream) = bytesavailable(s.buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function eof(s::LibuvStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isopen(s) # fast path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bytesavailable(s) &gt; 0 &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return bytesavailable(s) &lt;= 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    wait_readnb(s,1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return !isopen(s) &amp;&amp; bytesavailable(s) &lt;= 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Limit our default maximum read and buffer size,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># to avoid DoS-ing ourself into an OOM situation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DEFAULT_READ_BUFFER_SZ = 10485760 # 10 MB
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># manually limit our write size, if the OS doesn&#39;t support full-size writes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const MAX_OS_WRITE = UInt(0x1FF0_0000) # 511 MB (determined semi-empirically, limited to 31 MB on XP)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    const MAX_OS_WRITE = UInt(typemax(Csize_t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const StatusUninit      = 0 # handle is allocated, but not initialized
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const StatusInit        = 1 # handle is valid, but not connected/active
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const StatusConnecting  = 2 # handle is in process of connecting
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const StatusOpen        = 3 # handle is usable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const StatusActive      = 4 # handle is listening for read/write/connect events
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const StatusClosing     = 5 # handle is closing / being closed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const StatusClosed      = 6 # handle is closed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const StatusEOF         = 7 # handle is a TTY that has seen an EOF event
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const StatusPaused      = 8 # handle is Active, but not consuming events, and will transition to Open if it receives an event
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_status_string(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = x.status
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if x.handle == C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if s == StatusClosed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return &quot;closed&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif s == StatusUninit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return &quot;null&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;invalid status&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif s == StatusUninit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;uninit&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif s == StatusInit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;init&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif s == StatusConnecting
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;connecting&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif s == StatusOpen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;open&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif s == StatusActive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;active&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif s == StatusPaused
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;paused&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif s == StatusClosing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;closing&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif s == StatusClosed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;closed&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif s == StatusEOF
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return &quot;eof&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return &quot;invalid status&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct PipeEndpoint &lt;: LibuvStream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    handle::Ptr{Cvoid}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    status::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buffer::IOBuffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readnotify::Condition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    connectnotify::Condition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    closenotify::Condition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sendbuf::Union{IOBuffer, Nothing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lock::ReentrantLock
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    throttle::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function PipeEndpoint(handle::Ptr{Cvoid}, status)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        p = new(handle,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                status,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                PipeBuffer(),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Condition(),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Condition(),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                Condition(),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                nothing,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ReentrantLock(),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                DEFAULT_READ_BUFFER_SZ)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        associate_julia_struct(handle, p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finalizer(uvfinalize, p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return p
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function PipeEndpoint()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pipe = PipeEndpoint(Libc.malloc(_sizeof_uv_named_pipe), StatusUninit)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    err = ccall(:uv_pipe_init, Cint, (Ptr{Cvoid}, Ptr{Cvoid}, Cint), eventloop(), pipe.handle, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv_error(&quot;failed to create pipe endpoint&quot;, err)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    pipe.status = StatusInit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return pipe
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct TTY &lt;: LibuvStream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    handle::Ptr{Cvoid}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    status::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buffer::IOBuffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readnotify::Condition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    closenotify::Condition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sendbuf::Union{IOBuffer, Nothing}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lock::ReentrantLock
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    throttle::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @static if Sys.iswindows(); ispty::Bool; end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function TTY(handle::Ptr{Cvoid}, status)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        tty = new(
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            handle,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            status,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            PipeBuffer(),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Condition(),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Condition(),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            nothing,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ReentrantLock(),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            DEFAULT_READ_BUFFER_SZ)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        associate_julia_struct(handle, tty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finalizer(uvfinalize, tty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @static if Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            tty.ispty = ccall(:jl_ispty, Cint, (Ptr{Cvoid},), handle) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return tty
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function TTY(fd::RawFD; readable::Bool = false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tty = TTY(Libc.malloc(_sizeof_uv_tty), StatusUninit)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # This needs to go after associate_julia_struct so that there
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # is no garbage in the -&gt;data field
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    err = ccall(:uv_tty_init, Int32, (Ptr{Cvoid}, Ptr{Cvoid}, RawFD, Int32),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        eventloop(), tty.handle, fd, readable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv_error(&quot;TTY&quot;, err)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    tty.status = StatusOpen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return tty
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(io::IO, stream::LibuvServer) = print(io, typeof(stream), &quot;(&quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _fd(stream), &quot; &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv_status_string(stream), &quot;)&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(io::IO, stream::LibuvStream) = print(io, typeof(stream), &quot;(&quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _fd(stream), &quot; &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv_status_string(stream), &quot;, &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bytesavailable(stream.buffer), &quot; bytes waiting)&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Shared LibuvStream object interface
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isreadable(io::LibuvStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bytesavailable(io) &gt; 0 &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isopen(io) || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ccall(:uv_is_readable, Cint, (Ptr{Cvoid},), io.handle) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function iswritable(io::LibuvStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isopen(io) || return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    io.status == StatusClosing &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ccall(:uv_is_writable, Cint, (Ptr{Cvoid},), io.handle) != 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">lock(s::LibuvStream) = lock(s.lock)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unlock(s::LibuvStream) = unlock(s.lock)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">rawhandle(stream::LibuvStream) = stream.handle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_convert(::Type{Ptr{Cvoid}}, s::Union{LibuvStream, LibuvServer}) = s.handle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function init_stdio(handle::Ptr{Cvoid})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    t = ccall(:jl_uv_handle_type, Int32, (Ptr{Cvoid},), handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if t == UV_FILE
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        fd = ccall(:jl_uv_file_handle, OS_HANDLE, (Ptr{Cvoid},), handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # TODO: Replace ios.c file with libuv fs?
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # return File(fd)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @static if Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # TODO: Get ios.c to understand native handles
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            fd = ccall(:_open_osfhandle, RawFD, (WindowsRawSocket, Int32), fd, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # TODO: Get fdio to work natively with file descriptors instead of integers
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return fdio(cconvert(Cint, fd))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif t == UV_TTY
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return TTY(handle, StatusOpen)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif t == UV_TCP
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        Sockets = require(PkgId(UUID((0x6462fe0b_24de_5631, 0x8697_dd941f90decc)), &quot;Sockets&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Sockets.TCPSocket(handle, StatusOpen)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif t == UV_NAMED_PIPE
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return PipeEndpoint(handle, StatusOpen)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;invalid stdio type: $t&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function isopen(x::Union{LibuvStream, LibuvServer})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if x.status == StatusUninit || x.status == StatusInit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;$x is not initialized&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    x.status != StatusClosed &amp;&amp; x.status != StatusEOF
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function check_open(x::Union{LibuvStream, LibuvServer})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !isopen(x) || x.status == StatusClosing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        throw(ArgumentError(&quot;stream is closed or unusable&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait_connected(x::Union{LibuvStream, LibuvServer})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    check_open(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while x.status == StatusConnecting
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stream_wait(x, x.connectnotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        check_open(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait_readbyte(x::LibuvStream, c::UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isopen(x) # fast path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        occursin(c, x.buffer) &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    preserve_handle(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while isopen(x) &amp;&amp; !occursin(c, x.buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            start_reading(x) # ensure we are reading
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            wait(x.readnotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isempty(x.readnotify.waitq)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stop_reading(x) # stop reading iff there are currently no other read clients of the stream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unpreserve_handle(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait_readnb(x::LibuvStream, nb::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isopen(x) # fast path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        bytesavailable(x.buffer) &gt;= nb &amp;&amp; return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    oldthrottle = x.throttle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    preserve_handle(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while isopen(x) &amp;&amp; bytesavailable(x.buffer) &lt; nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            x.throttle = max(nb, x.throttle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            start_reading(x) # ensure we are reading
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            wait(x.readnotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isempty(x.readnotify.waitq)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stop_reading(x) # stop reading iff there are currently no other read clients of the stream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if oldthrottle &lt;= x.throttle &lt;= nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            x.throttle = oldthrottle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unpreserve_handle(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait_close(x::Union{LibuvStream, LibuvServer})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isopen(x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stream_wait(x, x.closenotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function close(stream::Union{LibuvStream, LibuvServer})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if stream.status == StatusInit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:jl_forceclose_uv, Cvoid, (Ptr{Cvoid},), stream.handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif isopen(stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if stream.status != StatusClosing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ccall(:jl_close_uv, Cvoid, (Ptr{Cvoid},), stream.handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stream.status = StatusClosing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if uv_handle_data(stream) != C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stream_wait(stream, stream.closenotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uvfinalize(uv::Union{LibuvStream, LibuvServer})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if uv.handle != C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        disassociate_julia_struct(uv.handle) # not going to call the usual close hooks
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if uv.status != StatusUninit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            close(uv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Libc.free(uv.handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uv.status = StatusClosed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uv.handle = C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ispty(s::TTY) = s.ispty
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ispty(s::IO) = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    displaysize([io::IO]) -&gt; (lines, columns)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Return the nominal size of the screen that may be used for rendering output to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">this `IO` object.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If no input is provided, the environment variables `LINES` and `COLUMNS` are read.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If those are not set, a default size of `(24, 80)` is returned.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; withenv(&quot;LINES&quot; =&gt; 30, &quot;COLUMNS&quot; =&gt; 100) do
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           displaysize()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">       end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(30, 100)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">To get your TTY size,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```julia
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; displaysize(stdout)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(34, 147)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">displaysize(io::IO) = displaysize()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">displaysize() = (parse(Int, get(ENV, &quot;LINES&quot;,   &quot;24&quot;)),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                 parse(Int, get(ENV, &quot;COLUMNS&quot;, &quot;80&quot;)))::Tuple{Int, Int}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function displaysize(io::TTY)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    local h::Int, w::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    default_size = displaysize()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @static if Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if ispty(io)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # io is actually a libuv pipe but a cygwin/msys2 pty
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                h, w = parse.(Int, split(read(open(Base.Cmd(String[&quot;stty&quot;, &quot;size&quot;]), &quot;r&quot;, io).out, String)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                h &gt; 0 || (h = default_size[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                w &gt; 0 || (w = default_size[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return h, w
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            catch
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return default_size
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s1 = Ref{Int32}(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s2 = Ref{Int32}(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.uv_error(&quot;size (TTY)&quot;, ccall(:uv_tty_get_winsize,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      Int32, (Ptr{Cvoid}, Ptr{Int32}, Ptr{Int32}),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                                      io, s1, s2) != 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    w, h = s1[], s2[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    h &gt; 0 || (h = default_size[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    w &gt; 0 || (w = default_size[2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return h, w
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">in(key_value::Pair{Symbol,Bool}, ::TTY) = key_value.first === :color &amp;&amp; key_value.second === have_color
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">haskey(::TTY, key::Symbol) = key === :color
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getindex(::TTY, key::Symbol) = key === :color ? have_color : throw(KeyError(key))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">get(::TTY, key::Symbol, default) = key === :color ? have_color : default
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">### Libuv callbacks ###
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## BUFFER ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Allocate space in buffer (for immediate use)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function alloc_request(buffer::IOBuffer, recommended_size::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ensureroom(buffer, Int(recommended_size))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ptr = buffer.append ? buffer.size + 1 : buffer.ptr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nb = length(buffer.data) - ptr + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (pointer(buffer.data, ptr), nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">notify_filled(buffer::IOBuffer, nread::Int, base::Ptr{Cvoid}, len::UInt) = notify_filled(buffer, nread)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function notify_filled(buffer::IOBuffer, nread::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if buffer.append
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        buffer.size += nread
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        buffer.ptr += nread
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function alloc_buf_hook(stream::LibuvStream, size::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    throttle = UInt(stream.throttle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return alloc_request(stream.buffer, (size &gt; throttle) ? throttle : size)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_alloc_buf(handle::Ptr{Cvoid}, size::Csize_t, buf::Ptr{Cvoid})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    hd = uv_handle_data(handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if hd == C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:jl_uv_buf_set_len, Cvoid, (Ptr{Cvoid}, Csize_t), buf, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stream = unsafe_pointer_to_objref(hd)::LibuvStream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    local data::Ptr{Cvoid}, newsize::Csize_t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if stream.status != StatusActive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        data = C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        newsize = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (data, newsize) = alloc_buf_hook(stream, UInt(size))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if data == C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            newsize = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # avoid aliasing of `nread` with `errno` in uv_readcb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # or exceeding the Win32 maximum uv_buf_t len
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        maxsize = @static Sys.iswindows() ? typemax(Cint) : typemax(Cssize_t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        newsize &gt; maxsize &amp;&amp; (newsize = maxsize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_uv_buf_set_base, Cvoid, (Ptr{Cvoid}, Ptr{Cvoid}), buf, data)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_uv_buf_set_len, Cvoid, (Ptr{Cvoid}, Csize_t), buf, newsize)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_readcb(handle::Ptr{Cvoid}, nread::Cssize_t, buf::Ptr{Cvoid})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stream_unknown_type = @handle_as handle LibuvStream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nrequested = ccall(:jl_uv_buf_len, Csize_t, (Ptr{Cvoid},), buf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function readcb_specialized(stream::LibuvStream, nread::Int, nrequested::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if nread &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if nread == UV_ENOBUFS &amp;&amp; nrequested == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # remind the client that stream.buffer is full
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                notify(stream.readnotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif nread == UV_EOF
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(stream, TTY)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    stream.status = StatusEOF # libuv called uv_stop_reading already
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    notify(stream.readnotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    notify(stream.closenotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif stream.status != StatusClosing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # begin shutdown of the stream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    ccall(:jl_close_uv, Cvoid, (Ptr{Cvoid},), stream.handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    stream.status = StatusClosing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # This is a fatal connection error. Shutdown requests as per the usual
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # close function won&#39;t work and libuv will fail with an assertion failure
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ccall(:jl_forceclose_uv, Cvoid, (Ptr{Cvoid},), stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                notify_error(stream.readnotify, _UVError(&quot;read&quot;, nread))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            notify_filled(stream.buffer, nread)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            notify(stream.readnotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # Stop background reading when
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # 1) there&#39;s nobody paying attention to the data we are reading
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # 2) we have accumulated a lot of unread data OR
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # 3) we have an alternate buffer that has reached its limit.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if stream.status == StatusPaused ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">           (stream.status == StatusActive &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ((bytesavailable(stream.buffer) &gt;= stream.throttle) ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">             (bytesavailable(stream.buffer) &gt;= stream.buffer.maxsize)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # save cycles by stopping kernel notifications from arriving
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ccall(:uv_read_stop, Cint, (Ptr{Cvoid},), stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stream.status = StatusOpen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    readcb_specialized(stream_unknown_type, Int(nread), UInt(nrequested))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function reseteof(x::TTY)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if x.status == StatusEOF
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x.status = StatusOpen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _uv_hook_close(uv::Union{LibuvStream, LibuvServer})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv.handle = C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv.status = StatusClosed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # notify any listeners that exist on this libuv stream type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    notify(uv.closenotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isdefined(uv, :readnotify) &amp;&amp; notify(uv.readnotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isdefined(uv, :connectnotify) &amp;&amp; notify(uv.connectnotify)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">##########################################
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Pipe Abstraction
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#  (composed of two half-pipes: .in and .out)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">##########################################
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct Pipe &lt;: AbstractPipe
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    in::PipeEndpoint # writable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    out::PipeEndpoint # readable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Construct an uninitialized Pipe object.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">The appropriate end of the pipe will be automatically initialized if
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the object is used in process spawning. This can be useful to easily
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">obtain references in process pipelines, e.g.:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; err = Pipe()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># After this `err` will be initialized and you may read `foo`&#39;s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># stderr from the `err` pipe.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; run(pipeline(pipeline(`foo`, stderr=err), `cat`), wait=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Pipe() = Pipe(PipeEndpoint(), PipeEndpoint())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">pipe_reader(p::Pipe) = p.out
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">pipe_writer(p::Pipe) = p.in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function link_pipe!(pipe::Pipe;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    reader_supports_async = false,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    writer_supports_async = false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">     link_pipe!(pipe.out, reader_supports_async, pipe.in, writer_supports_async)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">     return pipe
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(io::IO, stream::Pipe) = print(io,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    &quot;Pipe(&quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _fd(stream.in), &quot; &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv_status_string(stream.in), &quot; =&gt; &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _fd(stream.out), &quot; &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv_status_string(stream.out), &quot;, &quot;,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    bytesavailable(stream), &quot; bytes waiting)&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-574"></a>574</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Functions for PipeEndpoint and PipeServer ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function open_pipe!(p::PipeEndpoint, handle::OS_HANDLE, readable::Bool, writable::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if p.status != StatusInit
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;pipe is already in use or has been closed&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    err = ccall(:jl_pipe_open, Int32, (Ptr{Cvoid}, OS_HANDLE, Cint, Cint), p.handle, handle, readable, writable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv_error(&quot;open_pipe&quot;, err)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p.status = StatusOpen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return p
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function link_pipe!(read_end::PipeEndpoint, reader_supports_async::Bool,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    write_end::PipeEndpoint, writer_supports_async::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rd, wr = link_pipe(reader_supports_async, writer_supports_async)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            open_pipe!(read_end, rd, true, false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        catch e
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            close_pipe_sync(rd)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rethrow(e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        read_end.status = StatusOpen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        open_pipe!(write_end, wr, false, true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    catch e
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        close_pipe_sync(wr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-603"></a>603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rethrow(e)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    write_end.status = StatusOpen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function link_pipe(reader_supports_async::Bool, writer_supports_async::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    UV_NONBLOCK_PIPE = 0x40
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-611"></a>611</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fildes = Ref{Pair{OS_HANDLE, OS_HANDLE}}(INVALID_OS_HANDLE =&gt; INVALID_OS_HANDLE) # read (in) =&gt; write (out)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    err = ccall(:uv_pipe, Int32, (Ptr{Pair{OS_HANDLE, OS_HANDLE}}, Cint, Cint),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                fildes,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                reader_supports_async * UV_NONBLOCK_PIPE,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                writer_supports_async * UV_NONBLOCK_PIPE)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv_error(&quot;pipe&quot;, err)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return fildes[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function close_pipe_sync(handle::WindowsRawSocket)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:CloseHandle, stdcall, Cint, (WindowsRawSocket,), handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function close_pipe_sync(handle::RawFD)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:close, Cint, (RawFD,), handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Functions for any LibuvStream ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># flow control
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function start_reading(stream::LibuvStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if stream.status == StatusOpen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isreadable(stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            error(&quot;tried to read a stream that is not readable&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # libuv may call the alloc callback immediately
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # for a TTY on Windows, so ensure the status is set first
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stream.status = StatusActive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ret = ccall(:uv_read_start, Cint, (Ptr{Cvoid}, Ptr{Cvoid}, Ptr{Cvoid}),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    stream, uv_jl_alloc_buf::Ptr{Cvoid}, uv_jl_readcb::Ptr{Cvoid})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif stream.status == StatusPaused
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-648"></a>648</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        stream.status = StatusActive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-649"></a>649</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Int32(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-650"></a>650</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif stream.status == StatusActive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-651"></a>651</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Int32(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-652"></a>652</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-653"></a>653</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Int32(-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-654"></a>654</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-655"></a>655</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-656"></a>656</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-657"></a>657</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-658"></a>658</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # the low performance version of stop_reading is required
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-659"></a>659</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # on Windows due to a NT kernel bug that we can&#39;t use a blocking
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-660"></a>660</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # stream for non-blocking (overlapped) calls,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-661"></a>661</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # and a ReadFile call blocking on one thread
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-662"></a>662</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # causes all other operations on that stream to lockup
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-663"></a>663</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function stop_reading(stream::LibuvStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-664"></a>664</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if stream.status == StatusActive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-665"></a>665</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stream.status = StatusOpen
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-666"></a>666</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ccall(:uv_read_stop, Cint, (Ptr{Cvoid},), stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-667"></a>667</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-668"></a>668</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-669"></a>669</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-670"></a>670</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-671"></a>671</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function stop_reading(stream::LibuvStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-672"></a>672</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if stream.status == StatusActive
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-673"></a>673</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stream.status = StatusPaused
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-674"></a>674</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-675"></a>675</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-676"></a>676</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-677"></a>677</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-678"></a>678</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-679"></a>679</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># bulk read / write
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-680"></a>680</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-681"></a>681</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">readbytes!(s::LibuvStream, a::Vector{UInt8}, nb = length(a)) = readbytes!(s, a, Int(nb))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-682"></a>682</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readbytes!(s::LibuvStream, a::Vector{UInt8}, nb::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-683"></a>683</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sbuf = s.buffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-684"></a>684</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert sbuf.seekable == false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-685"></a>685</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert sbuf.maxsize &gt;= nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-686"></a>686</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-687"></a>687</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if bytesavailable(sbuf) &gt;= nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-688"></a>688</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return readbytes!(sbuf, a, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-689"></a>689</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-690"></a>690</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-691"></a>691</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if nb &lt;= SZ_UNBUFFERED_IO # Under this limit we are OK with copying the array from the stream&#39;s buffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-692"></a>692</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        wait_readnb(s, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-693"></a>693</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return readbytes!(sbuf, a, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-694"></a>694</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-695"></a>695</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-696"></a>696</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stop_reading(s) # Just playing it safe, since we are going to switch buffers.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-697"></a>697</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            newbuf = PipeBuffer(a, maxsize = nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-698"></a>698</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            newbuf.size = 0 # reset the write pointer to the beginning
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-699"></a>699</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            s.buffer = newbuf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-700"></a>700</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            write(newbuf, sbuf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-701"></a>701</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            wait_readnb(s, Int(nb))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-702"></a>702</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            compact(newbuf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-703"></a>703</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return bytesavailable(newbuf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-704"></a>704</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-705"></a>705</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            s.buffer = sbuf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-706"></a>706</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !isempty(s.readnotify.waitq)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-707"></a>707</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                start_reading(s) # resume reading iff there are currently other read clients of the stream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-708"></a>708</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-709"></a>709</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-710"></a>710</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-711"></a>711</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert false # unreachable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-712"></a>712</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-713"></a>713</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-714"></a>714</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read(stream::LibuvStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-715"></a>715</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    wait_readnb(stream, typemax(Int))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-716"></a>716</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return take!(stream.buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-717"></a>717</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-718"></a>718</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-719"></a>719</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unsafe_read(s::LibuvStream, p::Ptr{UInt8}, nb::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-720"></a>720</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    sbuf = s.buffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-721"></a>721</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert sbuf.seekable == false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-722"></a>722</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert sbuf.maxsize &gt;= nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-723"></a>723</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-724"></a>724</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if bytesavailable(sbuf) &gt;= nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-725"></a>725</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return unsafe_read(sbuf, p, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-726"></a>726</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-727"></a>727</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-728"></a>728</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if nb &lt;= SZ_UNBUFFERED_IO # Under this limit we are OK with copying the array from the stream&#39;s buffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-729"></a>729</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        wait_readnb(s, Int(nb))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-730"></a>730</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_read(sbuf, p, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-731"></a>731</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-732"></a>732</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-733"></a>733</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            stop_reading(s) # Just playing it safe, since we are going to switch buffers.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-734"></a>734</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            newbuf = PipeBuffer(unsafe_wrap(Array, p, nb), maxsize = Int(nb))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-735"></a>735</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            newbuf.size = 0 # reset the write pointer to the beginning
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-736"></a>736</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            s.buffer = newbuf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-737"></a>737</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            write(newbuf, sbuf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-738"></a>738</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            wait_readnb(s, Int(nb))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-739"></a>739</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            nb == bytesavailable(newbuf) || throw(EOFError())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-740"></a>740</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-741"></a>741</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            s.buffer = sbuf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-742"></a>742</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !isempty(s.readnotify.waitq)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-743"></a>743</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                start_reading(s) # resume reading iff there are currently other read clients of the stream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-744"></a>744</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-745"></a>745</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-746"></a>746</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-747"></a>747</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-748"></a>748</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-749"></a>749</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-750"></a>750</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function read(this::LibuvStream, ::Type{UInt8})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-751"></a>751</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    wait_readnb(this, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-752"></a>752</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buf = this.buffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-753"></a>753</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert buf.seekable == false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-754"></a>754</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return read(buf, UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-755"></a>755</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-756"></a>756</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-757"></a>757</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readavailable(this::LibuvStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-758"></a>758</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    wait_readnb(this, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-759"></a>759</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buf = this.buffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-760"></a>760</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert buf.seekable == false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-761"></a>761</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return take!(buf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-762"></a>762</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-763"></a>763</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-764"></a>764</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function readuntil(this::LibuvStream, c::UInt8; keep::Bool=false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-765"></a>765</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    wait_readbyte(this, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-766"></a>766</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buf = this.buffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-767"></a>767</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @assert buf.seekable == false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-768"></a>768</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return readuntil(buf, c, keep=keep)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-769"></a>769</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-770"></a>770</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-771"></a>771</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uv_write(s::LibuvStream, p::Vector{UInt8}) = uv_write(s, pointer(p), UInt(sizeof(p)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-772"></a>772</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-773"></a>773</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-stream-jl-uv_write-773"></a>
+              3 (7.14%) samples spent in uv_write<br />
+              0 (ex.),
+              3 (100.00%) (incl.)
+              when called from
+              unsafe_write
+              <a href="stream-jl-9a841f596a6f3ffbe5b9-line.html#Lstream-jl-9a841f596a6f3ffbe5b9-line.html-830">line 830</a><br />
+            </div>
+            <span class="code">function uv_write(s::LibuvStream, p::Ptr{UInt8}, n::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-774"></a>774</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uvw = uv_write_async(s, p, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-775"></a>775</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ct = current_task()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-776"></a>776</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    preserve_handle(ct)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-777"></a>777</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-778"></a>778</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # wait for the last chunk to complete (or error)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-779"></a>779</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # assume that any errors would be sticky,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-780"></a>780</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # (so we don&#39;t need to monitor the error status of the intermediate writes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-781"></a>781</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uv_req_set_data(uvw, ct)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-782"></a>782</td>
+          <td></td>
+          <td>3 (7.14%)</td>
+          <td>
+            <div class="callees">
+              3 (100.00%)
+              samples spent calling
+              <a href="event-jl-9f2b370029d9fd3c8bef-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-event-jl-wait-243">wait</a><br />
+            </div>
+            <span class="code">        wait()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-783"></a>783</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-784"></a>784</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if uv_req_data(uvw) != C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-785"></a>785</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # uvw is still alive,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-786"></a>786</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # so make sure we won&#39;t get spurious notifications later
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-787"></a>787</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            uv_req_set_data(uvw, C_NULL)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-788"></a>788</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-789"></a>789</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # done with uvw
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-790"></a>790</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Libc.free(uvw)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-791"></a>791</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-792"></a>792</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unpreserve_handle(ct)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-793"></a>793</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-794"></a>794</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return Int(n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-795"></a>795</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-796"></a>796</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-797"></a>797</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># helper function for uv_write that returns the uv_write_t struct for the write
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-798"></a>798</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># rather than waiting on it
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-799"></a>799</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_write_async(s::LibuvStream, p::Ptr{UInt8}, n::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-800"></a>800</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    check_open(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-801"></a>801</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-802"></a>802</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uvw = Libc.malloc(_sizeof_uv_write)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-803"></a>803</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uv_req_set_data(uvw, C_NULL) # in case we get interrupted before arriving at the wait call
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-804"></a>804</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nwrite = min(n, MAX_OS_WRITE) # split up the write into chunks the OS can handle.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-805"></a>805</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # TODO: use writev, when that is added to uv-win
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-806"></a>806</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        err = ccall(:jl_uv_write,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-807"></a>807</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    Int32,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-808"></a>808</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    (Ptr{Cvoid}, Ptr{Cvoid}, UInt, Ptr{Cvoid}, Ptr{Cvoid}),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-809"></a>809</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    s, p, nwrite, uvw,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-810"></a>810</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    uv_jl_writecb_task::Ptr{Cvoid})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-811"></a>811</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if err &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-812"></a>812</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            Libc.free(uvw)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-813"></a>813</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            uv_error(&quot;write&quot;, err)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-814"></a>814</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-815"></a>815</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        n -= nwrite
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-816"></a>816</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        p += nwrite
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-817"></a>817</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if n == 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-818"></a>818</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return uvw
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-819"></a>819</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-820"></a>820</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-821"></a>821</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-822"></a>822</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-823"></a>823</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-824"></a>824</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Optimized send
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-825"></a>825</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># - smaller writes are buffered, final uv write on flush or when buffer full
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-826"></a>826</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># - large isbits arrays are unbuffered and written directly
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-827"></a>827</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-828"></a>828</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-stream-jl-unsafe_write-828"></a>
+              3 (7.14%) samples spent in unsafe_write<br />
+              0 (ex.),
+              3 (100.00%) (incl.)
+              when called from
+              print
+              <a href="gcutils-jl-226c838c61f0891410cd-line.html#Lgcutils-jl-226c838c61f0891410cd-line.html-87">line 87</a><br />
+            </div>
+            <span class="code">function unsafe_write(s::LibuvStream, p::Ptr{UInt8}, n::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-829"></a>829</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if s.sendbuf === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-830"></a>830</td>
+          <td></td>
+          <td>3 (7.14%)</td>
+          <td>
+            <div class="callees">
+              3 (100.00%)
+              samples spent calling
+              <a href="stream-jl-9a841f596a6f3ffbe5b9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-stream-jl-uv_write-773">uv_write</a><br />
+            </div>
+            <span class="code">        return uv_write(s, p, UInt(n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-831"></a>831</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-832"></a>832</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-833"></a>833</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buf = s.sendbuf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-834"></a>834</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    totb = bytesavailable(buf) + n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-835"></a>835</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if totb &lt; buf.maxsize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-836"></a>836</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        nb = unsafe_write(buf, p, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-837"></a>837</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-838"></a>838</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        flush(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-839"></a>839</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if n &gt; buf.maxsize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-840"></a>840</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            nb = uv_write(s, p, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-841"></a>841</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-842"></a>842</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            nb = unsafe_write(buf, p, n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-843"></a>843</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-844"></a>844</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-845"></a>845</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-846"></a>846</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-847"></a>847</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-848"></a>848</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function flush(s::LibuvStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-849"></a>849</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buf = s.sendbuf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-850"></a>850</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if buf !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-851"></a>851</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if bytesavailable(buf) &gt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-852"></a>852</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            arr = take!(buf)        # Array of UInt8s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-853"></a>853</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            uv_write(s, arr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-854"></a>854</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-855"></a>855</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-856"></a>856</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-857"></a>857</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uv_write(s, Ptr{UInt8}(Base.eventloop()), UInt(0)) # zero write from a random pointer to flush current queue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-858"></a>858</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-859"></a>859</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-860"></a>860</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-861"></a>861</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">buffer_writes(s::LibuvStream, bufsize) = (s.sendbuf=PipeBuffer(bufsize); s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-862"></a>862</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-863"></a>863</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## low-level calls to libuv ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-864"></a>864</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-865"></a>865</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function write(s::LibuvStream, b::UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-866"></a>866</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buf = s.sendbuf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-867"></a>867</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if buf !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-868"></a>868</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if bytesavailable(buf) + 1 &lt; buf.maxsize
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-869"></a>869</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return write(buf, b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-870"></a>870</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-871"></a>871</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-872"></a>872</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return write(s, Ref{UInt8}(b))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-873"></a>873</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-874"></a>874</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-875"></a>875</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function uv_writecb_task(req::Ptr{Cvoid}, status::Cint)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-876"></a>876</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    d = uv_req_data(req)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-877"></a>877</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if d != C_NULL
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-878"></a>878</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uv_req_set_data(req, C_NULL) # let the Task know we got the writecb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-879"></a>879</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        t = unsafe_pointer_to_objref(d)::Task
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-880"></a>880</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if status &lt; 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-881"></a>881</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            err = _UVError(&quot;write&quot;, status)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-882"></a>882</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            schedule(t, err, error=true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-883"></a>883</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-884"></a>884</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            schedule(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-885"></a>885</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-886"></a>886</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-887"></a>887</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # no owner for this req, safe to just free it
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-888"></a>888</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        Libc.free(req)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-889"></a>889</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-890"></a>890</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-891"></a>891</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-892"></a>892</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-893"></a>893</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">_fd(x::IOStream) = RawFD(fd(x))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-894"></a>894</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-895"></a>895</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _fd(x::Union{LibuvStream, LibuvServer})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-896"></a>896</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    fd = Ref{OS_HANDLE}(INVALID_OS_HANDLE)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-897"></a>897</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if x.status != StatusUninit &amp;&amp; x.status != StatusClosed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-898"></a>898</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        err = ccall(:uv_fileno, Int32, (Ptr{Cvoid}, Ptr{OS_HANDLE}), x.handle, fd)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-899"></a>899</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # handle errors by returning INVALID_OS_HANDLE
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-900"></a>900</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-901"></a>901</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return fd[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-902"></a>902</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-903"></a>903</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-904"></a>904</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for (x, writable, unix_fd, c_symbol) in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-905"></a>905</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ((:stdin, false, 0, :jl_uv_stdin),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-906"></a>906</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">         (:stdout, true, 1, :jl_uv_stdout),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-907"></a>907</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">         (:stderr, true, 2, :jl_uv_stderr))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-908"></a>908</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    f = Symbol(&quot;redirect_&quot;, lowercase(string(x)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-909"></a>909</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    _f = Symbol(&quot;_&quot;, f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-910"></a>910</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @eval begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-911"></a>911</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        function ($_f)(stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-912"></a>912</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            global $x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-913"></a>913</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            posix_fd = _fd(stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-914"></a>914</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @static if Sys.iswindows()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-915"></a>915</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                ccall(:SetStdHandle, stdcall, Int32, (Int32, OS_HANDLE),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-916"></a>916</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    $(-10 - unix_fd), Libc._get_osfhandle(posix_fd))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-917"></a>917</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-918"></a>918</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            dup(posix_fd, RawFD($unix_fd))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-919"></a>919</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            $x = stream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-920"></a>920</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-921"></a>921</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-922"></a>922</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        function ($f)(handle::Union{LibuvStream, IOStream})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-923"></a>923</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            $(_f)(handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-924"></a>924</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            unsafe_store!(cglobal($(Expr(:quote, c_symbol)), Ptr{Cvoid}),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-925"></a>925</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                handle.handle)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-926"></a>926</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return handle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-927"></a>927</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-928"></a>928</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        function ($f)()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-929"></a>929</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            p = link_pipe!(Pipe())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-930"></a>930</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            read, write = p.out, p.in
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-931"></a>931</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ($f)($(writable ? :write : :read))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-932"></a>932</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return (read, write)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-933"></a>933</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-934"></a>934</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-935"></a>935</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-936"></a>936</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-937"></a>937</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-938"></a>938</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    redirect_stdout([stream]) -&gt; (rd, wr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-939"></a>939</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-940"></a>940</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a pipe to which all C and Julia level [`stdout`](@ref) output
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-941"></a>941</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">will be redirected.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-942"></a>942</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Returns a tuple `(rd, wr)` representing the pipe ends.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-943"></a>943</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Data written to [`stdout`](@ref) may now be read from the `rd` end of
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-944"></a>944</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">the pipe. The `wr` end is given for convenience in case the old
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-945"></a>945</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`stdout`](@ref) object was cached by the user and needs to be replaced
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-946"></a>946</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">elsewhere.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-947"></a>947</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-948"></a>948</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">If called with the optional `stream` argument, then returns `stream` itself.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-949"></a>949</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-950"></a>950</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! note
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-951"></a>951</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    `stream` must be a `TTY`, a `Pipe`, or a socket.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-952"></a>952</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-953"></a>953</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">redirect_stdout
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-954"></a>954</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-955"></a>955</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-956"></a>956</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    redirect_stderr([stream]) -&gt; (rd, wr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-957"></a>957</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-958"></a>958</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Like [`redirect_stdout`](@ref), but for [`stderr`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-959"></a>959</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-960"></a>960</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! note
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-961"></a>961</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    `stream` must be a `TTY`, a `Pipe`, or a socket.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-962"></a>962</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-963"></a>963</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">redirect_stderr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-964"></a>964</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-965"></a>965</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-966"></a>966</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    redirect_stdin([stream]) -&gt; (rd, wr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-967"></a>967</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-968"></a>968</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Like [`redirect_stdout`](@ref), but for [`stdin`](@ref).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-969"></a>969</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Note that the order of the return tuple is still `(rd, wr)`,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-970"></a>970</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">i.e. data to be read from [`stdin`](@ref) may be written to `wr`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-971"></a>971</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-972"></a>972</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! note
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-973"></a>973</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    `stream` must be a `TTY`, a `Pipe`, or a socket.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-974"></a>974</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-975"></a>975</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">redirect_stdin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-976"></a>976</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-977"></a>977</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for (F,S) in ((:redirect_stdin, :stdin), (:redirect_stdout, :stdout), (:redirect_stderr, :stderr))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-978"></a>978</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @eval function $F(f::Function, stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-979"></a>979</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        STDOLD = $S
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-980"></a>980</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        local ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-981"></a>981</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        $F(stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-982"></a>982</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        try
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-983"></a>983</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ret = f()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-984"></a>984</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-985"></a>985</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            $F(STDOLD)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-986"></a>986</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-987"></a>987</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-988"></a>988</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-989"></a>989</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-990"></a>990</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-991"></a>991</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-992"></a>992</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    redirect_stdout(f::Function, stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-993"></a>993</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-994"></a>994</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Run the function `f` while redirecting [`stdout`](@ref) to `stream`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-995"></a>995</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Upon completion, [`stdout`](@ref) is restored to its prior setting.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-996"></a>996</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-997"></a>997</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! note
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-998"></a>998</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    `stream` must be a `TTY`, a `Pipe`, or a socket.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-999"></a>999</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1000"></a>1000</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">redirect_stdout(f::Function, stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1001"></a>1001</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1002"></a>1002</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1003"></a>1003</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    redirect_stderr(f::Function, stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1004"></a>1004</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1005"></a>1005</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Run the function `f` while redirecting [`stderr`](@ref) to `stream`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1006"></a>1006</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Upon completion, [`stderr`](@ref) is restored to its prior setting.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1007"></a>1007</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1008"></a>1008</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! note
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1009"></a>1009</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    `stream` must be a `TTY`, a `Pipe`, or a socket.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1010"></a>1010</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1011"></a>1011</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">redirect_stderr(f::Function, stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1012"></a>1012</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1013"></a>1013</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1014"></a>1014</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    redirect_stdin(f::Function, stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1015"></a>1015</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1016"></a>1016</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Run the function `f` while redirecting [`stdin`](@ref) to `stream`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1017"></a>1017</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Upon completion, [`stdin`](@ref) is restored to its prior setting.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1018"></a>1018</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1019"></a>1019</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">!!! note
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1020"></a>1020</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    `stream` must be a `TTY`, a `Pipe`, or a socket.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1021"></a>1021</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1022"></a>1022</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">redirect_stdin(f::Function, stream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1023"></a>1023</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1024"></a>1024</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mark(x::LibuvStream)     = mark(x.buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1025"></a>1025</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unmark(x::LibuvStream)   = unmark(x.buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1026"></a>1026</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">reset(x::LibuvStream)    = reset(x.buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1027"></a>1027</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ismarked(x::LibuvStream) = ismarked(x.buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1028"></a>1028</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1029"></a>1029</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function peek(s::LibuvStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1030"></a>1030</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    mark(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1031"></a>1031</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    try read(s, UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1032"></a>1032</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    finally
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1033"></a>1033</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        reset(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1034"></a>1034</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1035"></a>1035</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1036"></a>1036</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1037"></a>1037</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># BufferStream&#39;s are non-OS streams, backed by a regular IOBuffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1038"></a>1038</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">mutable struct BufferStream &lt;: LibuvStream
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1039"></a>1039</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buffer::IOBuffer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1040"></a>1040</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    r_c::Condition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1041"></a>1041</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    close_c::Condition
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1042"></a>1042</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    is_open::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1043"></a>1043</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    buffer_writes::Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1044"></a>1044</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    lock::ReentrantLock
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1045"></a>1045</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1046"></a>1046</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    BufferStream() = new(PipeBuffer(), Condition(), Condition(), true, false, ReentrantLock())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1047"></a>1047</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1048"></a>1048</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1049"></a>1049</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isopen(s::BufferStream) = s.is_open
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1050"></a>1050</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function close(s::BufferStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1051"></a>1051</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s.is_open = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1052"></a>1052</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    notify(s.r_c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1053"></a>1053</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    notify(s.close_c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1054"></a>1054</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1055"></a>1055</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1056"></a>1056</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">uvfinalize(s::BufferStream) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1057"></a>1057</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1058"></a>1058</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">read(s::BufferStream, ::Type{UInt8}) = (wait_readnb(s, 1); read(s.buffer, UInt8))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1059"></a>1059</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">unsafe_read(s::BufferStream, a::Ptr{UInt8}, nb::UInt) = (wait_readnb(s, Int(nb)); unsafe_read(s.buffer, a, nb))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1060"></a>1060</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">bytesavailable(s::BufferStream) = bytesavailable(s.buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1061"></a>1061</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1062"></a>1062</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isreadable(s::BufferStream) = s.buffer.readable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1063"></a>1063</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">iswritable(s::BufferStream) = s.buffer.writable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1064"></a>1064</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1065"></a>1065</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait_readnb(s::BufferStream, nb::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1066"></a>1066</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while isopen(s) &amp;&amp; bytesavailable(s.buffer) &lt; nb
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1067"></a>1067</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        wait(s.r_c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1068"></a>1068</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1069"></a>1069</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1070"></a>1070</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1071"></a>1071</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(io::IO, s::BufferStream) = print(io,&quot;BufferStream() bytes waiting:&quot;,bytesavailable(s.buffer),&quot;, isopen:&quot;, s.is_open)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1072"></a>1072</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1073"></a>1073</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function wait_readbyte(s::BufferStream, c::UInt8)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1074"></a>1074</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while isopen(s) &amp;&amp; !occursin(c, s.buffer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1075"></a>1075</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        wait(s.r_c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1076"></a>1076</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1077"></a>1077</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1078"></a>1078</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1079"></a>1079</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">wait_close(s::BufferStream) = if isopen(s); wait(s.close_c); end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1080"></a>1080</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">start_reading(s::BufferStream) = Int32(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1081"></a>1081</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">stop_reading(s::BufferStream) = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1082"></a>1082</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1083"></a>1083</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">write(s::BufferStream, b::UInt8) = write(s, Ref{UInt8}(b))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1084"></a>1084</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unsafe_write(s::BufferStream, p::Ptr{UInt8}, nb::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1085"></a>1085</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rv = unsafe_write(s.buffer, p, nb)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1086"></a>1086</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    !(s.buffer_writes) &amp;&amp; notify(s.r_c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1087"></a>1087</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return rv
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1088"></a>1088</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1089"></a>1089</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1090"></a>1090</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function eof(s::BufferStream)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1091"></a>1091</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    wait_readnb(s, 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1092"></a>1092</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return !isopen(s) &amp;&amp; bytesavailable(s)&lt;=0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1093"></a>1093</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1094"></a>1094</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1095"></a>1095</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># If buffer_writes is called, it will delay notifying waiters till a flush is called.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1096"></a>1096</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">buffer_writes(s::BufferStream, bufsize=0) = (s.buffer_writes=true; s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstream-jl-9a841f596a6f3ffbe5b9-line.html-1097"></a>1097</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">flush(s::BufferStream) = (notify(s.r_c); nothing)
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/string-jl-d20bff96b5e2c46b112e-line.html b/profiling/statprof/string-jl-d20bff96b5e2c46b112e-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..de5a1356d4b6f2f2974024d58ef5556252f7f27c
--- /dev/null
+++ b/profiling/statprof/string-jl-d20bff96b5e2c46b112e-line.html
@@ -0,0 +1,3564 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    StringIndexError(str, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">An error occurred when trying to access `str` at index `i` that is not valid.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct StringIndexError &lt;: Exception
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    string::AbstractString
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    index::Integer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@noinline string_index_err(s::AbstractString, i::Integer) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    throw(StringIndexError(s, Int(i)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const ByteArray = Union{Vector{UInt8},Vector{Int8}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@inline between(b::T, lo::T, hi::T) where {T&lt;:Integer} = (lo ≤ b) &amp; (b ≤ hi)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## constructors and conversions ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># String constructor docstring from boot.jl, workaround for #16730
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># and the unavailability of @doc in boot.jl context.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    String(v::AbstractVector{UInt8})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Create a new `String` object from a byte vector `v` containing UTF-8 encoded
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">characters. If `v` is `Vector{UInt8}` it will be truncated to zero length and
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">future modification of `v` cannot affect the contents of the resulting string.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">To avoid truncation use `String(copy(v))`.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">When possible, the memory of `v` will be used without copying when the `String`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">object is created. This is guaranteed to be the case for byte vectors returned
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">by [`take!`](@ref) on a writable [`IOBuffer`](@ref) and by calls to
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">[`read(io, nb)`](@ref). This allows zero-copy conversion of I/O data to strings.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">In other cases, `Vector{UInt8}` data may be copied, but `v` is truncated anyway
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">to guarantee consistent behavior.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">String(v::AbstractVector{UInt8}) = String(copyto!(StringVector(length(v)), v))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-39"></a>39</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-Type-39"></a>
+              1 (2.38%) samples spent in Type<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              print_to_string
+              <a href="io-jl-f839edf29063078eece4-line.html#Lio-jl-f839edf29063078eece4-line.html-124">line 124</a><br />
+            </div>
+            <span class="code">String(v::Vector{UInt8}) = ccall(:jl_array_to_string, Ref{String}, (Any,), v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    unsafe_string(p::Ptr{UInt8}, [length::Integer])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Copy a string from the address of a C-style (NUL-terminated) string encoded as UTF-8.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(The pointer can be safely freed afterwards.) If `length` is specified
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(the length of the data in bytes), the string does not have to be NUL-terminated.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This function is labeled &quot;unsafe&quot; because it will crash if `p` is not
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">a valid memory address to data of the requested length.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unsafe_string(p::Union{Ptr{UInt8},Ptr{Int8}}, len::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p == C_NULL &amp;&amp; throw(ArgumentError(&quot;cannot convert NULL to string&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_pchar_to_string, Ref{String}, (Ptr{UInt8}, Int), p, len)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function unsafe_string(p::Union{Ptr{UInt8},Ptr{Int8}})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p == C_NULL &amp;&amp; throw(ArgumentError(&quot;cannot convert NULL to string&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_cstr_to_string, Ref{String}, (Ptr{UInt8},), p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-60"></a>60</td>
+          <td>5 (11.90%)</td>
+          <td>5 (11.90%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_string_n-60"></a>
+              5 (11.90%) samples spent in _string_n<br />
+              5 (100.00%) (ex.),
+              5 (100.00%) (incl.)
+              when called from
+              StringVector
+              <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#Liobuffer-jl-0cfbb4403b3061764f48-line.html-31">line 31</a><br />
+            </div>
+            <span class="code">_string_n(n::Integer) = ccall(:jl_alloc_string, Ref{String}, (Csize_t,), n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    String(s::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Convert a string to a contiguous byte array representation encoded as UTF-8 bytes.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">This representation is often appropriate for passing strings to C.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">String(s::AbstractString) = print_to_string(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">String(s::Symbol) = unsafe_string(unsafe_convert(Ptr{UInt8}, s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-71"></a>71</td>
+          <td>6 (14.29%)</td>
+          <td>6 (14.29%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-StringVector-71"></a>
+              6 (14.29%) samples spent in StringVector<br />
+              6 (100.00%) (ex.),
+              6 (100.00%) (incl.)
+              when called from
+              #IOBuffer#302
+              <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#Liobuffer-jl-0cfbb4403b3061764f48-line.html-114">line 114</a><br />
+            </div>
+            <span class="code">unsafe_wrap(::Type{Vector{UInt8}}, s::String) = ccall(:jl_string_to_array, Ref{Vector{UInt8}}, (Any,), s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">(::Type{Vector{UInt8}})(s::CodeUnits{UInt8,String}) = copyto!(Vector{UInt8}(undef, length(s)), s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">String(s::CodeUnits{UInt8,String}) = s.s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## low-level functions ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">pointer(s::String) = unsafe_convert(Ptr{UInt8}, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">pointer(s::String, i::Integer) = pointer(s)+(i-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ncodeunits(s::String) = Core.sizeof(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">sizeof(s::String) = Core.sizeof(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">codeunit(s::String) = UInt8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@inline function codeunit(s::String, i::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck checkbounds(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    GC.@preserve s unsafe_load(pointer(s, i))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## comparison ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function cmp(a::String, b::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    al, bl = sizeof(a), sizeof(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    c = ccall(:memcmp, Int32, (Ptr{UInt8}, Ptr{UInt8}, UInt),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">              a, b, min(al,bl))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return c &lt; 0 ? -1 : c &gt; 0 ? +1 : cmp(al,bl)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function ==(a::String, b::String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    al = sizeof(a)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    al == sizeof(b) &amp;&amp; 0 == ccall(:memcmp, Int32, (Ptr{UInt8}, Ptr{UInt8}, UInt), a, b, al)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemin(::Type{String}) = &quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">typemin(::String) = typemin(String)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## thisind, nextind ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-110"></a>110</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-lastindex-110"></a>
+              1 (2.38%) samples spent in lastindex<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              tostr_sizehint
+              <a href="io-jl-f839edf29063078eece4-line.html#Lio-jl-f839edf29063078eece4-line.html-107">line 107</a><br />
+            </div>
+            <span class="code">thisind(s::String, i::Int) = _thisind_str(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># s should be String or SubString{String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_thisind_str-113"></a>
+              1 (2.38%) samples spent in _thisind_str<br />
+              1 (100.00%) (ex.),
+              1 (100.00%) (incl.)
+              when called from
+              print_to_string
+              <a href="io-jl-f839edf29063078eece4-line.html#Lio-jl-f839edf29063078eece4-line.html-117">line 117</a><br />
+            </div>
+            <span class="code">function _thisind_str(s, i::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-114"></a>114</td>
+          <td>1 (2.38%)</td>
+          <td>1 (2.38%)</td>
+          <td>
+            <span class="code">    i == 0 &amp;&amp; return 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = ncodeunits(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i == n + 1 &amp;&amp; return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck between(i, 1, n) || throw(BoundsError(s, i))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (b &amp; 0xc0 == 0x80) &amp; (i-1 &gt; 0) || return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i-1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    between(b, 0b11000000, 0b11110111) &amp;&amp; return i-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (b &amp; 0xc0 == 0x80) &amp; (i-2 &gt; 0) || return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i-2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    between(b, 0b11100000, 0b11110111) &amp;&amp; return i-2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (b &amp; 0xc0 == 0x80) &amp; (i-3 &gt; 0) || return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i-3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    between(b, 0b11110000, 0b11110111) &amp;&amp; return i-3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">nextind(s::String, i::Int) = _nextind_str(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># s should be String or SubString{String}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _nextind_str(s, i::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i == 0 &amp;&amp; return 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = ncodeunits(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck between(i, 1, n) || throw(BoundsError(s, i))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds l = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (l &lt; 0x80) | (0xf8 ≤ l) &amp;&amp; return i+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if l &lt; 0xc0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i′ = thisind(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return i′ &lt; i ? nextind(s, i′) : i+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # first continuation byte
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (i += 1) &gt; n &amp;&amp; return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b &amp; 0xc0 ≠ 0x80 &amp;&amp; return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ((i += 1) &gt; n) | (l &lt; 0xe0) &amp;&amp; return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # second continuation byte
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b &amp; 0xc0 ≠ 0x80 &amp;&amp; return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ((i += 1) &gt; n) | (l &lt; 0xf0) &amp;&amp; return i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # third continuation byte
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ifelse(b &amp; 0xc0 ≠ 0x80, i, i+1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## checking UTF-8 &amp; ACSII validity ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">byte_string_classify(data::Vector{UInt8}) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:u8_isvalid, Int32, (Ptr{UInt8}, Int), data, length(data))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">byte_string_classify(s::String) =
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:u8_isvalid, Int32, (Ptr{UInt8}, Int), s, sizeof(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # 0: neither valid ASCII nor UTF-8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # 1: valid ASCII
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # 2: valid UTF-8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isvalid(::Type{String}, s::Union{Vector{UInt8},String}) = byte_string_classify(s) ≠ 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isvalid(s::String) = isvalid(String, s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">is_valid_continuation(c) = c &amp; 0xc0 == 0x80
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## required core functionality ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@propagate_inbounds function iterate(s::String, i::Int=firstindex(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i &gt; ncodeunits(s) &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u = UInt32(b) &lt;&lt; 24
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    between(b, 0x80, 0xf7) || return reinterpret(Char, u), i+1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return next_continued(s, i, u)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function next_continued(s::String, i::Int, u::UInt32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u &lt; 0xc0000000 &amp;&amp; (i += 1; @goto ret)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = ncodeunits(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # first continuation byte
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (i += 1) &gt; n &amp;&amp; @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b &amp; 0xc0 == 0x80 || @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u |= UInt32(b) &lt;&lt; 16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # second continuation byte
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ((i += 1) &gt; n) | (u &lt; 0xe0000000) &amp;&amp; @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b &amp; 0xc0 == 0x80 || @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u |= UInt32(b) &lt;&lt; 8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # third continuation byte
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ((i += 1) &gt; n) | (u &lt; 0xf0000000) &amp;&amp; @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b &amp; 0xc0 == 0x80 || @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u |= UInt32(b); i += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@label ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return reinterpret(Char, u), i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@propagate_inbounds function getindex(s::String, i::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u = UInt32(b) &lt;&lt; 24
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    between(b, 0x80, 0xf7) || return reinterpret(Char, u)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return getindex_continued(s, i, u)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex_continued(s::String, i::Int, u::UInt32)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if u &lt; 0xc0000000
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # called from `getindex` which checks bounds
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds isvalid(s, i) &amp;&amp; @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        string_index_err(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = ncodeunits(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (i += 1) &gt; n &amp;&amp; @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i) # cont byte 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b &amp; 0xc0 == 0x80 || @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u |= UInt32(b) &lt;&lt; 16
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ((i += 1) &gt; n) | (u &lt; 0xe0000000) &amp;&amp; @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i) # cont byte 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b &amp; 0xc0 == 0x80 || @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u |= UInt32(b) &lt;&lt; 8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ((i += 1) &gt; n) | (u &lt; 0xf0000000) &amp;&amp; @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i) # cont byte 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b &amp; 0xc0 == 0x80 || @goto ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u |= UInt32(b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@label ret
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return reinterpret(Char, u)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getindex(s::String, r::UnitRange{&lt;:Integer}) = s[Int(first(r)):Int(last(r))]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function getindex(s::String, r::UnitRange{Int})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isempty(r) &amp;&amp; return &quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i, j = first(r), last(r)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        checkbounds(s, r)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds isvalid(s, i) || string_index_err(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @inbounds isvalid(s, j) || string_index_err(s, j)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    j = nextind(s, j) - 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = j - i + 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ss = _string_n(n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = pointer(ss)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for k = 1:n
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        unsafe_store!(p, codeunit(s, i + k - 1), k)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return ss
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function length(s::String, i::Int, j::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @boundscheck begin
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        0 &lt; i ≤ ncodeunits(s)+1 || throw(BoundsError(s, i))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        0 ≤ j &lt; ncodeunits(s)+1 || throw(BoundsError(s, j))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    j &lt; i &amp;&amp; return 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds i, k = thisind(s, i), i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    c = j - i + (i == k)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    length(s, i, j, c)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">length(s::String) = length(s, 1, ncodeunits(s), ncodeunits(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@inline function length(s::String, i::Int, n::Int, c::Int)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i &lt; n || return c
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @inbounds while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            (i += 1) ≤ n || return c
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            0xc0 ≤ b ≤ 0xf7 &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            b = codeunit(s, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        l = b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        b = codeunit(s, i) # cont byte 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        c -= (x = b &amp; 0xc0 == 0x80)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x &amp; (l ≥ 0xe0) || continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (i += 1) ≤ n || return c
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        b = codeunit(s, i) # cont byte 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        c -= (x = b &amp; 0xc0 == 0x80)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x &amp; (l ≥ 0xf0) || continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (i += 1) ≤ n || return c
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        b = codeunit(s, i) # cont byte 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        c -= (b &amp; 0xc0 == 0x80)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># TODO: delete or move to char.jl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">first_utf8_byte(c::Char) = (reinterpret(UInt32, c) &gt;&gt; 24) % UInt8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## overload methods for efficiency ##
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">isvalid(s::String, i::Int) = checkbounds(Bool, s, i) &amp;&amp; thisind(s, i) == i
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># UTF-8 encoding length of a character
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># TODO: delete or move to char.jl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">codelen(c::Char) = 4 - (trailing_zeros(0xff000000 | reinterpret(UInt32, c)) &gt;&gt; 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    repeat(c::AbstractChar, r::Integer) -&gt; String
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Repeat a character `r` times. This can equivalently be accomplished by calling [`c^r`](@ref ^).
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Examples
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```jldoctest
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">julia&gt; repeat(&#39;A&#39;, 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;AAA&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">```
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">repeat(c::AbstractChar, r::Integer) = repeat(Char(c), r) # fallback
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function repeat(c::Char, r::Integer)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    r == 0 &amp;&amp; return &quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    r &lt; 0 &amp;&amp; throw(ArgumentError(&quot;can&#39;t repeat a character $r times&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    u = bswap(reinterpret(UInt32, c))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    n = 4 - (leading_zeros(u | 0xff) &gt;&gt; 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = _string_n(n*r)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    p = pointer(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if n == 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:memset, Ptr{Cvoid}, (Ptr{UInt8}, Cint, Csize_t), p, u % UInt8, r)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif n == 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        p16 = reinterpret(Ptr{UInt16}, p)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 1:r
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            unsafe_store!(p16, u % UInt16, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif n == 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        b1 = (u &gt;&gt; 0) % UInt8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        b2 = (u &gt;&gt; 8) % UInt8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        b3 = (u &gt;&gt; 16) % UInt8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 0:r-1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            unsafe_store!(p, b1, 3i + 1)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            unsafe_store!(p, b2, 3i + 2)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            unsafe_store!(p, b3, 3i + 3)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif n == 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        p32 = reinterpret(Ptr{UInt32}, pointer(s))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for i = 1:r
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            unsafe_store!(p32, u, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return s
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lstring-jl-d20bff96b5e2c46b112e-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/subs.html b/profiling/statprof/subs.html
new file mode 100644
index 0000000000000000000000000000000000000000..b206c1d1225850995f82d5e2785fbbb9c6bec2b0
--- /dev/null
+++ b/profiling/statprof/subs.html
@@ -0,0 +1,476 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+    <script src="sorttable.js"></script>
+    <title>StatProfilerHTML.jl: subroutine list</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table class="sortable">
+        <caption>Subroutines, sorted by exclusive sample count</caption>
+        <tr>
+          <th class="sorttable_sorted">Exclusive</td>
+          <th>Inclusive</td>
+          <th>Subroutine</th>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="6">6 (14.29%)</td>
+          <td sorttable_customkey="6">6 (14.29%)</td>
+          <td>
+            <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-StringVector-71">StringVector</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="5">5 (11.90%)</td>
+          <td sorttable_customkey="37">37 (88.10%)</td>
+          <td>
+            <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print_to_string-111">print_to_string</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="5">5 (11.90%)</td>
+          <td sorttable_customkey="5">5 (11.90%)</td>
+          <td>
+            <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_string_n-60">_string_n</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td>
+            <a href="libuv-jl-530c66ad95b5a57763e9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-libuv-jl-process_events-98">process_events</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="2">2 (4.76%)</td>
+          <td sorttable_customkey="2">2 (4.76%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-53">+</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="2">2 (4.76%)</td>
+          <td sorttable_customkey="2">2 (4.76%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-div">div</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="15">15 (35.71%)</td>
+          <td>
+            <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-28">print</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="12">12 (28.57%)</td>
+          <td>
+            <a href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-grisu-52">grisu</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="12">12 (28.57%)</td>
+          <td>
+            <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-IOBuffer-302-111">#IOBuffer#302</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="11">11 (26.19%)</td>
+          <td>
+            <a href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-fastshortest-105">fastshortest</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="8">8 (19.05%)</td>
+          <td>
+            <a href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-digitgen-64">digitgen</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td>
+            <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-unsafe_write-401">unsafe_write</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="fastshortest-jl-253e248589e118f4dde7-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-fastshortest-jl-roundweed-34">roundweed</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="bignums-jl-e031ee9c77e42cd3aafb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-bignums-jl-dividemodulointbignum-420">dividemodulointbignum!</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-54">*</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="array-jl-e331915c4fb281d94775-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-_deleteend-823">_deleteend!</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="bignums-jl-e031ee9c77e42cd3aafb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-bignums-jl-compare-474">compare</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-ensureroom-293">ensureroom</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-442">&gt;&gt;</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-lastindex-110">lastindex</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-Type-39">Type</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="promotion-jl-fe649671ed190521a171-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-promotion-jl-425">==</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="string-jl-d20bff96b5e2c46b112e-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-string-jl-_thisind_str-113">_thisind_str</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-49">&lt;</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-427">&lt;</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="40">40 (95.24%)</td>
+          <td>
+            <a href="client-jl-74fbd6bc37c8328be022-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-client-jl-exec_options-193">exec_options</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="40">40 (95.24%)</td>
+          <td>
+            <a href="client-jl-74fbd6bc37c8328be022-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-client-jl-_start-420">_start</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="40">40 (95.24%)</td>
+          <td>
+            <a href="loading-jl-267f08df202e5203e249-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-loading-jl-include_relative-1035">include_relative</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="40">40 (95.24%)</td>
+          <td>
+            <a href="sysimg-jl-58aafbf6293fe483e566-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-sysimg-jl-include-22">include</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="40">40 (95.24%)</td>
+          <td>
+            <a href="boot-jl-1c95b3ccecba8d7f1acb-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-boot-jl-include-317">include</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="40">40 (95.24%)</td>
+          <td>
+            <a href="test-jl-6f8538a27ff3da5824d9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-profiling-test-jl-f-7">f</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="40">40 (95.24%)</td>
+          <td>
+            <a href="Profile-jl-e79abb67faac09cf5e9b-line.html#S-buildworker-worker-package_linux64-build-usr-share-julia-stdlib-v1-0-Profile-src-Profile-jl-top-level-scope-25">top-level scope</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="37">37 (88.10%)</td>
+          <td>
+            <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-string-155">string</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="14">14 (33.33%)</td>
+          <td>
+            <a href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-show-151">show</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="14">14 (33.33%)</td>
+          <td>
+            <a href="grisu-jl-fab39581eb10ad2e545a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-grisu-jl-_show-89">_show</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="12">12 (28.57%)</td>
+          <td>
+            <a href="nothing-0feca720e2c29dafb2c9-line.html#Snothing-Type">Type</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="5">5 (11.90%)</td>
+          <td>
+            <a href="iobuffer-jl-0cfbb4403b3061764f48-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-iobuffer-jl-StringVector-31">StringVector</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td>
+            <a href="coreio-jl-465d134c20f8b0bc664b-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-coreio-jl-print-2">print</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td>
+            <a href="gcutils-jl-226c838c61f0891410cd-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-gcutils-jl-print-165">print</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td>
+            <a href="stream-jl-9a841f596a6f3ffbe5b9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-stream-jl-uv_write-773">uv_write</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td>
+            <a href="stream-jl-9a841f596a6f3ffbe5b9-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-stream-jl-unsafe_write-828">unsafe_write</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="3">3 (7.14%)</td>
+          <td>
+            <a href="event-jl-9f2b370029d9fd3c8bef-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-event-jl-wait-243">wait</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="2">2 (4.76%)</td>
+          <td>
+            <a href="gcutils-jl-226c838c61f0891410cd-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-gcutils-jl-write-163">write</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-448">&gt;&gt;</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-tostr_sizehint-106">tostr_sizehint</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-normalize-48">normalize</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-803">+</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-165">print</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="array-jl-e331915c4fb281d94775-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-array-jl-resize-1011">resize!</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-binexp_cache-253">binexp_cache</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="int-jl-af434f8f2b4fe43f173a-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-int-jl-432">==</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="operators-jl-714ade2c8745dd55a410-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-operators-jl-286">&gt;</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="io-jl-7061b86fd468f75a7694-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-io-jl-unsafe_write-509">unsafe_write</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="operators-jl-714ade2c8745dd55a410-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-operators-jl-603">&gt;&gt;</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-print-166">print</a>
+          </td>
+        </tr>
+
+        <tr>
+          <td sorttable_customkey="0">0</td>
+          <td sorttable_customkey="1">1 (2.38%)</td>
+          <td>
+            <a href="float-jl-2e7d768064d970d2b754-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-grisu-float-jl-normalizedbound-120">normalizedbound</a>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/sysimg-jl-58aafbf6293fe483e566-line.html b/profiling/statprof/sysimg-jl-58aafbf6293fe483e566-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..13ee57e176bf1a39cec477461ca54060a9553783
--- /dev/null
+++ b/profiling/statprof/sysimg-jl-58aafbf6293fe483e566-line.html
@@ -0,0 +1,5753 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">baremodule Base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using Core.Intrinsics, Core.IR
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const is_primary_base_module = ccall(:jl_module_parent, Ref{Module}, (Any,), Base) === Core.Main
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">ccall(:jl_set_istopmod, Cvoid, (Any, Bool), Base, is_primary_base_module)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Try to help prevent users from shooting them-selves in the foot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># with ambiguities by defining a few common and critical operations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># (and these don&#39;t need the extra convert code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getproperty(x::Module, f::Symbol) = getfield(x, f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">setproperty!(x::Module, f::Symbol, v) = setfield!(x, f, v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getproperty(x::Type, f::Symbol) = getfield(x, f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">setproperty!(x::Type, f::Symbol, v) = setfield!(x, f, v)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">getproperty(Core.@nospecialize(x), f::Symbol) = getfield(x, f)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">setproperty!(x, f::Symbol, v) = setfield!(x, f, convert(fieldtype(typeof(x), f), v))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function include_relative end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-sysimg-jl-include-22"></a>
+              40 (95.24%) samples spent in include<br />
+              0 (ex.),
+              40 (100.00%) (incl.)
+              when called from
+              exec_options
+              <a href="client-jl-74fbd6bc37c8328be022-line.html#Lclient-jl-74fbd6bc37c8328be022-line.html-266">line 266</a><br />
+            </div>
+            <span class="code">function include(mod::Module, path::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    local result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if INCLUDE_STATE === 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result = _include1(mod, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif INCLUDE_STATE === 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result = _include(mod, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif INCLUDE_STATE === 3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-29"></a>29</td>
+          <td></td>
+          <td>40 (95.24%)</td>
+          <td>
+            <div class="callees">
+              40 (100.00%)
+              samples spent calling
+              <a href="loading-jl-267f08df202e5203e249-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-loading-jl-include_relative-1035">include_relative</a><br />
+            </div>
+            <span class="code">        result = include_relative(mod, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function include(path::AbstractString)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    local result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-35"></a>35</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if INCLUDE_STATE === 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result = _include1(Base, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif INCLUDE_STATE === 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result = _include(Base, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # to help users avoid error (accidentally evaluating into Base), this is not allowed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        error(&quot;Base.include(string) is discontinued, use `include(fname)` or `Base.include(@__MODULE__, fname)` instead.&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const _included_files = Array{Tuple{Module,String},1}()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function _include1(mod::Module, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Core.Compiler.push!(_included_files, (mod, ccall(:jl_prepend_cwd, Any, (Any,), path)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Core.include(mod, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">let SOURCE_PATH = &quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # simple, race-y TLS, relative include
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global _include
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    function _include(mod::Module, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        prev = SOURCE_PATH
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        path = normpath(joinpath(dirname(prev), path))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(_included_files, (mod, abspath(path)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        SOURCE_PATH = path
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result = Core.include(mod, path)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        SOURCE_PATH = prev
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">INCLUDE_STATE = 1 # include = Core.include
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;coreio.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(x) = Core.eval(Base, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">eval(m::Module, x) = Core.eval(m, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">VecElement{T}(arg) where {T} = VecElement{T}(convert(T, arg))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">convert(::Type{T}, arg)  where {T&lt;:VecElement} = T(arg)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">convert(::Type{T}, arg::T) where {T&lt;:VecElement} = arg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># init core docsystem
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">import Core: @doc, @__doc__, WrappedException
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if isdefined(Core, :Compiler)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    import Core.Compiler.CoreDocs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Core.atdoc!(CoreDocs.docm)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;exports.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # simple print definitions for debugging. enable these if something
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # goes wrong during bootstrap before printing code is available.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # otherwise, they just just eventually get (noisily) overwritten later
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    global show, print, println
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    show(io::IO, x) = Core.show(io, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print(io::IO, a...) = Core.print(io, a...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    println(io::IO, x...) = Core.println(io, x...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    time_ns()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Get the time in nanoseconds. The time corresponding to 0 is undefined, and wraps every 5.8 years.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">&quot;&quot;&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">time_ns() = ccall(:jl_hrtime, UInt64, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">start_base_include = time_ns()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## Load essential files and libraries
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;essentials.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;ctypes.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;gcutils.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;generator.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;reflection.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;options.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># core operations &amp; types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;promotion.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;tuple.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;pair.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;traits.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;range.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;expr.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;error.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># core numeric operations &amp; types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;bool.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;number.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;int.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;operators.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;pointer.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;refvalue.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;refpointer.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;checked.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Checked
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># vararg Symbol constructor
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Symbol(x...) = Symbol(string(x...))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># array structures
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;indices.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;array.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;abstractarray.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;subarray.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;views.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># ## dims-type-converting Array constructors for convenience
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># type and dimensionality specified, accepting dims as series of Integers
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Vector{T}(::UndefInitializer, m::Integer) where {T} = Vector{T}(undef, Int(m))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Matrix{T}(::UndefInitializer, m::Integer, n::Integer) where {T} = Matrix{T}(undef, Int(m), Int(n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,N}(::UndefInitializer, d::Vararg{Integer,N}) where {T,N} = Array{T,N}(undef, convert(Tuple{Vararg{Int}}, d))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># type but not dimensionality specified, accepting dims as series of Integers
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::UndefInitializer, m::Integer) where {T} = Array{T,1}(undef, Int(m))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::UndefInitializer, m::Integer, n::Integer) where {T} = Array{T,2}(undef, Int(m), Int(n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::UndefInitializer, m::Integer, n::Integer, o::Integer) where {T} = Array{T,3}(undef, Int(m), Int(n), Int(o))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::UndefInitializer, d::Integer...) where {T} = Array{T}(undef, convert(Tuple{Vararg{Int}}, d))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># dimensionality but not type specified, accepting dims as series of Integers
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Vector(::UndefInitializer, m::Integer) = Vector{Any}(undef, Int(m))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Matrix(::UndefInitializer, m::Integer, n::Integer) = Matrix{Any}(undef, Int(m), Int(n))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Dimensions as a single tuple
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::UndefInitializer, d::NTuple{N,Integer}) where {T,N} = Array{T,N}(undef, convert(Tuple{Vararg{Int}}, d))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,N}(::UndefInitializer, d::NTuple{N,Integer}) where {T,N} = Array{T,N}(undef, convert(Tuple{Vararg{Int}}, d))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># empty vector constructor
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Vector() = Vector{Any}(undef, 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Array constructors for nothing and missing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># type and dimensionality specified
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,N}(::Nothing, d...) where {T,N} = fill!(Array{T,N}(undef, d...), nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T,N}(::Missing, d...) where {T,N} = fill!(Array{T,N}(undef, d...), missing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># type but not dimensionality specified
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::Nothing, d...) where {T} = fill!(Array{T}(undef, d...), nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Array{T}(::Missing, d...) where {T} = fill!(Array{T}(undef, d...), missing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;abstractdict.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;iterators.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Iterators: zip, enumerate
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Iterators: Flatten, product  # for generators
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;namedtuple.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># numeric operations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;hashing.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;rounding.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Rounding
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;float.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;twiceprecision.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;complex.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;rational.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;multinverses.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .MultiplicativeInverses
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;abstractarraymath.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;arraymath.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># define MIME&quot;foo/bar&quot; early so that we can overload 3-arg show
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">struct MIME{mime} end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">macro MIME_str(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    :(MIME{$(Expr(:quote, Symbol(s)))})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># fallback text/plain representation of any type:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">show(io::IO, ::MIME&quot;text/plain&quot;, x) = show(io, x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># SIMD loops
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;simdloop.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .SimdLoop
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># map-reduce operators
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;reduce.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">## core structures
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;reshapedarray.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;reinterpretarray.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;bitarray.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;bitset.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if !isdefined(Core, :Compiler)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    include(&quot;docs/core.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Core.atdoc!(CoreDocs.docm)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Some type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;some.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;dict.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;abstractset.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;set.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;char.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;strings/basic.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;strings/string.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;strings/substring.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Definition of StridedArray
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">StridedFastContiguousSubArray{T,N,A&lt;:DenseArray} = FastContiguousSubArray{T,N,A}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">StridedReinterpretArray{T,N,A&lt;:Union{DenseArray,StridedFastContiguousSubArray}} = ReinterpretArray{T,N,S,A} where S
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">StridedReshapedArray{T,N,A&lt;:Union{DenseArray,StridedFastContiguousSubArray,StridedReinterpretArray}} = ReshapedArray{T,N,A}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">StridedSubArray{T,N,A&lt;:Union{DenseArray,StridedReshapedArray,StridedReinterpretArray},
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    I&lt;:Tuple{Vararg{Union{RangeIndex, AbstractCartesianIndex}}}} = SubArray{T,N,A,I}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">StridedArray{T,N} = Union{DenseArray{T,N}, StridedSubArray{T,N}, StridedReshapedArray{T,N}, StridedReinterpretArray{T,N}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">StridedVector{T} = Union{DenseArray{T,1}, StridedSubArray{T,1}, StridedReshapedArray{T,1}, StridedReinterpretArray{T,1}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">StridedMatrix{T} = Union{DenseArray{T,2}, StridedSubArray{T,2}, StridedReshapedArray{T,2}, StridedReinterpretArray{T,2}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">StridedVecOrMat{T} = Union{StridedVector{T}, StridedMatrix{T}}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># For OS specific stuff
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(string((length(Core.ARGS)&gt;=2 ? Core.ARGS[2] : &quot;&quot;), &quot;build_h.jl&quot;))     # include($BUILDROOT/base/build_h.jl)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(string((length(Core.ARGS)&gt;=2 ? Core.ARGS[2] : &quot;&quot;), &quot;version_git.jl&quot;)) # include($BUILDROOT/base/version_git.jl)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;osutils.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;c.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Core I/O
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;io.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;iostream.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;iobuffer.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># strings &amp; printing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;intfuncs.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;strings/strings.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;parse.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;shell.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;regex.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;show.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;arrayshow.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># multidimensional arrays
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;cartesian.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Cartesian
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;multidimensional.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;permuteddimsarray.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .PermutedDimsArrays
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;broadcast.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Broadcast
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># define the real ntuple functions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@inline function ntuple(f::F, ::Val{N}) where {F,N}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    N::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    (N &gt;= 0) || throw(ArgumentError(string(&quot;tuple length should be ≥0, got &quot;, N)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if @generated
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        quote
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @nexprs $N i -&gt; t_i = f(i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            @ncall $N tuple t
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        Tuple(f(i) for i = 1:N)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@inline function fill_to_length(t::Tuple, val, ::Val{N}) where {N}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    M = length(t)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    M &gt; N &amp;&amp; throw(ArgumentError(&quot;input tuple of length $M, requested $N&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if @generated
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        quote
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            (t..., $(fill(:val, N-length(t.parameters))...))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        (t..., fill(val, N-M)...)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># missing values
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;missing.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># version
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;version.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># system &amp; environment
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;sysinfo.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;libc.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Libc: getpid, gethostname, time
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const DL_LOAD_PATH = String[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Sys.isapple()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(DL_LOAD_PATH, &quot;@loader_path/julia&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    push!(DL_LOAD_PATH, &quot;@loader_path&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;env.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Scheduling
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;libuv.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;event.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;task.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;lock.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;threads.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;weakkeydict.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Logging
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;logging.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .CoreLogging
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># functions defined in Random
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function rand end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function randn end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># I/O
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;stream.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;filesystem.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Filesystem
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;process.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;grisu/grisu.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;methodshow.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;secretbuffer.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># core math functions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;floatfuncs.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;math.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Math
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const (√)=sqrt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const (∛)=cbrt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">INCLUDE_STATE = 2 # include = _include (from lines above)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># reduction along dims
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;reducedim.jl&quot;)  # macros in this file relies on string.jl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;accumulate.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># basic data structures
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;ordering.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Order
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Combinatorics
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;sort.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Sort
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Fast math
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;fastmath.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .FastMath
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function deepcopy_internal end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># BigInts and BigFloats
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;gmp.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .GMP
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">for T in [Signed, Integer, BigInt, Float32, Float64, Real, Complex, Rational]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @eval flipsign(x::$T, ::Unsigned) = +x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    @eval copysign(x::$T, ::Unsigned) = +x
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;mpfr.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .MPFR
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">big(n::Integer) = convert(BigInt,n)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">big(x::AbstractFloat) = convert(BigFloat,x)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">big(q::Rational) = big(numerator(q))//big(denominator(q))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;combinatorics.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># more hashing definitions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;hashing2.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># irrational mathematical constants
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;irrationals.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;mathconstants.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .MathConstants: ℯ, π, pi
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># (s)printf macros
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;printf.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># import .Printf
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># metaprogramming
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;meta.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># enums
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;Enums.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Enums
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># concurrency and parallelism
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;channels.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># utilities
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;deepcopy.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;download.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;summarysize.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;errorshow.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Stack frames and traces
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;stacktraces.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .StackTraces
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;initdefs.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># worker threads
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;threadcall.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># code loading
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;uuid.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;loading.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># misc useful functions &amp; macros
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;util.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;asyncmap.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;multimedia.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Multimedia
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># deprecated functions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;deprecated.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Some basic documentation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;docs/basedocs.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;client.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Documentation -- should always be included last in sysimg.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">include(&quot;docs/Docs.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Docs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if isdefined(Core, :Compiler) &amp;&amp; is_primary_base_module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Docs.loaddocs(Core.Compiler.CoreDocs.DOCS)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end_base_include = time_ns()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if is_primary_base_module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function __init__()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # try to ensuremake sure OpenBLAS does not set CPU affinity (#1070, #9639)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !haskey(ENV, &quot;OPENBLAS_MAIN_FREE&quot;) &amp;&amp; !haskey(ENV, &quot;GOTOBLAS_MAIN_FREE&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ENV[&quot;OPENBLAS_MAIN_FREE&quot;] = &quot;1&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # And try to prevent openblas from starting too many threads, unless/until specifically requested
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !haskey(ENV, &quot;OPENBLAS_NUM_THREADS&quot;) &amp;&amp; !haskey(ENV, &quot;OMP_NUM_THREADS&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        cpu_threads = Sys.CPU_THREADS::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if cpu_threads &gt; 8 # always at most 8
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ENV[&quot;OPENBLAS_NUM_THREADS&quot;] = &quot;8&quot;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif haskey(ENV, &quot;JULIA_CPU_THREADS&quot;) # or exactly as specified
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ENV[&quot;OPENBLAS_NUM_THREADS&quot;] = cpu_threads
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end # otherwise, trust that openblas will pick CPU_THREADS anyways, without any intervention
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # for the few uses of Libc.rand in Base:
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Libc.srand()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Base library init
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    reinit_stdio()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Multimedia.reinit_displays() # since Multimedia.displays uses stdout as fallback
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # initialize loading
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    init_depot_path()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    init_load_path()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">INCLUDE_STATE = 3 # include = include_relative
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const tot_time_stdlib = RefValue(0.0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end # baremodule Base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using .Base
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Ensure this file is also tracked
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">pushfirst!(Base._included_files, (@__MODULE__, joinpath(@__DIR__, &quot;sysimg.jl&quot;)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># set up depot &amp; load paths to be able to find stdlib packages
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval Base creating_sysimg = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Base.init_depot_path()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Base.init_load_path()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if Base.is_primary_base_module
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># load some stdlib packages but don&#39;t put their names in Main
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">let
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # Stdlibs manually sorted in top down order
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    stdlibs = [
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # No deps
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Base64,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :CRC32c,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :SHA,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :FileWatching,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Unicode,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Mmap,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Serialization,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Libdl,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Markdown,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :LibGit2,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Logging,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Sockets,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Printf,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Profile,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Dates,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :DelimitedFiles,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Random,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :UUIDs,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Future,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :LinearAlgebra,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :SparseArrays,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :SuiteSparse,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Distributed,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :SharedArrays,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Pkg,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Test,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :REPL,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            :Statistics,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    maxlen = maximum(textwidth.(string.(stdlibs)))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print_time = (mod, t) -&gt; (print(rpad(string(mod) * &quot;  &quot;, maxlen + 3, &quot;─&quot;)); Base.time_print(t * 10^9); println())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print_time(Base, (Base.end_base_include - Base.start_base_include) * 10^(-9))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base._track_dependencies[] = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base.tot_time_stdlib[] = @elapsed for stdlib in stdlibs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        tt = @elapsed Base.require(Base, stdlib)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        print_time(stdlib, tt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for dep in Base._require_dependencies
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        dep[3] == 0.0 &amp;&amp; continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        push!(Base._included_files, dep[1:2])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    empty!(Base._require_dependencies)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    Base._track_dependencies[] = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    print_time(&quot;Stdlibs total&quot;, Base.tot_time_stdlib[])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Clear global state
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">empty!(Core.ARGS)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">empty!(Base.ARGS)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">empty!(LOAD_PATH)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@eval Base creating_sysimg = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Base.init_load_path() # want to be able to find external packages in userimg.jl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">let
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">tot_time_userimg = @elapsed (Base.isfile(&quot;userimg.jl&quot;) &amp;&amp; Base.include(Main, &quot;userimg.jl&quot;))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">tot_time_base = (Base.end_base_include - Base.start_base_include) * 10.0^(-9)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">tot_time = tot_time_base + Base.tot_time_stdlib[] + tot_time_userimg
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">println(&quot;Sysimage built. Summary:&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(&quot;Total ─────── &quot;); Base.time_print(tot_time               * 10^9); print(&quot; \n&quot;);
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(&quot;Base: ─────── &quot;); Base.time_print(tot_time_base          * 10^9); print(&quot; &quot;); show(IOContext(stdout, :compact=&gt;true), (tot_time_base          / tot_time) * 100); println(&quot;%&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(&quot;Stdlibs: ──── &quot;); Base.time_print(Base.tot_time_stdlib[] * 10^9); print(&quot; &quot;); show(IOContext(stdout, :compact=&gt;true), (Base.tot_time_stdlib[] / tot_time) * 100); println(&quot;%&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">if isfile(&quot;userimg.jl&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">print(&quot;Userimg: ──── &quot;); Base.time_print(tot_time_userimg       * 10^9); print(&quot; &quot;); show(IOContext(stdout, :compact=&gt;true), (tot_time_userimg       / tot_time) * 100); println(&quot;%&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">empty!(LOAD_PATH)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Lsysimg-jl-58aafbf6293fe483e566-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">empty!(DEPOT_PATH)
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/test-jl-6f8538a27ff3da5824d9-line.html b/profiling/statprof/test-jl-6f8538a27ff3da5824d9-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..d8e9ad6d45536184b584e1322d084b8ce0294ce4
--- /dev/null
+++ b/profiling/statprof/test-jl-6f8538a27ff3da5824d9-line.html
@@ -0,0 +1,318 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on tor 10 okt 2019 11:38:33</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using Profile
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using BenchmarkTools
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using Random
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">using StatProfilerHTML
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function f()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-profiling-test-jl-f-7"></a>
+              40 (95.24%) samples spent in f<br />
+              0 (ex.),
+              40 (100.00%) (incl.)
+              when called from
+              top-level scope
+              <a href="Profile-jl-e79abb67faac09cf5e9b-line.html#LProfile-jl-e79abb67faac09cf5e9b-line.html-25">line 25</a><br />
+            </div>
+            <span class="code">	 
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  lst = rand(50000)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  for i in lst
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-11"></a>11</td>
+          <td></td>
+          <td>37 (88.10%)</td>
+          <td>
+            <div class="callees">
+              37 (100.00%)
+              samples spent calling
+              <a href="io-jl-f839edf29063078eece4-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-strings-io-jl-string-155">string</a><br />
+            </div>
+            <span class="code">   s = &quot;List entry $(i)\r&quot; # The \r makes it so the terminal isn&#39;t filled
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if i &gt; 0.99
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-14"></a>14</td>
+          <td></td>
+          <td>3 (7.14%)</td>
+          <td>
+            <div class="callees">
+              3 (100.00%)
+              samples spent calling
+              <a href="coreio-jl-465d134c20f8b0bc664b-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-coreio-jl-print-2">print</a><br />
+            </div>
+            <span class="code">      print(s)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-15"></a>15</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">  end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@profile f()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">Profile.print()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">statprofilehtml()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">f()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">@time f()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">x = @benchmark f()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">println()
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltest-jl-6f8538a27ff3da5824d9-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">println(x)
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/typeinfer-jl-14b2448d998dfdb61460-line.html b/profiling/statprof/typeinfer-jl-14b2448d998dfdb61460-line.html
new file mode 100644
index 0000000000000000000000000000000000000000..fe48f50bc387e95043a989fdd35dc5e4a8813594
--- /dev/null
+++ b/profiling/statprof/typeinfer-jl-14b2448d998dfdb61460-line.html
@@ -0,0 +1,6551 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+    <link rel="stylesheet" type="text/css" href="statprofiler.css">
+
+    <title>StatProfilerHTML.jl: /home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./compiler/typeinfer.jl</title>
+  </head>
+  <body>
+<div class="report-header">
+  <div class="backlink"><a href="index.html">Report index</a></div>
+  <div class="report-title">StatProfilerHTML.jl report</div>
+  <div class="generated-on">Generated on ons  9 okt 2019 08:41:28</div>
+</div>
+
+    <div id="body-content">
+      <table>
+        <caption>File source code</caption>
+        <tr>
+          <th>Line</td>
+          <th>Exclusive</th>
+          <th>Inclusive</th>
+          <th>Code</th>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-1"></a>1</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># This file is a part of Julia. License is MIT: https://julialang.org/license
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-2"></a>2</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-3"></a>3</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">const COMPILER_TEMP_SYM = Symbol(&quot;#temp#&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-4"></a>4</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-5"></a>5</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># build (and start inferring) the inference frame for the linfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-6"></a>6</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function typeinf(result::InferenceResult, cached::Bool, params::Params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-7"></a>7</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame = InferenceState(result, cached, params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-8"></a>8</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame === nothing &amp;&amp; return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-9"></a>9</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cached &amp;&amp; (result.linfo.inInference = true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-10"></a>10</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return typeinf(frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-11"></a>11</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-12"></a>12</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-13"></a>13</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-typeinfer-jl-typeinf-13"></a>
+              3 (8.11%) samples spent in typeinf<br />
+              0 (ex.),
+              2 (66.67%) (incl.)
+              when called from
+              abstract_call_method_with_const_args
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#Labstractinterpretation-jl-35ae29f448859d864444-line.html-216">line 216</a><br />
+              0 (ex.),
+              3 (100.00%) (incl.)
+              when called from
+              typeinf_ext
+              <a href="typeinfer-jl-14b2448d998dfdb61460-line.html#Ltypeinfer-jl-14b2448d998dfdb61460-line.html-574">line 574</a><br />
+            </div>
+            <span class="code">function typeinf(frame::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-14"></a>14</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    cached = frame.cached
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-15"></a>15</td>
+          <td></td>
+          <td>5 (13.51%)</td>
+          <td>
+            <div class="callees">
+              2 (40.00%)
+              samples spent calling
+              <a href="abstractinterpretation-jl-35ae29f448859d864444-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-abstractinterpretation-jl-typeinf_nocycle-1224">typeinf_nocycle</a><br />
+            </div>
+            <span class="code">    typeinf_nocycle(frame) || return false # frame is now part of a higher cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-16"></a>16</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # with no active ip&#39;s, frame is done
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-17"></a>17</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frames = frame.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-18"></a>18</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    isempty(frames) &amp;&amp; push!(frames, frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-19"></a>19</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for caller in frames
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-20"></a>20</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @assert !(caller.dont_work_on_me)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-21"></a>21</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        caller.dont_work_on_me = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-22"></a>22</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-23"></a>23</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for caller in frames
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-24"></a>24</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finish(caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-25"></a>25</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-26"></a>26</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # collect results for the new expanded frame
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-27"></a>27</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    results = InferenceResult[ frames[i].result for i in 1:length(frames) ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-28"></a>28</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # empty!(frames)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-29"></a>29</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    min_valid = frame.min_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-30"></a>30</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    max_valid = frame.max_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-31"></a>31</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if cached || frame.parent !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-32"></a>32</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for caller in results
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-33"></a>33</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            opt = caller.src
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-34"></a>34</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if opt isa OptimizationState
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-35"></a>35</td>
+          <td></td>
+          <td>1 (2.70%)</td>
+          <td>
+            <div class="callees">
+              1 (100.00%)
+              samples spent calling
+              <a href="optimize-jl-9a25bbc7af72ab9ad4ff-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-optimize-jl-optimize-163">optimize</a><br />
+            </div>
+            <span class="code">                optimize(opt, caller.result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-36"></a>36</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                finish(opt.src)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-37"></a>37</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # finish updating the result struct
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-38"></a>38</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                validate_code_in_debug_mode(opt.linfo, opt.src, &quot;optimized&quot;)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-39"></a>39</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if opt.const_api
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-40"></a>40</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if caller.result isa Const
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-41"></a>41</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        caller.src = caller.result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-42"></a>42</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-43"></a>43</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        @assert isconstType(caller.result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-44"></a>44</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        caller.src = Const(caller.result.parameters[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-45"></a>45</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-46"></a>46</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif opt.src.inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-47"></a>47</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    caller.src = opt.src::CodeInfo # stash a copy of the code (for inlining)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-48"></a>48</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-49"></a>49</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    caller.src = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-50"></a>50</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-51"></a>51</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if min_valid &lt; opt.min_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-52"></a>52</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    min_valid = opt.min_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-53"></a>53</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-54"></a>54</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if max_valid &gt; opt.max_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-55"></a>55</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    max_valid = opt.max_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-56"></a>56</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-57"></a>57</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-58"></a>58</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-59"></a>59</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if cached
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-60"></a>60</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            for caller in results
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-61"></a>61</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                cache_result(caller, min_valid, max_valid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-62"></a>62</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-63"></a>63</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-64"></a>64</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-65"></a>65</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # if we aren&#39;t cached, we don&#39;t need this edge
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-66"></a>66</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # but our caller might, so let&#39;s just make it anyways
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-67"></a>67</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for caller in frames
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-68"></a>68</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        finalize_backedges(caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-69"></a>69</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-70"></a>70</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if max_valid == typemax(UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-71"></a>71</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for caller in frames
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-72"></a>72</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            store_backedges(caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-73"></a>73</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-74"></a>74</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-75"></a>75</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-76"></a>76</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-77"></a>77</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-78"></a>78</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># inference completed on `me`
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-79"></a>79</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># update the MethodInstance and notify the edges
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-80"></a>80</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function cache_result(result::InferenceResult, min_valid::UInt, max_valid::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-81"></a>81</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    def = result.linfo.def
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-82"></a>82</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    toplevel = !isa(result.linfo.def, Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-83"></a>83</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if toplevel
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-84"></a>84</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        min_valid = UInt(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-85"></a>85</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        max_valid = UInt(0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-86"></a>86</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-87"></a>87</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-88"></a>88</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # check if the existing linfo metadata is also sufficient to describe the current inference result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-89"></a>89</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # to decide if it is worth caching it again (which would also clear any generated code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-90"></a>90</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    already_inferred = !result.linfo.inInference
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-91"></a>91</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isdefined(result.linfo, :inferred)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-92"></a>92</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        inf = result.linfo.inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-93"></a>93</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isa(inf, CodeInfo) || (inf::CodeInfo).inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-94"></a>94</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if min_world(result.linfo) == min_valid &amp;&amp; max_world(result.linfo) == max_valid
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-95"></a>95</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                already_inferred = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-96"></a>96</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-97"></a>97</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-98"></a>98</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-99"></a>99</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-100"></a>100</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # don&#39;t store inferred code if we&#39;ve decided to interpret this function
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-101"></a>101</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !already_inferred &amp;&amp; invoke_api(result.linfo) != 4
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-102"></a>102</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        inferred_result = result.src
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-103"></a>103</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if inferred_result isa Const
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-104"></a>104</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # use constant calling convention
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-105"></a>105</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            inferred_const = (result.src::Const).val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-106"></a>106</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            const_flags = 0x3
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-107"></a>107</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-108"></a>108</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(result.result, Const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-109"></a>109</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                inferred_const = (result.result::Const).val
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-110"></a>110</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                const_flags = 0x2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-111"></a>111</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif isconstType(result.result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-112"></a>112</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                inferred_const = result.result.parameters[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-113"></a>113</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                const_flags = 0x2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-114"></a>114</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-115"></a>115</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                inferred_const = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-116"></a>116</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                const_flags = 0x00
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-117"></a>117</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-118"></a>118</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !toplevel &amp;&amp; inferred_result isa CodeInfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-119"></a>119</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                cache_the_tree = result.src.inferred &amp;&amp;
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-120"></a>120</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    (result.src.inlineable ||
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-121"></a>121</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                     ccall(:jl_isa_compileable_sig, Int32, (Any, Any), result.linfo.specTypes, def) != 0)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-122"></a>122</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if cache_the_tree
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-123"></a>123</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    # compress code for non-toplevel thunks
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-124"></a>124</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    inferred_result = ccall(:jl_compress_ast, Any, (Any, Any), def, inferred_result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-125"></a>125</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-126"></a>126</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    inferred_result = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-127"></a>127</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-128"></a>128</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-129"></a>129</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-130"></a>130</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isa(inferred_result, Union{CodeInfo, Vector{UInt8}})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-131"></a>131</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            inferred_result = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-132"></a>132</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-133"></a>133</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        cache = ccall(:jl_set_method_inferred, Ref{MethodInstance}, (Any, Any, Any, Any, Int32, UInt, UInt),
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-134"></a>134</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            result.linfo, widenconst(result.result), inferred_const, inferred_result,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-135"></a>135</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            const_flags, min_valid, max_valid)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-136"></a>136</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if cache !== result.linfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-137"></a>137</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            result.linfo.inInference = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-138"></a>138</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            result.linfo = cache
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-139"></a>139</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-140"></a>140</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-141"></a>141</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result.linfo.inInference = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-142"></a>142</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-143"></a>143</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-144"></a>144</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-145"></a>145</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function finish(me::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-146"></a>146</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # prepare to run optimization passes on fulltree
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-147"></a>147</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if me.limited &amp;&amp; me.cached &amp;&amp; me.parent !== nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-148"></a>148</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # a top parent will be cached still, but not this intermediate work
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-149"></a>149</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # we can throw everything else away now
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-150"></a>150</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        me.cached = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-151"></a>151</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        me.linfo.inInference = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-152"></a>152</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        me.src.inlineable = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-153"></a>153</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-154"></a>154</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # annotate fulltree with type information
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-155"></a>155</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        type_annotate!(me)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-156"></a>156</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        run_optimizer = (me.cached || me.parent !== nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-157"></a>157</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if run_optimizer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-158"></a>158</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # construct the optimizer for later use, if we&#39;re building this IR to cache it
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-159"></a>159</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # (otherwise, we&#39;ll run the optimization passes later, outside of inference)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-160"></a>160</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            opt = OptimizationState(me)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-161"></a>161</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            me.result.src = opt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-162"></a>162</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-163"></a>163</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-164"></a>164</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    me.result.result = me.bestguess
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-165"></a>165</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-166"></a>166</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-167"></a>167</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-168"></a>168</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function finish(src::CodeInfo)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-169"></a>169</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # convert all type information into the form consumed by the cache for inlining and code-generation
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-170"></a>170</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    widen_all_consts!(src)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-171"></a>171</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    src.inferred = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-172"></a>172</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-173"></a>173</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-174"></a>174</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-175"></a>175</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function finalize_backedges(me::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-176"></a>176</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # update all of the (cycle) callers with real backedges
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-177"></a>177</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # by traversing the temporary list of backedges
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-178"></a>178</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for (i, _) in me.cycle_backedges
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-179"></a>179</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        add_backedge!(me.linfo, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-180"></a>180</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-181"></a>181</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-182"></a>182</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # finalize and record the linfo result
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-183"></a>183</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    me.inferred = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-184"></a>184</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-185"></a>185</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-186"></a>186</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-187"></a>187</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># add the real backedges
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-188"></a>188</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function store_backedges(frame::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-189"></a>189</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    toplevel = !isa(frame.linfo.def, Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-190"></a>190</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !toplevel &amp;&amp; (frame.cached || frame.parent !== nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-191"></a>191</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        caller = frame.result.linfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-192"></a>192</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for edges in frame.stmt_edges
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-193"></a>193</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            i = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-194"></a>194</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            while i &lt;= length(edges)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-195"></a>195</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                to = edges[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-196"></a>196</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if isa(to, MethodInstance)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-197"></a>197</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    ccall(:jl_method_instance_add_backedge, Cvoid, (Any, Any), to, caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-198"></a>198</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    i += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-199"></a>199</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-200"></a>200</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    typeassert(to, Core.MethodTable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-201"></a>201</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    typ = edges[i + 1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-202"></a>202</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    ccall(:jl_method_table_add_backedge, Cvoid, (Any, Any, Any), to, typ, caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-203"></a>203</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    i += 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-204"></a>204</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-205"></a>205</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-206"></a>206</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-207"></a>207</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-208"></a>208</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-209"></a>209</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-210"></a>210</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># widen all Const elements in type annotations
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-211"></a>211</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function widen_all_consts!(src::CodeInfo)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-212"></a>212</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:length(src.ssavaluetypes)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-213"></a>213</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        src.ssavaluetypes[i] = widenconst(src.ssavaluetypes[i])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-214"></a>214</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-215"></a>215</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-216"></a>216</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:length(src.code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-217"></a>217</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        x = src.code[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-218"></a>218</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(x, PiNode)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-219"></a>219</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            src.code[i] = PiNode(x.val, widenconst(x.typ))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-220"></a>220</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-221"></a>221</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-222"></a>222</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-223"></a>223</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return src
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-224"></a>224</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-225"></a>225</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-226"></a>226</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">maybe_widen_conditional(@nospecialize vt) = vt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-227"></a>227</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function maybe_widen_conditional(vt::Conditional)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-228"></a>228</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if vt.vtype === Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-229"></a>229</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Const(false)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-230"></a>230</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif vt.elsetype === Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-231"></a>231</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Const(true)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-232"></a>232</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-233"></a>233</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Bool
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-234"></a>234</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-235"></a>235</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-236"></a>236</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-237"></a>237</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function annotate_slot_load!(e::Expr, vtypes::VarTable, sv::InferenceState, undefs::Array{Bool,1})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-238"></a>238</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    head = e.head
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-239"></a>239</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i0 = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-240"></a>240</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if is_meta_expr_head(head) || head === :const
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-241"></a>241</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-242"></a>242</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-243"></a>243</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if head === :(=) || head === :method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-244"></a>244</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i0 = 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-245"></a>245</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-246"></a>246</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = i0:length(e.args)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-247"></a>247</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        subex = e.args[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-248"></a>248</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(subex, Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-249"></a>249</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            annotate_slot_load!(subex, vtypes, sv, undefs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-250"></a>250</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        elseif isa(subex, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-251"></a>251</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            e.args[i] = visit_slot_load!(subex, vtypes, sv, undefs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-252"></a>252</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-253"></a>253</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-254"></a>254</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-255"></a>255</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-256"></a>256</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function visit_slot_load!(sl::Slot, vtypes::VarTable, sv::InferenceState, undefs::Array{Bool,1})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-257"></a>257</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    id = slot_id(sl)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-258"></a>258</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    s = vtypes[id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-259"></a>259</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    vt = maybe_widen_conditional(s.typ)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-260"></a>260</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if s.undef
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-261"></a>261</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # find used-undef variables
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-262"></a>262</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        undefs[id] = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-263"></a>263</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-264"></a>264</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # add type annotations where needed
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-265"></a>265</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !(sv.slottypes[id] ⊑ vt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-266"></a>266</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return TypedSlot(id, vt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-267"></a>267</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-268"></a>268</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return sl
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-269"></a>269</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-270"></a>270</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-271"></a>271</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function record_slot_assign!(sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-272"></a>272</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # look at all assignments to slots
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-273"></a>273</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # and union the set of types stored there
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-274"></a>274</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # to compute a lower bound on the storage required
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-275"></a>275</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    states = sv.stmt_types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-276"></a>276</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    body = sv.src.code::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-277"></a>277</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    slottypes = sv.slottypes::Vector{Any}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-278"></a>278</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:length(body)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-279"></a>279</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        expr = body[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-280"></a>280</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        st_i = states[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-281"></a>281</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # find all reachable assignments to locals
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-282"></a>282</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(st_i, VarTable) &amp;&amp; isa(expr, Expr) &amp;&amp; expr.head === :(=)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-283"></a>283</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            lhs = expr.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-284"></a>284</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rhs = expr.args[2]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-285"></a>285</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(lhs, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-286"></a>286</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                vt = widenconst(sv.src.ssavaluetypes[i])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-287"></a>287</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if vt !== Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-288"></a>288</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    id = slot_id(lhs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-289"></a>289</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    otherTy = slottypes[id]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-290"></a>290</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if otherTy === Bottom
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-291"></a>291</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        slottypes[id] = vt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-292"></a>292</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    elseif otherTy === Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-293"></a>293</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        slottypes[id] = Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-294"></a>294</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-295"></a>295</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        slottypes[id] = tmerge(otherTy, vt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-296"></a>296</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-297"></a>297</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-298"></a>298</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-299"></a>299</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-300"></a>300</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-301"></a>301</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-302"></a>302</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-303"></a>303</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># annotate types of all symbols in AST
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-304"></a>304</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function type_annotate!(sv::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-305"></a>305</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # delete dead statements only if we&#39;re building this IR to cache it
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-306"></a>306</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # (otherwise, we&#39;ll run the optimization passes later, outside of inference)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-307"></a>307</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    run_optimizer = (sv.cached || sv.parent !== nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-308"></a>308</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-309"></a>309</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # remove all unused ssa values
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-310"></a>310</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    gt = sv.src.ssavaluetypes
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-311"></a>311</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for j = 1:length(gt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-312"></a>312</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if gt[j] === NOT_FOUND
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-313"></a>313</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            gt[j] = Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-314"></a>314</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-315"></a>315</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        gt[j] = maybe_widen_conditional(gt[j])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-316"></a>316</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-317"></a>317</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-318"></a>318</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # compute the required type for each slot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-319"></a>319</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # to hold all of the items assigned into it
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-320"></a>320</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    record_slot_assign!(sv)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-321"></a>321</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-322"></a>322</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # annotate variables load types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-323"></a>323</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # remove dead code optimization
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-324"></a>324</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # and compute which variables may be used undef
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-325"></a>325</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    src = sv.src
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-326"></a>326</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    states = sv.stmt_types
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-327"></a>327</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nargs = sv.nargs
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-328"></a>328</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nslots = length(states[1])
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-329"></a>329</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    undefs = fill(false, nslots)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-330"></a>330</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    body = src.code::Array{Any,1}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-331"></a>331</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nexpr = length(body)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-332"></a>332</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-333"></a>333</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # replace gotoifnot with its condition if the branch target is unreachable
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-334"></a>334</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:nexpr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-335"></a>335</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        expr = body[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-336"></a>336</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(expr, Expr) &amp;&amp; expr.head === :gotoifnot
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-337"></a>337</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            tgt = expr.args[2]::Int
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-338"></a>338</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !isa(states[tgt], VarTable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-339"></a>339</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                body[i] = expr.args[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-340"></a>340</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-341"></a>341</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-342"></a>342</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-343"></a>343</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-344"></a>344</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    i = 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-345"></a>345</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    oldidx = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-346"></a>346</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    changemap = fill(0, nexpr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-347"></a>347</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-348"></a>348</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while i &lt;= nexpr
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-349"></a>349</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        oldidx += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-350"></a>350</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        st_i = states[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-351"></a>351</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        expr = body[i]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-352"></a>352</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(st_i, VarTable)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-353"></a>353</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # st_i === ()  =&gt;  unreached statement  (see issue #7836)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-354"></a>354</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(expr, Expr)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-355"></a>355</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                annotate_slot_load!(expr, st_i, sv, undefs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-356"></a>356</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif isa(expr, Slot)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-357"></a>357</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                body[i] = visit_slot_load!(expr, st_i, sv, undefs)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-358"></a>358</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-359"></a>359</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-360"></a>360</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isa(expr, Expr) &amp;&amp; is_meta_expr_head(expr.head)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-361"></a>361</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                # keep any lexically scoped expressions
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-362"></a>362</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            elseif run_optimizer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-363"></a>363</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                deleteat!(body, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-364"></a>364</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                deleteat!(states, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-365"></a>365</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                deleteat!(src.ssavaluetypes, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-366"></a>366</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                deleteat!(src.codelocs, i)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-367"></a>367</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                nexpr -= 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-368"></a>368</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if oldidx &lt; length(changemap)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-369"></a>369</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    changemap[oldidx + 1] = -1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-370"></a>370</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-371"></a>371</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                continue
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-372"></a>372</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-373"></a>373</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                body[i] = Const(expr) # annotate that this statement actually is dead
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-374"></a>374</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-375"></a>375</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-376"></a>376</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i += 1
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-377"></a>377</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-378"></a>378</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-379"></a>379</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if run_optimizer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-380"></a>380</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        renumber_ir_elements!(body, changemap)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-381"></a>381</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-382"></a>382</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-383"></a>383</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # finish marking used-undef variables
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-384"></a>384</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for j = 1:nslots
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-385"></a>385</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if undefs[j]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-386"></a>386</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            src.slotflags[j] |= SLOT_USEDUNDEF | SLOT_STATICUNDEF
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-387"></a>387</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-388"></a>388</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-389"></a>389</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-390"></a>390</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-391"></a>391</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-392"></a>392</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># at the end, all items in b&#39;s cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-393"></a>393</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># will now be added to a&#39;s cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-394"></a>394</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function union_caller_cycle!(a::InferenceState, b::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-395"></a>395</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    callers_in_cycle = b.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-396"></a>396</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b.parent = a.parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-397"></a>397</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    b.callers_in_cycle = a.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-398"></a>398</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    contains_is(a.callers_in_cycle, b) || push!(a.callers_in_cycle, b)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-399"></a>399</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if callers_in_cycle !== a.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-400"></a>400</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for caller in callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-401"></a>401</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if caller !== b
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-402"></a>402</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                caller.parent = a.parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-403"></a>403</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                caller.callers_in_cycle = a.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-404"></a>404</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                push!(a.callers_in_cycle, caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-405"></a>405</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-406"></a>406</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-407"></a>407</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-408"></a>408</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-409"></a>409</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-410"></a>410</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-411"></a>411</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function merge_call_chain!(parent::InferenceState, ancestor::InferenceState, child::InferenceState, limited::Bool)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-412"></a>412</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # add backedge of parent &lt;- child
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-413"></a>413</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # then add all backedges of parent &lt;- parent.parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-414"></a>414</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # and merge all of the callers into ancestor.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-415"></a>415</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    # and ensure that walking the parent list will get the same result (DAG) from everywhere
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-416"></a>416</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-417"></a>417</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        add_cycle_backedge!(child, parent, parent.currpc)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-418"></a>418</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        union_caller_cycle!(ancestor, child)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-419"></a>419</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        child = parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-420"></a>420</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        parent = child.parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-421"></a>421</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        child === ancestor &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-422"></a>422</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-423"></a>423</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if limited
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-424"></a>424</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for caller in ancestor.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-425"></a>425</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            caller.limited = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-426"></a>426</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-427"></a>427</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-428"></a>428</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-429"></a>429</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-430"></a>430</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># Walk through `linfo`&#39;s upstream call chain, starting at `parent`. If a parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-431"></a>431</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># frame matching `linfo` is encountered, then there is a cycle in the call graph
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-432"></a>432</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># (i.e. `linfo` is a descendant callee of itself). Upon encountering this cycle,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-433"></a>433</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># we &quot;resolve&quot; it by merging the call chain, which entails unioning each intermediary
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-434"></a>434</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># frame&#39;s `callers_in_cycle` field and adding the appropriate backedges. Finally,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-435"></a>435</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># we return `linfo`&#39;s pre-existing frame. If no cycles are found, `nothing` is
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-436"></a>436</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># returned instead.
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-437"></a>437</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function resolve_call_cycle!(linfo::MethodInstance, parent::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-438"></a>438</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame = parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-439"></a>439</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    uncached = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-440"></a>440</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    limited = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-441"></a>441</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    while isa(frame, InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-442"></a>442</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        uncached |= !frame.cached # ensure we never add an uncached frame to a cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-443"></a>443</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        limited |= frame.limited
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-444"></a>444</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if frame.linfo === linfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-445"></a>445</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            uncached &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-446"></a>446</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            merge_call_chain!(parent, frame, frame, limited)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-447"></a>447</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return frame
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-448"></a>448</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-449"></a>449</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for caller in frame.callers_in_cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-450"></a>450</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if caller.linfo === linfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-451"></a>451</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                uncached &amp;&amp; return true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-452"></a>452</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                merge_call_chain!(parent, frame, caller, limited)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-453"></a>453</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return caller
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-454"></a>454</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-455"></a>455</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-456"></a>456</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        frame = frame.parent
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-457"></a>457</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-458"></a>458</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-459"></a>459</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-460"></a>460</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-461"></a>461</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># compute (and cache) an inferred AST and return the current best estimate of the result type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-462"></a>462</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function typeinf_edge(method::Method, @nospecialize(atypes), sparams::SimpleVector, caller::InferenceState)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-463"></a>463</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code = code_for_method(method, atypes, sparams, caller.params.world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-464"></a>464</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code === nothing &amp;&amp; return Any, nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-465"></a>465</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code = code::MethodInstance
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-466"></a>466</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isdefined(code, :inferred)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-467"></a>467</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # return rettype if the code is already inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-468"></a>468</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # staged functions make this hard since they have two &quot;inferred&quot; conditions,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-469"></a>469</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # so need to check whether the code itself is also inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-470"></a>470</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        inf = code.inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-471"></a>471</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if !isa(inf, CodeInfo) || (inf::CodeInfo).inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-472"></a>472</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if isdefined(code, :inferred_const)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-473"></a>473</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return AbstractEvalConstant(code.inferred_const), code
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-474"></a>474</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-475"></a>475</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return code.rettype, code
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-476"></a>476</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-477"></a>477</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-478"></a>478</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-479"></a>479</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if !caller.cached &amp;&amp; caller.parent === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-480"></a>480</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # this caller exists to return to the user
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-481"></a>481</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # (if we asked resolve_call_cyle, it might instead detect that there is a cycle that it can&#39;t merge)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-482"></a>482</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        frame = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-483"></a>483</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-484"></a>484</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        frame = resolve_call_cycle!(code, caller)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-485"></a>485</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-486"></a>486</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if frame === false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-487"></a>487</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # completely new
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-488"></a>488</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        code.inInference = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-489"></a>489</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result = InferenceResult(code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-490"></a>490</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        frame = InferenceState(result, #=cached=#true, caller.params) # always use the cache for edge targets
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-491"></a>491</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if frame === nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-492"></a>492</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # can&#39;t get the source for this, so we know nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-493"></a>493</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            code.inInference = false
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-494"></a>494</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            return Any, nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-495"></a>495</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-496"></a>496</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if caller.cached || caller.limited # don&#39;t involve uncached functions in cycle resolution
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-497"></a>497</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            frame.parent = caller
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-498"></a>498</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-499"></a>499</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        typeinf(frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-500"></a>500</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return frame.bestguess, frame.inferred ? frame.linfo : nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-501"></a>501</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    elseif frame === true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-502"></a>502</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # unresolvable cycle
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-503"></a>503</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Any, nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-504"></a>504</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-505"></a>505</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame = frame::InferenceState
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-506"></a>506</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return frame.bestguess, nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-507"></a>507</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-508"></a>508</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-509"></a>509</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-510"></a>510</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">#### entry points for inferring a MethodInstance given a type signature ####
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-511"></a>511</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-512"></a>512</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># compute an inferred AST and return type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-513"></a>513</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function typeinf_code(method::Method, @nospecialize(atypes), sparams::SimpleVector, run_optimizer::Bool, params::Params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-514"></a>514</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code = code_for_method(method, atypes, sparams, params.world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-515"></a>515</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code === nothing &amp;&amp; return (nothing, Any)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-516"></a>516</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_typeinf_begin, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-517"></a>517</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    result = InferenceResult(code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-518"></a>518</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame = InferenceState(result, false, params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-519"></a>519</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame === nothing &amp;&amp; return (nothing, Any)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-520"></a>520</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if typeinf(frame) &amp;&amp; run_optimizer
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-521"></a>521</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        opt = OptimizationState(frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-522"></a>522</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        optimize(opt, result.result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-523"></a>523</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        opt.src.inferred = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-524"></a>524</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-525"></a>525</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_typeinf_end, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-526"></a>526</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame.inferred || return (nothing, Any)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-527"></a>527</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return (frame.src, widenconst(result.result))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-528"></a>528</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-529"></a>529</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-530"></a>530</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># compute (and cache) an inferred AST and return type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-531"></a>531</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-typeinfer-jl-typeinf_ext-531"></a>
+              3 (8.11%) samples spent in typeinf_ext<br />
+              0 (ex.),
+              3 (100.00%) (incl.)
+              when called from
+              typeinf_ext
+              <a href="typeinfer-jl-14b2448d998dfdb61460-line.html#Ltypeinfer-jl-14b2448d998dfdb61460-line.html-611">line 611</a><br />
+            </div>
+            <span class="code">function typeinf_ext(linfo::MethodInstance, params::Params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-532"></a>532</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:2 # test-and-lock-and-test
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-533"></a>533</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i == 2 &amp;&amp; ccall(:jl_typeinf_begin, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-534"></a>534</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isdefined(linfo, :inferred)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-535"></a>535</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # see if this code already exists in the cache
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-536"></a>536</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # staged functions make this hard since they have two &quot;inferred&quot; conditions,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-537"></a>537</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # so need to check whether the code itself is also inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-538"></a>538</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if min_world(linfo) &lt;= params.world &lt;= max_world(linfo)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-539"></a>539</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                inf = linfo.inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-540"></a>540</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                if invoke_api(linfo) == 2
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-541"></a>541</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    method = linfo.def::Method
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-542"></a>542</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree = ccall(:jl_new_code_info_uninit, Ref{CodeInfo}, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-543"></a>543</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.code = Any[ Expr(:return, quoted(linfo.inferred_const)) ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-544"></a>544</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.method_for_inference_limit_heuristics = nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-545"></a>545</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.slotnames = Any[ COMPILER_TEMP_SYM for i = 1:method.nargs ]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-546"></a>546</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.slotflags = fill(0x00, Int(method.nargs))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-547"></a>547</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.ssavaluetypes = 0
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-548"></a>548</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.codelocs = Int32[1]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-549"></a>549</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.linetable = [LineInfoNode(method.module, method.name, method.file, Int(method.line), 0)]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-550"></a>550</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.inferred = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-551"></a>551</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.ssaflags = UInt8[]
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-552"></a>552</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.pure = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-553"></a>553</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    tree.inlineable = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-554"></a>554</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    i == 2 &amp;&amp; ccall(:jl_typeinf_end, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-555"></a>555</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    return svec(linfo, tree)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-556"></a>556</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif isa(inf, CodeInfo)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-557"></a>557</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if inf.inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-558"></a>558</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        i == 2 &amp;&amp; ccall(:jl_typeinf_end, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-559"></a>559</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        return svec(linfo, inf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-560"></a>560</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-561"></a>561</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                elseif isa(inf, Vector{UInt8})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-562"></a>562</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    inf = uncompressed_ast(linfo.def::Method, inf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-563"></a>563</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    if inf.inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-564"></a>564</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        i == 2 &amp;&amp; ccall(:jl_typeinf_end, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-565"></a>565</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                        return svec(linfo, inf)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-566"></a>566</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-567"></a>567</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-568"></a>568</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-569"></a>569</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-570"></a>570</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-571"></a>571</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    linfo.inInference = true
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-572"></a>572</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame = InferenceState(InferenceResult(linfo), #=cached=#true, params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-573"></a>573</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame === nothing &amp;&amp; return svec(nothing, nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-574"></a>574</td>
+          <td></td>
+          <td>3 (8.11%)</td>
+          <td>
+            <div class="callees">
+              3 (100.00%)
+              samples spent calling
+              <a href="typeinfer-jl-14b2448d998dfdb61460-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-typeinfer-jl-typeinf-13">typeinf</a><br />
+            </div>
+            <span class="code">    typeinf(frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-575"></a>575</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_typeinf_end, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-576"></a>576</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame.src.inferred || return svec(nothing, nothing)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-577"></a>577</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return svec(frame.result.linfo, frame.src)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-578"></a>578</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-579"></a>579</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-580"></a>580</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code"># compute (and cache) an inferred AST and return the inferred return type
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-581"></a>581</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function typeinf_type(method::Method, @nospecialize(atypes), sparams::SimpleVector, params::Params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-582"></a>582</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if contains_is(unwrap_unionall(atypes).parameters, Union{})
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-583"></a>583</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-584"></a>584</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-585"></a>585</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code = code_for_method(method, atypes, sparams, params.world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-586"></a>586</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code === nothing &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-587"></a>587</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    code = code::MethodInstance
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-588"></a>588</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    for i = 1:2 # test-and-lock-and-test
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-589"></a>589</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        i == 2 &amp;&amp; ccall(:jl_typeinf_begin, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-590"></a>590</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isdefined(code, :inferred)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-591"></a>591</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # see if this rettype already exists in the cache
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-592"></a>592</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # staged functions make this hard since they have two &quot;inferred&quot; conditions,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-593"></a>593</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            # so need to check whether the code itself is also inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-594"></a>594</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            inf = code.inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-595"></a>595</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            if !isa(inf, CodeInfo) || (inf::CodeInfo).inferred
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-596"></a>596</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                i == 2 &amp;&amp; ccall(:jl_typeinf_end, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-597"></a>597</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                return code.rettype
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-598"></a>598</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-599"></a>599</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-600"></a>600</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-601"></a>601</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame = InferenceResult(code)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-602"></a>602</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    typeinf(frame, true, params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-603"></a>603</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    ccall(:jl_typeinf_end, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-604"></a>604</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    frame.result isa InferenceState &amp;&amp; return nothing
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-605"></a>605</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return widenconst(frame.result)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-606"></a>606</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-607"></a>607</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-608"></a>608</td>
+          <td></td>
+          <td></td>
+          <td>
+            <div class="call-sites">
+              <a name="S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-typeinfer-jl-typeinf_ext-608"></a>
+              3 (8.11%) samples spent in typeinf_ext<br />
+              0 (ex.),
+              3 (100.00%) (incl.)
+              when called from
+              StringVector
+              <a href="string-jl-d20bff96b5e2c46b112e-line.html#Lstring-jl-d20bff96b5e2c46b112e-line.html-71">line 71</a><br />
+            </div>
+            <span class="code">@timeit function typeinf_ext(linfo::MethodInstance, world::UInt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-609"></a>609</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(linfo.def, Method)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-610"></a>610</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # method lambda - infer this specialization via the method cache
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-611"></a>611</td>
+          <td></td>
+          <td>3 (8.11%)</td>
+          <td>
+            <div class="callees">
+              3 (100.00%)
+              samples spent calling
+              <a href="typeinfer-jl-14b2448d998dfdb61460-line.html#S-home-simsc266-TDDE45-lab5-lab5-metaprogramming-and-debugging-lab-julia-julia-1-0-4-bin-share-julia-base-compiler-typeinfer-jl-typeinf_ext-531">typeinf_ext</a><br />
+            </div>
+            <span class="code">        return typeinf_ext(linfo, Params(world))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-612"></a>612</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-613"></a>613</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        # toplevel lambda - infer directly
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-614"></a>614</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:jl_typeinf_begin, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-615"></a>615</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        result = InferenceResult(linfo)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-616"></a>616</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        frame = InferenceState(result, linfo.inferred::CodeInfo,
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-617"></a>617</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">                               #=cached=#true, Params(world))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-618"></a>618</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        typeinf(frame)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-619"></a>619</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        ccall(:jl_typeinf_end, Cvoid, ())
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-620"></a>620</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @assert frame.inferred # TODO: deal with this better
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-621"></a>621</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        @assert frame.linfo === linfo
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-622"></a>622</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        linfo.rettype = widenconst(frame.bestguess)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-623"></a>623</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        return svec(linfo, frame.src)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-624"></a>624</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-625"></a>625</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-626"></a>626</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-627"></a>627</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-628"></a>628</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">function return_type(@nospecialize(f), @nospecialize(t))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-629"></a>629</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    params = Params(ccall(:jl_get_tls_world_age, UInt, ()))
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-630"></a>630</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    rt = Union{}
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-631"></a>631</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    if isa(f, Builtin)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-632"></a>632</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        rt = builtin_tfunction(f, Any[t.parameters...], nothing, params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-633"></a>633</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        if isa(rt, TypeVar)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-634"></a>634</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rt = rt.ub
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-635"></a>635</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-636"></a>636</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rt = widenconst(rt)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-637"></a>637</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-638"></a>638</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    else
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-639"></a>639</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        for m in _methods(f, t, -1, params.world)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-640"></a>640</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ty = typeinf_type(m[3], m[1], m[2], params)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-641"></a>641</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            ty === nothing &amp;&amp; return Any
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-642"></a>642</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rt = tmerge(rt, ty)
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-643"></a>643</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">            rt === Any &amp;&amp; break
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-644"></a>644</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">        end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-645"></a>645</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    end
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-646"></a>646</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">    return rt
+</span>
+          </td>
+        </tr>
+
+        <tr>
+          <td><a name="Ltypeinfer-jl-14b2448d998dfdb61460-line.html-647"></a>647</td>
+          <td></td>
+          <td></td>
+          <td>
+            <span class="code">end
+</span>
+          </td>
+        </tr>
+      </table>
+    </div>
+  </body>
+</html>
diff --git a/profiling/statprof/zoomable_stacks.attrs b/profiling/statprof/zoomable_stacks.attrs
new file mode 100644
index 0000000000000000000000000000000000000000..e50c76c29407f56ad69cecd2d97e10603c509405
--- /dev/null
+++ b/profiling/statprof/zoomable_stacks.attrs
@@ -0,0 +1,56 @@
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:+:803	function=+
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./loading.jl:include_relative:1035	function=include_relative
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:string:155	function=string
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./sysimg.jl:include:22	function=include
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl:normalize:48	function=normalize
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./array.jl:_deleteend!:823	function=_deleteend!
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:StringVector:71	function=StringVector
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./boot.jl:include:317	function=include
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/profiling/test.jl:f:7	function=f
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./gcutils.jl:write:163	function=write
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:165	function=print
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:ensureroom:293	function=ensureroom
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/bignums.jl:compare:474	function=compare
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./libuv.jl:process_events:98	function=process_events
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print_to_string:111	function=print_to_string
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:28	function=print
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:roundweed:34	function=roundweed
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:fastshortest:105	function=fastshortest
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:_string_n:60	function=_string_n
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./coreio.jl:print:2	function=print
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:exec_options:193	function=exec_options
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:grisu:52	function=grisu
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:show:151	function=show
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/fastshortest.jl:digitgen:64	function=digitgen
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/bignums.jl:dividemodulointbignum!:420	function=dividemodulointbignum!
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:*:54	function=*
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:>>:448	function=>>
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./client.jl:_start:420	function=_start
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:tostr_sizehint:106	function=tostr_sizehint
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl:>>:603	function=>>
+nothing:Type	function=Type
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./event.jl:wait:243	function=wait
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl:normalizedbound:120	function=normalizedbound
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/io.jl:print:166	function=print
+/buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v1.0/Profile/src/Profile.jl:top-level scope:25	function=top-level scope
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:div	function=div
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:#IOBuffer#302:111	function=#IOBuffer#302
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./gcutils.jl:print:165	function=print
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./promotion.jl:==:425	function===
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/float.jl:binexp_cache:253	function=binexp_cache
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./stream.jl:uv_write:773	function=uv_write
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:+:53	function=+
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:>>:442	function=>>
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:StringVector:31	function=StringVector
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./grisu/grisu.jl:_show:89	function=_show
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./array.jl:resize!:1011	function=resize!
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:Type:39	function=Type
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:lastindex:110	function=lastindex
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl:>:286	function=>
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./io.jl:unsafe_write:509	function=unsafe_write
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./stream.jl:unsafe_write:828	function=unsafe_write
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:==:432	function===
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./strings/string.jl:_thisind_str:113	function=_thisind_str
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./iobuffer.jl:unsafe_write:401	function=unsafe_write
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:<:427	function=<
+/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:<:49	function=<
diff --git a/profiling/statprof/zoomable_stacks_by_time.svg b/profiling/statprof/zoomable_stacks_by_time.svg
new file mode 100644
index 0000000000000000000000000000000000000000..01ab7c2e8fdee85c881866fcfff6e3f4487906cf
--- /dev/null
+++ b/profiling/statprof/zoomable_stacks_by_time.svg
@@ -0,0 +1,587 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg version="1.1" width="1200" height="386" onload="init(evt)" viewBox="0 0 1200 386" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<!-- Flame graph stack visualization. See https://github.com/brendangregg/FlameGraph for latest version, and http://www.brendangregg.com/flamegraphs.html for examples. -->
+<defs >
+	<linearGradient id="background" y1="0" y2="1" x1="0" x2="0" >
+		<stop stop-color="#eeeeee" offset="5%" />
+		<stop stop-color="#eeeeb0" offset="95%" />
+	</linearGradient>
+</defs>
+<style type="text/css">
+	.func_g:hover { stroke:black; stroke-width:0.5; cursor:pointer; }
+</style>
+<script type="text/ecmascript">
+<![CDATA[
+	var details, searchbtn, matchedtxt, svg;
+	function init(evt) { 
+		details = document.getElementById("details").firstChild; 
+		searchbtn = document.getElementById("search");
+		matchedtxt = document.getElementById("matched");
+		svg = document.getElementsByTagName("svg")[0];
+		searching = 0;
+	}
+
+	// mouse-over for info
+	function s(node) {		// show
+		info = g_to_text(node);
+		details.nodeValue = "sub " + info;
+	}
+	function c() {			// clear
+		details.nodeValue = ' ';
+	}
+
+	// ctrl-F for search
+	window.addEventListener("keydown",function (e) {
+		if (e.keyCode === 114 || (e.ctrlKey && e.keyCode === 70)) {
+			e.preventDefault();
+			search_prompt();
+		}
+	})
+
+	// functions
+	function find_child(parent, name, attr) {
+		var children = parent.childNodes;
+		for (var i=0; i<children.length;i++) {
+			if (children[i].tagName == name)
+				return (attr != undefined) ? children[i].attributes[attr].value : children[i];
+		}
+		return;
+	}
+	function orig_save(e, attr, val) {
+		if (e.attributes["_orig_"+attr] != undefined) return;
+		if (e.attributes[attr] == undefined) return;
+		if (val == undefined) val = e.attributes[attr].value;
+		e.setAttribute("_orig_"+attr, val);
+	}
+	function orig_load(e, attr) {
+		if (e.attributes["_orig_"+attr] == undefined) return;
+		e.attributes[attr].value = e.attributes["_orig_"+attr].value;
+		e.removeAttribute("_orig_"+attr);
+	}
+	function g_to_text(e) {
+		var text = find_child(e, "title").firstChild.nodeValue;
+		return (text)
+	}
+	function g_to_func(e) {
+		var func = g_to_text(e);
+		if (func != null)
+			func = func.replace(/ .*/, "");
+		return (func);
+	}
+	function update_text(e) {
+		var r = find_child(e, "rect");
+		var t = find_child(e, "text");
+		var w = parseFloat(r.attributes["width"].value) -3;
+		var txt = find_child(e, "title").textContent.replace(/\([^(]*\)$/,"");
+		t.attributes["x"].value = parseFloat(r.attributes["x"].value) +3;
+		
+		// Smaller than this size won't fit anything
+		if (w < 2*12*0.59) {
+			t.textContent = "";
+			return;
+		}
+		
+		t.textContent = txt;
+		// Fit in full text width
+		if (/^ *$/.test(txt) || t.getSubStringLength(0, txt.length) < w)
+			return;
+		
+		for (var x=txt.length-2; x>0; x--) {
+			if (t.getSubStringLength(0, x+2) <= w) { 
+				t.textContent = txt.substring(0,x) + "..";
+				return;
+			}
+		}
+		t.textContent = "";
+	}
+
+	// zoom
+	function zoom_reset(e) {
+		if (e.attributes != undefined) {
+			orig_load(e, "x");
+			orig_load(e, "width");
+		}
+		if (e.childNodes == undefined) return;
+		for(var i=0, c=e.childNodes; i<c.length; i++) {
+			zoom_reset(c[i]);
+		}
+	}
+	function zoom_child(e, x, ratio) {
+		if (e.attributes != undefined) {
+			if (e.attributes["x"] != undefined) {
+				orig_save(e, "x");
+				e.attributes["x"].value = (parseFloat(e.attributes["x"].value) - x - 10) * ratio + 10;
+				if(e.tagName == "text") e.attributes["x"].value = find_child(e.parentNode, "rect", "x") + 3;
+			}
+			if (e.attributes["width"] != undefined) {
+				orig_save(e, "width");
+				e.attributes["width"].value = parseFloat(e.attributes["width"].value) * ratio;
+			}
+		}
+		
+		if (e.childNodes == undefined) return;
+		for(var i=0, c=e.childNodes; i<c.length; i++) {
+			zoom_child(c[i], x-10, ratio);
+		}
+	}
+	function zoom_parent(e) {
+		if (e.attributes) {
+			if (e.attributes["x"] != undefined) {
+				orig_save(e, "x");
+				e.attributes["x"].value = 10;
+			}
+			if (e.attributes["width"] != undefined) {
+				orig_save(e, "width");
+				e.attributes["width"].value = parseInt(svg.width.baseVal.value) - (10*2);
+			}
+		}
+		if (e.childNodes == undefined) return;
+		for(var i=0, c=e.childNodes; i<c.length; i++) {
+			zoom_parent(c[i]);
+		}
+	}
+	function zoom(node) { 
+		var attr = find_child(node, "rect").attributes;
+		var width = parseFloat(attr["width"].value);
+		var xmin = parseFloat(attr["x"].value);
+		var xmax = parseFloat(xmin + width);
+		var ymin = parseFloat(attr["y"].value);
+		var ratio = (svg.width.baseVal.value - 2*10) / width;
+		
+		// XXX: Workaround for JavaScript float issues (fix me)
+		var fudge = 0.0001;
+		
+		var unzoombtn = document.getElementById("unzoom");
+		unzoombtn.style["opacity"] = "1.0";
+		
+		var el = document.getElementsByTagName("g");
+		for(var i=0;i<el.length;i++){
+			var e = el[i];
+			var a = find_child(e, "rect").attributes;
+			var ex = parseFloat(a["x"].value);
+			var ew = parseFloat(a["width"].value);
+			// Is it an ancestor
+			if (0 == 0) {
+				var upstack = parseFloat(a["y"].value) > ymin;
+			} else {
+				var upstack = parseFloat(a["y"].value) < ymin;
+			}
+			if (upstack) {
+				// Direct ancestor
+				if (ex <= xmin && (ex+ew+fudge) >= xmax) {
+					e.style["opacity"] = "0.5";
+					zoom_parent(e);
+					e.onclick = function(e){unzoom(); zoom(this);};
+					update_text(e);
+				}
+				// not in current path
+				else
+					e.style["display"] = "none";
+			}
+			// Children maybe
+			else {
+				// no common path
+				if (ex < xmin || ex + fudge >= xmax) {
+					e.style["display"] = "none";
+				}
+				else {
+					zoom_child(e, xmin, ratio);
+					e.onclick = function(e){zoom(this);};
+					update_text(e);
+				}
+			}
+		}
+	}
+	function unzoom() {
+		var unzoombtn = document.getElementById("unzoom");
+		unzoombtn.style["opacity"] = "0.0";
+		
+		var el = document.getElementsByTagName("g");
+		for(i=0;i<el.length;i++) {
+			el[i].style["display"] = "block";
+			el[i].style["opacity"] = "1";
+			zoom_reset(el[i]);
+			update_text(el[i]);
+		}
+	}	
+
+	// search
+	function reset_search() {
+		var el = document.getElementsByTagName("rect");
+		for (var i=0; i < el.length; i++) {
+			orig_load(el[i], "fill")
+		}
+	}
+	function search_prompt() {
+		if (!searching) {
+			var term = prompt("Enter a search term (regexp " +
+			    "allowed, eg: ^ext4_)", "");
+			if (term != null) {
+				search(term)
+			}
+		} else {
+			reset_search();
+			searching = 0;
+			searchbtn.style["opacity"] = "0.1";
+			searchbtn.firstChild.nodeValue = "Search"
+			matchedtxt.style["opacity"] = "0.0";
+			matchedtxt.firstChild.nodeValue = ""
+		}
+	}
+	function search(term) {
+		var re = new RegExp(term);
+		var el = document.getElementsByTagName("g");
+		var matches = new Object();
+		var maxwidth = 0;
+		for (var i = 0; i < el.length; i++) {
+			var e = el[i];
+			if (e.attributes["class"].value != "func_g")
+				continue;
+			var func = g_to_func(e);
+			var rect = find_child(e, "rect");
+			if (rect == null) {
+				// the rect might be wrapped in an anchor
+				// if nameattr href is being used
+				if (rect = find_child(e, "a")) {
+				    rect = find_child(r, "rect");
+				}
+			}
+			if (func == null || rect == null)
+				continue;
+
+			// Save max width. Only works as we have a root frame
+			var w = parseFloat(rect.attributes["width"].value);
+			if (w > maxwidth)
+				maxwidth = w;
+
+			if (func.match(re)) {
+				// highlight
+				var x = parseFloat(rect.attributes["x"].value);
+				orig_save(rect, "fill");
+				rect.attributes["fill"].value =
+				    "rgb(230,0,230)";
+
+				// remember matches
+				if (matches[x] == undefined) {
+					matches[x] = w;
+				} else {
+					if (w > matches[x]) {
+						// overwrite with parent
+						matches[x] = w;
+					}
+				}
+				searching = 1;
+			}
+		}
+		if (!searching)
+			return;
+
+		searchbtn.style["opacity"] = "1.0";
+		searchbtn.firstChild.nodeValue = "Reset Search"
+
+		// calculate percent matched, excluding vertical overlap
+		var count = 0;
+		var lastx = -1;
+		var lastw = 0;
+		var keys = Array();
+		for (k in matches) {
+			if (matches.hasOwnProperty(k))
+				keys.push(k);
+		}
+		// sort the matched frames by their x location
+		// ascending, then width descending
+		keys.sort(function(a, b){
+				return a - b;
+			if (a < b || a > b)
+				return a - b;
+			return matches[b] - matches[a];
+		});
+		// Step through frames saving only the biggest bottom-up frames
+		// thanks to the sort order. This relies on the tree property
+		// where children are always smaller than their parents.
+		for (var k in keys) {
+			var x = parseFloat(keys[k]);
+			var w = matches[keys[k]];
+			if (x >= lastx + lastw) {
+				count += w;
+				lastx = x;
+				lastw = w;
+			}
+		}
+		// display matched percent
+		matchedtxt.style["opacity"] = "1.0";
+		pct = 100 * count / maxwidth;
+		if (pct == 100)
+			pct = "100"
+		else
+			pct = pct.toFixed(1)
+		matchedtxt.firstChild.nodeValue = "Matched: " + pct + "%";
+	}
+	function searchover(e) {
+		searchbtn.style["opacity"] = "1.0";
+	}
+	function searchout(e) {
+		if (searching) {
+			searchbtn.style["opacity"] = "1.0";
+		} else {
+			searchbtn.style["opacity"] = "0.1";
+		}
+	}
+]]>
+</script>
+<rect x="0.0" y="0" width="1200.0" height="386.0" fill="url(#background)"  />
+<text text-anchor="middle" x="600.00" y="24" font-size="17" font-family="Verdana" fill="rgb(0,0,0)"  >Flame Graph</text>
+<text text-anchor="" x="10.00" y="369" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="details" > </text>
+<text text-anchor="" x="10.00" y="24" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="unzoom" onclick="unzoom()" style="opacity:0.0;cursor:pointer" >Reset Zoom</text>
+<text text-anchor="" x="1090.00" y="24" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="search" onmouseover="searchover()" onmouseout="searchout()" onclick="search_prompt()" style="opacity:0.1;cursor:pointer" >Search</text>
+<text text-anchor="" x="1090.00" y="369" font-size="12" font-family="Verdana" fill="rgb(0,0,0)" id="matched" > </text>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>* (1 samples, 2.38%)</title><rect x="431.4" y="65" width="28.1" height="15.0" fill="rgb(220,97,29)" rx="2" ry="2" />
+<text text-anchor="" x="434.43" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >*</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print_to_string (37 samples, 88.10%)</title><rect x="94.3" y="193" width="1039.5" height="15.0" fill="rgb(245,33,43)" rx="2" ry="2" />
+<text text-anchor="" x="97.29" y="203.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >print_to_string</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>fastshortest (11 samples, 26.19%)</title><rect x="347.1" y="97" width="309.1" height="15.0" fill="rgb(206,70,11)" rx="2" ry="2" />
+<text text-anchor="" x="350.14" y="107.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >fastshortest</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>uv_write (3 samples, 7.14%)</title><rect x="10.0" y="161" width="84.3" height="15.0" fill="rgb(220,205,19)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >uv_write</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>_string_n (5 samples, 11.90%)</title><rect x="824.8" y="129" width="140.4" height="15.0" fill="rgb(229,160,50)" rx="2" ry="2" />
+<text text-anchor="" x="827.76" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >_string_n</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>div (2 samples, 4.76%)</title><rect x="515.7" y="65" width="56.2" height="15.0" fill="rgb(242,104,14)" rx="2" ry="2" />
+<text text-anchor="" x="518.71" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >div</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>StringVector (6 samples, 14.29%)</title><rect x="965.2" y="145" width="168.6" height="15.0" fill="rgb(232,140,35)" rx="2" ry="2" />
+<text text-anchor="" x="968.24" y="155.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >StringVector</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>lastindex (1 samples, 2.38%)</title><rect x="712.4" y="161" width="28.1" height="15.0" fill="rgb(226,224,5)" rx="2" ry="2" />
+<text text-anchor="" x="715.38" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >l..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>exec_options (40 samples, 95.24%)</title><rect x="10.0" y="305" width="1123.8" height="15.0" fill="rgb(210,137,12)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="315.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >exec_options</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>wait (3 samples, 7.14%)</title><rect x="10.0" y="145" width="84.3" height="15.0" fill="rgb(210,45,29)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="155.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >wait</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>== (1 samples, 2.38%)</title><rect x="628.1" y="49" width="28.1" height="15.0" fill="rgb(249,196,34)" rx="2" ry="2" />
+<text text-anchor="" x="631.10" y="59.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >==</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>digitgen (8 samples, 19.05%)</title><rect x="375.2" y="81" width="224.8" height="15.0" fill="rgb(216,168,42)" rx="2" ry="2" />
+<text text-anchor="" x="378.24" y="91.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >digitgen</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>include (40 samples, 95.24%)</title><rect x="10.0" y="289" width="1123.8" height="15.0" fill="rgb(231,196,14)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="299.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >include</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:(:427 (1 samples, 2.38%)</title><rect x="487.6" y="65" width="28.1" height="15.0" fill="rgb(222,211,25)" rx="2" ry="2" />
+<text text-anchor="" x="490.62" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>_show (14 samples, 33.33%)</title><rect x="319.0" y="145" width="393.4" height="15.0" fill="rgb(249,118,35)" rx="2" ry="2" />
+<text text-anchor="" x="322.05" y="155.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >_show</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>all (42 samples, 100%)</title><rect x="10.0" y="337" width="1180.0" height="15.0" fill="rgb(227,47,12)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="347.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  ></text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print (1 samples, 2.38%)</title><rect x="262.9" y="177" width="28.1" height="15.0" fill="rgb(249,20,16)" rx="2" ry="2" />
+<text text-anchor="" x="265.86" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >p..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>f (40 samples, 95.24%)</title><rect x="10.0" y="225" width="1123.8" height="15.0" fill="rgb(225,149,36)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="235.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >f</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>dividemodulointbignum! (1 samples, 2.38%)</title><rect x="1161.9" y="321" width="28.1" height="15.0" fill="rgb(225,226,17)" rx="2" ry="2" />
+<text text-anchor="" x="1164.90" y="331.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >d..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>roundweed (1 samples, 2.38%)</title><rect x="403.3" y="65" width="28.1" height="15.0" fill="rgb(224,87,23)" rx="2" ry="2" />
+<text text-anchor="" x="406.33" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >r..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>binexp_cache (1 samples, 2.38%)</title><rect x="600.0" y="81" width="28.1" height="15.0" fill="rgb(240,108,23)" rx="2" ry="2" />
+<text text-anchor="" x="603.00" y="91.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >b..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>process_events (3 samples, 7.14%)</title><rect x="10.0" y="129" width="84.3" height="15.0" fill="rgb(224,197,23)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >process_e..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>+ (1 samples, 2.38%)</title><rect x="459.5" y="49" width="28.1" height="15.0" fill="rgb(227,157,27)" rx="2" ry="2" />
+<text text-anchor="" x="462.52" y="59.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >+</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:)):442 (1 samples, 2.38%)</title><rect x="571.9" y="33" width="28.1" height="15.0" fill="rgb(247,182,14)" rx="2" ry="2" />
+<text text-anchor="" x="574.90" y="43.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>unsafe_write (1 samples, 2.38%)</title><rect x="656.2" y="129" width="28.1" height="15.0" fill="rgb(212,221,44)" rx="2" ry="2" />
+<text text-anchor="" x="659.19" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >u..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>unsafe_write (1 samples, 2.38%)</title><rect x="656.2" y="113" width="28.1" height="15.0" fill="rgb(226,31,4)" rx="2" ry="2" />
+<text text-anchor="" x="659.19" y="123.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >u..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>show (14 samples, 33.33%)</title><rect x="319.0" y="161" width="393.4" height="15.0" fill="rgb(216,117,52)" rx="2" ry="2" />
+<text text-anchor="" x="322.05" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >show</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:)):448 (1 samples, 2.38%)</title><rect x="571.9" y="49" width="28.1" height="15.0" fill="rgb(236,43,23)" rx="2" ry="2" />
+<text text-anchor="" x="574.90" y="59.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>unsafe_write (1 samples, 2.38%)</title><rect x="684.3" y="97" width="28.1" height="15.0" fill="rgb(221,16,24)" rx="2" ry="2" />
+<text text-anchor="" x="687.29" y="107.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >u..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>resize! (1 samples, 2.38%)</title><rect x="234.8" y="177" width="28.1" height="15.0" fill="rgb(228,99,15)" rx="2" ry="2" />
+<text text-anchor="" x="237.76" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >r..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>Type (1 samples, 2.38%)</title><rect x="740.5" y="177" width="28.1" height="15.0" fill="rgb(230,13,7)" rx="2" ry="2" />
+<text text-anchor="" x="743.48" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >T..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>unsafe_write (1 samples, 2.38%)</title><rect x="262.9" y="145" width="28.1" height="15.0" fill="rgb(238,175,1)" rx="2" ry="2" />
+<text text-anchor="" x="265.86" y="155.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >u..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print (1 samples, 2.38%)</title><rect x="684.3" y="129" width="28.1" height="15.0" fill="rgb(246,103,2)" rx="2" ry="2" />
+<text text-anchor="" x="687.29" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >p..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>_start (40 samples, 95.24%)</title><rect x="10.0" y="321" width="1123.8" height="15.0" fill="rgb(216,157,19)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="331.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >_start</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>ensureroom (1 samples, 2.38%)</title><rect x="262.9" y="129" width="28.1" height="15.0" fill="rgb(211,146,4)" rx="2" ry="2" />
+<text text-anchor="" x="265.86" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >e..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>_deleteend! (1 samples, 2.38%)</title><rect x="234.8" y="161" width="28.1" height="15.0" fill="rgb(226,189,43)" rx="2" ry="2" />
+<text text-anchor="" x="237.76" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >_..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>include (40 samples, 95.24%)</title><rect x="10.0" y="257" width="1123.8" height="15.0" fill="rgb(206,59,22)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="267.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >include</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl:)):603 (1 samples, 2.38%)</title><rect x="571.9" y="65" width="28.1" height="15.0" fill="rgb(233,4,40)" rx="2" ry="2" />
+<text text-anchor="" x="574.90" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>grisu (12 samples, 28.57%)</title><rect x="319.0" y="129" width="337.2" height="15.0" fill="rgb(216,60,13)" rx="2" ry="2" />
+<text text-anchor="" x="322.05" y="139.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >grisu</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print (3 samples, 7.14%)</title><rect x="10.0" y="209" width="84.3" height="15.0" fill="rgb(234,183,30)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="219.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >print</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>tostr_sizehint (1 samples, 2.38%)</title><rect x="712.4" y="177" width="28.1" height="15.0" fill="rgb(222,77,3)" rx="2" ry="2" />
+<text text-anchor="" x="715.38" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >t..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>top-level scope (40 samples, 95.24%)</title><rect x="10.0" y="241" width="1123.8" height="15.0" fill="rgb(208,107,50)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="251.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >top-level scope</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print (15 samples, 35.71%)</title><rect x="291.0" y="177" width="421.4" height="15.0" fill="rgb(254,214,41)" rx="2" ry="2" />
+<text text-anchor="" x="293.95" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >print</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>StringVector (5 samples, 11.90%)</title><rect x="824.8" y="145" width="140.4" height="15.0" fill="rgb(241,12,52)" rx="2" ry="2" />
+<text text-anchor="" x="827.76" y="155.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >StringVector</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>include_relative (40 samples, 95.24%)</title><rect x="10.0" y="273" width="1123.8" height="15.0" fill="rgb(210,188,32)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="283.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >include_relative</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./int.jl:(:49 (1 samples, 2.38%)</title><rect x="656.2" y="81" width="28.1" height="15.0" fill="rgb(229,171,10)" rx="2" ry="2" />
+<text text-anchor="" x="659.19" y="91.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>+ (1 samples, 2.38%)</title><rect x="600.0" y="65" width="28.1" height="15.0" fill="rgb(205,78,21)" rx="2" ry="2" />
+<text text-anchor="" x="603.00" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >+</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>write (1 samples, 2.38%)</title><rect x="262.9" y="161" width="28.1" height="15.0" fill="rgb(252,102,14)" rx="2" ry="2" />
+<text text-anchor="" x="265.86" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >w..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>normalize (1 samples, 2.38%)</title><rect x="628.1" y="65" width="28.1" height="15.0" fill="rgb(220,60,11)" rx="2" ry="2" />
+<text text-anchor="" x="631.10" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >n..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>/home/simsc266/TDDE45/lab5/lab5-metaprogramming-and-debugging-lab/julia/julia-1.0.4/bin/../share/julia/base/./operators.jl:):286 (1 samples, 2.38%)</title><rect x="656.2" y="97" width="28.1" height="15.0" fill="rgb(238,73,43)" rx="2" ry="2" />
+<text text-anchor="" x="659.19" y="107.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >/..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>unsafe_write (3 samples, 7.14%)</title><rect x="10.0" y="177" width="84.3" height="15.0" fill="rgb(240,56,0)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >unsafe_wr..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>print (3 samples, 7.14%)</title><rect x="10.0" y="193" width="84.3" height="15.0" fill="rgb(224,187,41)" rx="2" ry="2" />
+<text text-anchor="" x="13.00" y="203.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >print</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>normalizedbound (1 samples, 2.38%)</title><rect x="628.1" y="81" width="28.1" height="15.0" fill="rgb(245,79,41)" rx="2" ry="2" />
+<text text-anchor="" x="631.10" y="91.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >n..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>string (37 samples, 88.10%)</title><rect x="94.3" y="209" width="1039.5" height="15.0" fill="rgb(240,188,35)" rx="2" ry="2" />
+<text text-anchor="" x="97.29" y="219.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >string</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>== (1 samples, 2.38%)</title><rect x="628.1" y="33" width="28.1" height="15.0" fill="rgb(243,76,40)" rx="2" ry="2" />
+<text text-anchor="" x="631.10" y="43.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >==</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>grisu (12 samples, 28.57%)</title><rect x="319.0" y="113" width="337.2" height="15.0" fill="rgb(248,92,1)" rx="2" ry="2" />
+<text text-anchor="" x="322.05" y="123.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >grisu</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>_thisind_str (1 samples, 2.38%)</title><rect x="768.6" y="177" width="28.1" height="15.0" fill="rgb(230,135,38)" rx="2" ry="2" />
+<text text-anchor="" x="771.57" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >_..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>+ (1 samples, 2.38%)</title><rect x="459.5" y="65" width="28.1" height="15.0" fill="rgb(213,178,17)" rx="2" ry="2" />
+<text text-anchor="" x="462.52" y="75.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >+</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>#IOBuffer#302 (12 samples, 28.57%)</title><rect x="796.7" y="161" width="337.1" height="15.0" fill="rgb(238,209,33)" rx="2" ry="2" />
+<text text-anchor="" x="799.67" y="171.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >#IOBuffer#302</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>Type (12 samples, 28.57%)</title><rect x="796.7" y="177" width="337.1" height="15.0" fill="rgb(218,23,48)" rx="2" ry="2" />
+<text text-anchor="" x="799.67" y="187.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >Type</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>compare (1 samples, 2.38%)</title><rect x="1133.8" y="321" width="28.1" height="15.0" fill="rgb(241,222,3)" rx="2" ry="2" />
+<text text-anchor="" x="1136.81" y="331.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >c..</text>
+</g>
+<g class="func_g" onmouseover="s(this)" onmouseout="c()" onclick="zoom(this)">
+<title>write (1 samples, 2.38%)</title><rect x="684.3" y="113" width="28.1" height="15.0" fill="rgb(232,78,27)" rx="2" ry="2" />
+<text text-anchor="" x="687.29" y="123.5" font-size="12" font-family="Verdana" fill="rgb(0,0,0)"  >w..</text>
+</g>
+</svg>
diff --git a/profiling/test.jl b/profiling/test.jl
index 9ac19b19f16b39f154c3800f23077ab3103d6343..99d691d8e8e84f04f5a6d28073b72cf8f55e9b01 100644
--- a/profiling/test.jl
+++ b/profiling/test.jl
@@ -1,14 +1,16 @@
 using Profile
 using BenchmarkTools
 using Random
+using StatProfilerHTML
 
 function f()
 	 
   lst = rand(50000)
   
   for i in lst
-   s = "List entry $(i)\r" # The \r makes it so the terminal isn't filled
+ 
     if i > 0.99
+      s = "List entry $(i)\r" # The \r makes it so the terminal isn't filled
     
       print(s)
     end
@@ -17,6 +19,7 @@ end
 
 @profile f()
 Profile.print()
+statprofilehtml()
 
 f()
 @time f()