tvl-depot/users/tazjin/presentations/tvix-eval-2023/presentation.tex
Vincent Ambo eda67bfdbe feat(tazjin/tvix-eval-2023): add link collection blog post & QR code
Makes it possible for people in the audience to get to the link
collection reasonably quickly.

Later on that post can also have the talk itself added. For now it is
unlisted.

Change-Id: If9ae1d88d3c6f22bbd70b2b3cbea0b0d42895a93
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9208
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: Mark Shevchenko <markshevchenko@gmail.com>
Tested-by: BuildkiteCI
2023-09-02 18:49:23 +00:00

148 lines
4.5 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\documentclass[12pt]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[main=russian,english]{babel}
\usepackage{fontspec}
\usepackage{listings}
\setmainfont{JetBrains Mono}
\setsansfont{JetBrains Mono}
\usetheme{metropolis}
\newenvironment{code}{\ttfamily}{\par}
\title{tvix-eval \\ компилятор и рантайм для Nix, на Rust}
\titlegraphic{\vspace{4.8cm}\flushright\includegraphics[width=6cm,keepaspectratio=true]{tvix-logo.png}}
\date{2023-09-07}
\author{Винсент Амбо}
\institute{TVL}
\begin{document}
%% Slide -1 (before counter):
\begin{frame}
\begin{center}
\titlepage
\end{center}
\end{frame}
%% Slide 0 (title):
\begin{frame}
\begin{center}
\titlepage
\end{center}
\end{frame}
%% Slide 1:
\begin{frame}{\textbf{Т}he \textbf{V}irus \textbf{L}ounge}
\begin{itemize}
\item онлайн-комьюнити, занимающееся тулингом для монорепо
\item основной фокус на Nix
\item Nix не только для сборки пакетов
\item Хотелось решение, чтобы использовать Nix везде
\end{itemize}
\end{frame}
%% Slide 2:
\begin{frame}{Особенности языка Nix}
\begin{itemize}
\item Ленивый язык. Вычислять все сразу нельзя.
\item Язык развивался органично.
\item Большинство кода на Nix --- в одном месте: \begin{code}nixpkgs\end{code}
\end{itemize}
\end{frame}
%% Slide 3:
\begin{frame}{Текущая имплементация: C++ Nix}
\lstinputlisting[
language=c++,
basicstyle={\scriptsize}
]{cppnix-example-lexer.cpp}
\end{frame}
%% Slide 4:
\begin{frame}{Текущая имплементация: C++ Nix}
\lstinputlisting[
language=c++,
basicstyle={\scriptsize}
]{cppnix-example-smuggling.cpp}
\end{frame}
%% Slide 5:
\section{``Давайте перепишем Nix!''}
%% Slide 6:
\section*{Спасибо, jD91mZM2!\\\normalsize{автор ``rnix-parser'', 2002-2021}}
%% Slide 7:
\begin{frame}{tvix-eval, - (язык) Nix, на Rust}
\begin{itemize}
\item написано с существующим парсером
\item bytecode-интерпретатор, вместо tree-walk
\item должна работать не только для остальных частей tvix
\end{itemize}
\end{frame}
%% Slide 8:
\begin{frame}{tvix-eval, основные части}
\begin{enumerate}
\item собственный байткод и компилятор
\end{enumerate}
\end{frame}
%% показать opcode.rs, быстро показать compiler/mod.rs
%% Slide 9:
\begin{frame}{tvix-eval, основные части}
\begin{enumerate}
\item собственный байткод и компилятор
\item представление значений языка в рантайме
\end{enumerate}
\end{frame}
%% показать Value
%% Slide 10:
\begin{frame}{tvix-eval, основные части}
\begin{enumerate}
\item собственный байткод и компилятор
\item представление значении языка в рантайме
\item ... и сам рантайм!
\end{enumerate}
\end{frame}
%% показать VM
\section{``Подожди, написать рантайм же не так просто?''}
%% объяснить проблему со стеком и решение, показать диаграмму
\section{``А откуда знаешь, что это все правильно работает?''}
%% показать как тесты работают
%% объяснить дебагинг, Твиксболт и тд
%% Slide 10:
\begin{frame}{tvix-eval, в браузере}
\begin{itemize}
\item удивительно легко делать
\item но есть сложности в \begin{code}std::\end{code}
% показать пример
\end{itemize}
\end{frame}
%% Slide 11:
\begin{frame}{А что дальше?}
В tvix-eval есть еще кое-какие интересные проблемы. Может ты их
решишь?
\end{frame}
\begin{frame}{Спасибо!}
\begin{center}
\includegraphics[width=6cm,keepaspectratio=true]{qrcode.png}
https://tazj.in/blog/tvix-eval-talk-2023 \\
t.me/tazjin | tazjin@tvl.su
\end{center}
\end{frame}
\end{document}