Size: a a a

2020 April 22

OS

Oleg Shelajev in graalvm_ru
Мне кажется у питона ffi не очень продуманный в этом смысле ( я не профессионал конечно)
источник

OS

Oleg Shelajev in graalvm_ru
Там те же проблемы у pypy например мне кажется
источник

A

Alex in graalvm_ru
Паша Финкельштейн
Ну трюфель же умеет с нативным кодом работать. Откуда потребность интегрироваться напрямую с openssl?
с нативным, но ты не можешь взять просто одну либу питоновскую и сказать используй её, она потянет за собой другие и тд

про интеграцию с openssl никто не говорил
говорилось:
1. есть https://github.com/python/cpython/blob/master/Modules/_ssl.c который реализует core _ssl модуль питона
2. он являет врапером над openssl
3. есть https://github.com/graalvm/graalpython/blob/master/graalpython/lib-python/3/ssl.py который внутри себя активно использует _ssl

нужно в граале реализовать работу _ssl так чтобы питоновский код не заметил разницы
так уже сделан частично posix и другие модули

https://github.com/graalvm/graalpython/blob/master/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/PosixModuleBuiltins.java

чтобы оставить питоновский код с минимальными изменениями и предоставить якобы нативную реализацию коре частей

в реализации не обязательно использовать openssl, главное чтобы сам ssl работал и предоставлял такое же поведение по интерфейсам
реализацию можно использовать от самой java, но придётся сделять определённые приседания и враперы
источник

ПФ

Паша Финкельштейн in graalvm_ru
Oleg Shelajev
Там те же проблемы у pypy например мне кажется
ну на pypy pip точно работает, а значит ssl тоже
источник

OS

Oleg Shelajev in graalvm_ru
Не знаю говорят когда c extension то может не работать https://doc.pypy.org/en/latest/faq.html
источник

A

Alex in graalvm_ru
Паша Финкельштейн
ну на pypy pip точно работает, а значит ssl тоже
https://foss.heptapod.net/pypy/pypy/tree/branch/default/lib_pypy/_cffi_ssl

основная логика размазана тут
а _ssl по минимуму кода и проксирует на данную реализацию
источник

M

Mikhail in graalvm_ru
Oleg Shelajev
кстати, кто-нибудь строит native images? там недавно в найтли завезли -H:+RemoveSaturatedTypeFlows
который мне кажется мог бы делать примерно на 30% быстрее билд и использовать примерно на 30% меньше памяти при билде. Потыкайте может?
А собранные ночные билды публикуются где-нибудь?
источник

OS

Oleg Shelajev in graalvm_ru
Вот кто-то запарился и перевел 6К строк
источник

OS

Oleg Shelajev in graalvm_ru
Да вот достаточно регулярно https://github.com/graalvm/graalvm-ce-dev-builds/releases
источник

M

Mikhail in graalvm_ru
Ага, спасибо. Сейчас погоняю ради интереса
источник

OS

Oleg Shelajev in graalvm_ru
Спасибо!
источник

OS

Oleg Shelajev in graalvm_ru
А если там нормальные результаты напиши сюда пожалуйста чтобы другим тоже интересно стало
источник

M

Mikhail in graalvm_ru
Примерно вот так вышло
источник

M

Mikhail in graalvm_ru
20.0.0
[target/bootstrap:2453]    classlist:   6,738.81 ms,  1.20 GB
[target/bootstrap:2453]        (cap):     760.52 ms,  1.20 GB
[target/bootstrap:2453]        setup:   2,330.62 ms,  1.20 GB
[target/bootstrap:2453]   (typeflow):  24,054.14 ms,  3.13 GB
[target/bootstrap:2453]    (objects):  24,618.29 ms,  3.13 GB
[target/bootstrap:2453]   (features):   1,829.30 ms,  3.13 GB
[target/bootstrap:2453]     analysis:  53,097.13 ms,  3.13 GB
[target/bootstrap:2453]     (clinit):   1,007.25 ms,  3.13 GB
[target/bootstrap:2453]     universe:   2,891.62 ms,  3.13 GB
[target/bootstrap:2453]      (parse):   5,850.55 ms,  3.13 GB
[target/bootstrap:2453]     (inline):   3,978.78 ms,  5.21 GB
[target/bootstrap:2453]    (compile):  28,024.07 ms,  5.21 GB
[target/bootstrap:2453]      compile:  40,685.41 ms,  5.21 GB
[target/bootstrap:2453]        image:   6,026.86 ms,  5.21 GB
[target/bootstrap:2453]        write:     826.52 ms,  5.21 GB
[target/bootstrap:2453]      [total]: 112,984.84 ms,  5.21 GB

20.1.0-dev-20200419_0207(-H:+RemoveSaturatedTypeFlows)
[target/bootstrap:3275]    classlist:   5,756.81 ms,  1.68 GB
[target/bootstrap:3275]        (cap):     698.14 ms,  1.68 GB
[target/bootstrap:3275]        setup:   2,097.97 ms,  1.68 GB
[target/bootstrap:3275]     (clinit):     880.85 ms,  3.46 GB
[target/bootstrap:3275]   (typeflow):  16,057.42 ms,  3.46 GB
[target/bootstrap:3275]    (objects):  20,151.86 ms,  3.46 GB
[target/bootstrap:3275]   (features):   2,784.14 ms,  3.46 GB
[target/bootstrap:3275]     analysis:  41,151.15 ms,  3.46 GB
[target/bootstrap:3275]     universe:   2,612.52 ms,  3.96 GB
[target/bootstrap:3275]      (parse):   3,610.86 ms,  3.96 GB
[target/bootstrap:3275]     (inline):   6,091.22 ms,  4.61 GB
[target/bootstrap:3275]    (compile):  25,229.16 ms,  4.78 GB
[target/bootstrap:3275]      compile:  37,873.43 ms,  4.74 GB
[target/bootstrap:3275]        image:   6,041.05 ms,  4.74 GB
[target/bootstrap:3275]        write:     815.44 ms,  4.74 GB
[target/bootstrap:3275]      [total]:  96,623.18 ms,  4.74 GB
источник

OS

Oleg Shelajev in graalvm_ru
Не очень сильно лучше
источник

λ

λoλdog in graalvm_ru
ну памяти меньше ж
источник

OS

Oleg Shelajev in graalvm_ru
Процентов 14-15% на глаз если
источник

OS

Oleg Shelajev in graalvm_ru
Ну там полгигабайтика всего
источник

OS

Oleg Shelajev in graalvm_ru
Но нормально вообще
источник

OS

Oleg Shelajev in graalvm_ru
100 секунд тоже не самый долгий билд
источник