
Berkus
10.02.2017
16:01:36
WTF per minute = 2

Vitaly
10.02.2017
16:05:23

Berkus
10.02.2017
16:05:40
да да, я это и делаю

Vitaly
10.02.2017
16:07:06

Google

Berkus
10.02.2017
16:07:26
сейчас и до них доберусь
залил сюда https://github.com/berkus/tdesktop/tree/fedora-patches

Alex Фэils?︙
10.02.2017
16:34:05

Berkus
10.02.2017
16:35:05
чот я не совсем понял, зачем он депендится на zlib и тащит с собой minizip при этом
а, или там целый zip формат еще, для темок что ли
ну збс в гипе расписаны пути к либам
/usr/local/ffmpeg_old/lib/libavutil.a
(libs_loc)/crashpad_oldmac
asdfasdf

Friedrich
10.02.2017
16:45:52

Vitaly
10.02.2017
17:05:32

Berkus
10.02.2017
17:06:19
я уже после патча посмотрел
там в гипах всякого барахла навалено

Vitaly
10.02.2017
17:11:54

Google

Berkus
10.02.2017
17:12:17
ну ща, там целый каталог говен понаписан
я пока сделал скелет сборки, ща посмотрю чего ему надо еще

Alex Фэils?︙
10.02.2017
17:20:56

Group Butler [beta]
10.02.2017
17:20:57

Friedrich
10.02.2017
17:21:38
:3

Дед Пегас
10.02.2017
17:33:20

Evgeniy
10.02.2017
17:33:35
Замерил таки)

Berkus
10.02.2017
17:35:03
41 минута
это с 1000 субсемплов?

Evgeniy
10.02.2017
17:39:09

Pepe
10.02.2017
17:45:42

F.L
10.02.2017
17:53:57
#supapro

Evgeniy
10.02.2017
18:01:36

Andrei
10.02.2017
18:01:43
А
Кстати, котаны.
Я закончил ядро компилятора.
Написанная версия mersenne-твистора обгоняет плюсовый оптимизированный код :3
При этом код не сложнее плюсового.

Google

Evgeniy
10.02.2017
18:03:22

Andrei
10.02.2017
18:03:52
~4-5%
Ну, естественно, что там не могло получиться цифр другого порядка.
Но сам факт того, что язык задизайненный за полгода и компилятор написанный за январь + начало февраля уже выдаёт всю синтаксическую функциональность плюсов и даже больше и при этом работает не медленее — это я считаю довольно круто.
Вот за что я люблю маленькие команды.

Surreal
10.02.2017
18:06:28
Он компилирует в плюсы, которые потом компилятся gcc?

Andrei
10.02.2017
18:06:34
Нет, лол.
Он прямо в объектники нативные комплиирует.

Surreal
10.02.2017
18:07:02
Тогда он у вас на ограниченном числе задач будет быстрее.

Andrei
10.02.2017
18:07:18
Meaning..?

Evgeniy
10.02.2017
18:07:31
~4-5%
А с чем сравнивали? Компилятор, флаги?

Andrei
10.02.2017
18:07:42
Это просто фронтенд llvm-а.

Andrei
10.02.2017
18:07:58
А наш код соотв. opt -O2 + llc

Evgeniy
10.02.2017
18:08:46

Surreal
10.02.2017
18:09:11
А дайте алгоритм, точнее c++ код, который тестили. Я думаю, тут найдутся люди, которые захотят его сильнее оптимизировать.

Andrei
10.02.2017
18:09:45
Дело конечно еще просто в том может быть, что стандартная реализация твистера не самая потимальная, но это не очень важно, поскольку, суть в том, что по скорости это явно не джава и не питон. Даже устроит быть чуть медленее плюсов, при том, что по языку матепрограммирование прям из коробки гораздо удобнее чем плюсовое.
К примеру наивный фиббоначи мы делаем медленее чем плюсы на 10%

Google

Andrei
10.02.2017
18:11:32
Оказалось llvm не умеет некоторые оптимизации делать из коробки
бэкендовские.
Но это всё допустимо. И очень хорошо.

Surreal
10.02.2017
18:12:15

Admin
ERROR: S client not available

Andrei
10.02.2017
18:13:10
Эм. Наш твистер был написан на нашем языке, разумеется. Затем наш фронтенд компилировал из этого IR который дальше скрамливается llc
С плюсами аналогично
Только там std::mt13397
И код скармливается clang-у
Который внутри сам вызывает llc и opt по сути.
А, да, и это на моей машине. 4720HQ i7
На друго машине плюсы быстрее на 3%
Там проц поновее.
На x86 тоже плюсы побыстрее, но это странное llvm-овское поведение.
Видимо баг им надо зарепортить, или по крайней мере фича-реквест.
Они реально не до конца оптимизируют нативный код. Сравнивали просто ассемблер получившийся, и такие дела, что msvc лучше например генерирует D:

Berkus
10.02.2017
18:26:49

Aldar
10.02.2017
18:28:05

Berkus
10.02.2017
18:28:29
не надо
mersenne длинный

Google

Aldar
10.02.2017
18:28:50
что за язык интересно

Berkus
10.02.2017
18:29:03
так, ладушки, сорцы телеграма в симейк я загнал
теперь надо скомпилять!

Alex Фэils?︙
10.02.2017
18:30:53

Berkus
10.02.2017
18:39:49
опять этот несчастный stdafx.h, где мой cotire

Andrei
10.02.2017
19:01:08
код в студию!)
[] [ {
state: 0 624n32 array;
index: 624;
5489 state 0 @ set
i: 1; [
state i 1 - @ dup 30 rnshift xor 1812433253 * i + state i @ set
i 1 + i set
i 624 <
] loop
} ] [createMt19937] export
{state: 0 624n32 array; index: 0;} ptr [
generator:;
generator.index 624 = [
state: generator.state ptr;
i: 0; [
state i @ 2147483648 and
state i 1 + 624 mod @ 2147483647 and or
dup 1 rnshift state i 397 + 624 mod @ xor
swap 1 and 1 = [ 2567483615 xor ] [ a:; a copy ] if
state i @ set
i 1 + i set
i 624 <
] loop
0 generator.index set
] [] if
generator.state generator.index @
generator.index 1 + generator.index set
dup 11 rnshift xor
dup 7 lshift 2636928640 and xor
dup 15 lshift 4022730752 and xor
dup 18 rnshift xor
] [useMt19937] export
Да-да. Обратная польская нотация :3


Berkus
10.02.2017
19:01:59
нечитаемо
// we copy some parts of C++11/14/17 std:: library, because on OS X 10.6+
// version we can use C++11/14/17, but we can not use its library :(
namespace std_ {
да они там наркоманы

Andrei
10.02.2017
19:02:44
нечитаемо
Просто стиль такой. Можно писать и читаемо. Здесь исплоьзуется стековость языка вдоль и поперек.
А к постфиксу быстро привыкаешь. В нём есть свои бенефиты для описания структур данных.
Для какого-нибудь более осмысленного кода будет вполне читаемо.

Evgeniy
10.02.2017
19:05:20

Alex Фэils?︙
10.02.2017
19:10:40