-
Текст доклада: REPORT.md.
-
Домашнее задание: HOMEWORK.md
-
Слайды: slides;
-
Cлайды с RustCon: slides offline edition;
fn double(a, b) = a * b;
fn triple(a, b, c) = double(a, b) * c;
triple(1, 2 + 2, sin(3 + 3))
- Базовые математические операции: сложение, вычитание, умножение и деление.
- Функции.
- Базовые тригонометрические функции:
sin
,cos
,pi
. - Вложенный вызов функций из контекста.
- JIT.
- Базовые тригонометрические функции:
- Руководству Kribrum за выделенное время на создание этого доклада.
- Косаревой Вете за ревью текста и помощь со слайдами.
- Мартынову Василию за ревью текста.
- Максиму Татарченкову за ревью текста.
# Устанавливаем NIX:
sh <(curl -L https://nixos.org/nix/install) --no-daemon
# Создаём директорию конфигурационных файлов:
mkdir -p ~/.config/nix
# Добавляем поддержку flakes:
echo "experimental-features = flakes nix-command" >> ~/.config/nix/nix.conf
# Открываем терминал в окружении разработки:
nix develop -j$(nproc) .
- Компиляторный комплект Rust.
- Компиляторный комплект LLVM 14.
- Библиотеки:
libffi
,zlib
,libxml2
,libncurses
.
cargo test
# Тесты на скорость парсинга и время вычисления:
cargo bench --profile bench --bench benchmark
# Профилирование:
cargo bench --profile bench --bench benchmark -- --profile-time 30
# Результаты профилирования могут быть отражены следующим образом:
# firefox ./target/criterion/{bench_name}/500000/profile/flamegraph.svg
Мы можем собрать и загрузить docker-контейнер следующим образом:
nix build '.#container'
docker load < result
Мы можем собрать слайды к презентации следующим набором команд:
cd slides
nix develop .#latex -c tectonic -X build
После чего можно забрать готовый PDF из ./slides/build/
.