<p dir="auto">Stolen from Python but with some differences:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="function jabberwock()
  &quot;&quot;&quot;
  'Twas brillig, and the slithy toves
  Did gyre and gimble in the wabe;
  All mimsy were the borogoves,
  And the mome raths outgrabe.
  &quot;&quot;&quot;
end

julia&gt; print(jabberwock())
'Twas brillig, and the slithy toves
Did gyre and gimble in the wabe;
All mimsy were the borogoves,
And the mome raths outgrabe.
"><pre class="notranslate"><code class="notranslate">function jabberwock()
  """
  'Twas brillig, and the slithy toves
  Did gyre and gimble in the wabe;
  All mimsy were the borogoves,
  And the mome raths outgrabe.
  """
end

julia&gt; print(jabberwock())
'Twas brillig, and the slithy toves
Did gyre and gimble in the wabe;
All mimsy were the borogoves,
And the mome raths outgrabe.

</code></pre></div>
<p dir="auto">The point of the <code class="notranslate">"""</code> construct is to make it easy to embed snippets of text or code in a readable, nice way inside of Julia code. To that end, it is similar to here documents as well as Python's multiline strings, which use the same delimiters. However, a couple of semantics make these easier to use:</p>
<ul dir="auto">
<li>If the initial <code class="notranslate">"""</code> is on a line followed only by whitespace, that whitespace (including newline) will be stripped.</li>
<li>Lines following the opening <code class="notranslate">"""</code> token must begin with the same indentation sequence (identical whitespace characters).</li>
<li>The common indentation will be stripped from each follow-up line.</li>
</ul>
<p dir="auto">After these transformations are applied, all normal string interpretation is performed. Moreover, you can prefix <code class="notranslate">"""</code> with an identifier as you can with <code class="notranslate">"</code> strings to invoke macro-based custom-string forms. Thus, a <code class="notranslate">Q"""</code> multiline string has no interpolation performed and a <code class="notranslate">r"""</code> is a multiline regex literal (should maybe automatically switch on some flags).</p>
<p dir="auto">Precompile files are currently stored only based on the UUID of the package.<br>
So if you change your project it is likely that you will have to recompile everything. And then again when you swap back etc.<br>
This will be very annoying for people trying to use multiple packages and people will likely just use one mega project like before.<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="299544081" data-permission-text="Title is private" data-url="https://github.com/JuliaLang/julia/issues/26165" data-hovercard-type="pull_request" data-hovercard-url="/JuliaLang/julia/pull/26165/hovercard" href="https://github.com/JuliaLang/julia/pull/26165">#26165</a> also removed any possibility for users to change the precompile path so there is no way to workaround this right now.</p>
<p dir="auto">We should be smarter how we save precompile file to reduce the amount of recompilation needed. A very simple system is to just use one precompile directory for each project but that might be a bit wasteful since it is theoretically possible to share compilation files between projects.</p>