Skip to content

Commit

Permalink
wip
Browse files Browse the repository at this point in the history
  • Loading branch information
haampie committed Jun 7, 2024
1 parent 2f2b930 commit b7eb3fd
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 12 deletions.
21 changes: 21 additions & 0 deletions dist/images/create-view-venv.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 21 additions & 0 deletions dist/images/create-view.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
88 changes: 76 additions & 12 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
<section>
<img src="dist/images/logo.svg" />
<h1 class="r-fit-text">What's new in Spack?</h1>
<p>and what's to come?</p>
</section>
<section>
<h2>What's new</h2>
Expand All @@ -46,20 +47,20 @@ <h2>Compiler runtime packages</h2>
</code></pre>
</section>
<section>
<h2>What is <code>gcc-runtime</code>?</h2>
<h2>What is <code>^gcc-runtime</code>?</h2>
<ul>
<li>A Spack installed package that copies
<ul>
<li><code>libstdc++.so.6</code></li>
<li><code>libgfortran.so.5</code></li>
<li><code>libgcc_s.so.1</code></li>
<li>... etc</li>
<li>and others</li>
</ul>
</li>
</ul>
</section>
<section>
<h2>What is <code>libc</code></h2>
<h2>What is <code>^libc</code></h2>
<ul>
<li>An external-only package</li>
<li>Virtual provided by <code>glibc</code> and <code>musl</code></li>
Expand Down Expand Up @@ -88,41 +89,104 @@ <h2>But why?</h2>
<section>
<h2>Spack 0.22</h2>
<p>Compiler is still a node attribute</p>
<img src="dist/images/gcc-runtime-now.svg" />
<img class="stretch" src="dist/images/gcc-runtime-now.svg" />
</section>
<section>
<h2>Spack 0.22</h2>
<p>Compiler mixing support with <code>gcc-runtime</code></p>
<img src="dist/images/gcc-runtime-mixing.svg" width="50%" />
<img src="dist/images/gcc-runtime-mixing.svg" class="stretch" />
</section>
<section>
<h2>Spack 0.23 🔮</h2>
<p>Compiler is an ordinary node itself</p>
<img src="dist/images/gcc-runtime-future.svg" />
<img src="dist/images/gcc-runtime-future.svg" class="stretch" />
</section>
<section>
<h2>Spack 0.23 🔮</h2>
<p>Express dependencies of compilers</p>
<p><em><code>clang</code> injects a dependency on <code>libstdc++.so</code></em></p>
<p><img src="dist/images/clang-runtime.svg" width="70%" /></p>
<img src="dist/images/clang-runtime.svg" class="stretch" />
</section>
<section>
<h2>Spack 0.23 🔮</h2>
<ul>
<li>Packages can <strong>inject</strong> a runtime dependency into dependents</li>
<li>Runtimes will provide <strong>languages</strong>:
<pre><code class="spec">depends_on("cxx@2023:")</code></pre>
<li>Runtimes will provide <strong>languages</strong> (partially in 0.22):
<pre><code class="python">depends_on("fortran")</code></pre>
</li>
<li>Useful for other things than compilers</li>
<li>No compiler for data / pure Python packages</li>
<li>Runtimes for other things than compilers?</li>
</ul>
</section>
<section>
<h2>What is <code>python-venv</code>?</h2>
<pre><code data-noescape class="spec"> - [email protected]
Python's injected runtime
<pre><code data-noescape class="spec">$ spack spec py-click
- [email protected]
- ^[email protected]
- ^ ...
- ^[email protected]</code></pre>
</section>
<section>
<h2>Why <code>python-venv</code>?</h2>
<ul>
<li>The least worst solution™ for <strong>build isolation</strong></li>
<li>Spack environment views = Python venvs</li>
<li>Support external Python better</li>
</ul>
</section>
<section>
<h3>Pip and Spack are different</h3>
<ul>
<li><code>pip install</code>: all packages in a single venv dir
<pre>
<code class="bash" data-trim data-noescape>
$ ls my_venv/lib/python3.12/site-packages
black click isort
</code>
</pre></li>
<li><code>spack install</code>: all packages in a unique dir
<pre>
<code class="bash" data-trim data-noescape>
$ tree spack/opt/spack
├── python-3.12.1-eu5igwm
│ └── lib/python3.12 # standard library
├── py-black-24.3.0-c5yefsp
│ └── lib/python3.12/site-packages/black
├── py-click-8.1.7-253ikya
│ └── lib/python3.12/site-packages/click
└── py-isort-5.12.0-yupkr4p
└── lib/python3.12/site-packages/isort
</code>
</pre></li>
</ul>
</section>
<section>
<h3>Pip and Spack are different</h3>
<ul>
<li>You <code>pip install</code> packages <strong>into a venv</strong></li>
<li>You <code>spack install</code> packages <strong>into the store</strong></li>
<li class="fragment">A Spack environment can be "installed", but no files are put "in the environment"</li>
<li class="fragment">Spack <strong>environment views</strong> make them look similar</li>
</ul>
</section>
<section>
<h2>Environment views</h2>
<p>Single, flattened dir with tons of symlinks</p>
<img src="dist/images/create-view.svg" class="stretch">
</section>
<section>
<h2>environment views</h2>
<p style="font-size: 0.7em">with python-venv: <code style="color: rgb(145, 0, 0)">bin/activate</code> and <code style="color: rgb(145, 0, 0)">pyvenv.cfg</code></p>
<img src="dist/images/create-view-venv.svg" class="stretch">
</section>
<section>
<h2>What was the point again?</h2>
<ul>
<li>You can <code>source bin/activate</code></li>
<li>Editor support (completion etc)</li>
<li>You can <code>pip install</code> additional things</li>
</ul>
</section>
</section>
<section>
<h2><code>Spec highlighting</code></h2>
Expand Down

0 comments on commit b7eb3fd

Please sign in to comment.