about summary refs log tree commit diff
path: root/users/tazjin/presentations/tvix-eval-2023/presentation.pdfpc
blob: 458624ff2d3fecdc3286f691a44bb4e282086c84 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
    "pdfpcFormat": 2,
    "disableMarkdown": false,
    "noteFontSize": 20,
    "pages": [
        {
            "idx": 0,
            "label": "1",
            "overlay": 0,
            "note": "Ничего особенного, просто кто я?\nЧто такое ТВЛ?"
        },
        {
            "idx": 2,
            "label": "3",
            "overlay": 0,
            "note": "Ленив: надо создать объекты, которые репрезентируют отложенное вычисление.\nОрганично: много фичей работают только случайно, без документации, через рандомное поведение. Нам придется в принципе заниматься reverse-engineering, и типа diff-driven-development.\nМонорепо: Большинство всего Nix-кода есть в nixpkgs, значит что мы можем его использовать в качестве ултимативного интеграционного теста."
        },
        {
            "idx": 3,
            "label": "4",
            "overlay": 0,
            "note": "Видем тут кусок лексера C++ Никса. Такой код там обычный. Лексер создает структуры, которые используется в рантайм, а вообще нет разделение забот"
        },
        {
            "idx": 4,
            "label": "5",
            "overlay": 0,
            "note": "Еще кусок. В стракте Env есть массив поинтеров типа Value, но на самом деле, там добавляют поинтеры других типов, например Expr, потому что это было 'удобный' способ передать эти данные. Рассказ про первый попыток твикса - форк."
        },
        {
            "idx": 5,
            "label": "6",
            "overlay": 0,
            "note": "Мы решили переписать Nix. Пришлось разберется с вопромос, на каком языке. Нам ответ был очевидный: на Rust. Мы хотели строго и хорошо типизированный язык, современные фичи и так далее. Не буду вам тут Rust продать - вы уже знаете. Нам еще помогло, что кто-то уже написал хороший парсер Nix на Rust"
        },
        {
            "idx": 6,
            "label": "7",
            "overlay": 0,
            "note": "Шведский парень с юзернэймом, который нельзя произносить, написал rnix пару лет назад. Очень удобный, быстрый парсер с хорошей репрезентацией AST Никса. К сожалению, он умер в 2021 и сам никогда не видел, к чему привел его проект. Мы очень благодарны ему за его работу, и я просто хотел упомянуть его здесь."
        },
        {
            "idx": 7,
            "label": "8",
            "overlay": 0,
            "note": "Существующий парсер, не только потому что нам лень, но тоже, потому что в коммюнити разработываются много тулинга с помощью этого парсера. Значит, у нас единный кодбейз для этого.\nБайткод - объязнить.\nобяъзнить tvix и его чатей"
        }
    ]
}