
Andrei
12.12.2016
11:06:05
Боюсь, что у меня задача с написанием убийцы с++, мне нужны дополнительные возможности по оптимизации.

Сергей
12.12.2016
11:06:57
clang имеет множество оптимизаций
я думаю, лучший выбор, если уж пишешь убийцу плюсов, смотреть на реализацию плюсов.
хотя идея немного странная)
а не секрет кто заказчик этой работы?

Google

Andrei
12.12.2016
11:07:33
Кланг — это такой же фронтэнд. Оптимизации всё равно живут в llvm
и осуществляются на уровне IR
Боюсь ничего не скажет. Частное лицо :)

Сергей
12.12.2016
11:08:47
эх
смотря что ты хочешь оптимизировать
ты хочешь оптимизаций на уровне llvm
аля мидлвар?

Andrei
12.12.2016
11:14:57
Попробую описать словами, звучит может странно, но так проще всего объяснить.
В общем берем программу на плюсах.
И считаем, что она вся помечена как constexpr
Всё что можно вычислить в компайлтайме там и вычисляется.
В частности с точки зрения конструкций языка у нас есть и структуры и методы и наследование
И виртуальные функции.

Google

Andrei
12.12.2016
11:17:05
Но если мы можем где-то от этого избавиться — мы избавляемся.
Т.е. используем максимально данные из компайлтайма.
В частности у структур например если видим что поле используется только статически, вообще его выдернем из структуры.
Статически я имею в виду, что достоверно известно, что будет происходить с таким-то мембером каждого объекта.

Сергей
12.12.2016
11:19:06
у структур так не всегда можно сделать
если структура куда-то передается
хотя это на месте надо смотреть
но тут на уровне фронта вполне себе можно реализовать

Andrei
12.12.2016
11:20:03
Соотв все метапрограммирование, которое в плюсах пишется шаблонами то есть фактически на другом языке
В этом языке пишется на том же синтаксисе что и динамический код
А компилятор это всё соптимизирует.
Со структурами не так все просто. Иногда нам не нужна вся структура.
Тогда компилятор подставит только адреса полей.
И т.д.
Виртуальные функции тоже несколько видоизменятся.
Побычтрее будет чем лукап в таблицу.

Сергей
12.12.2016
11:26:01
да уж
совсем не просто
что из этого реализовано?

Andrei
12.12.2016
12:34:13
что из этого реализовано?
Первые шаги. Есть формально описание грамматики, по ней построен LL парсер. Есть формальное описание того как из языка выского уровня переводить в промежуточную restricted версию языка. Есть рабочий интерпретатор, который все фичи поддерживает. Есть self-hosted интерпретатор для restricted версии.

Google

Vladislav
12.12.2016
14:27:43

Denis
12.12.2016
14:36:33
Не сказал бы, что это опасно

Andrei
12.12.2016
14:37:09

Denis
12.12.2016
14:37:10
Нет же ничего страшного, что цикл не сможет развернуться и векторизироваться, если добавить в него if

Vladislav
12.12.2016
14:38:44

Denis
12.12.2016
14:39:30
Ну всё, добавишь код, заново скомпилишь, уберётся оптимизация

Andrei
12.12.2016
14:40:41
Именно так.
То есть за счет того, что мы убиваем любой ABI внутри мы получаем возможно более оптимальный код.

Михаил
12.12.2016
15:14:24
Как сказать apache ab, чтобы при указании прокси сервера и https запроса, сначала посылал CONNECT? На прокси приходит поток шифрованного трафика и что с ним делать не понятно.

[Anonymous]
12.12.2016
15:24:36
перенаправлять?

Михаил
12.12.2016
15:32:38
Прокси не знает, куда перенаправлять непонятный набор байт. Для этого должен прийти запрос CONNECT.

[Anonymous]
12.12.2016
16:04:46
на сокетах делаешь?

Михаил
12.12.2016
16:06:24

[Anonymous]
12.12.2016
16:06:46
????

ಠ_ಠ
12.12.2016
16:24:38
Ребята, нужна помощь. Надо собрать проект на Линуксе и протестить запускается ли
Кто поможет?

Detur
12.12.2016
16:25:40
гуевый?

ಠ_ಠ
12.12.2016
16:26:11
да.

Detur
12.12.2016
16:27:19
тогда не помогу

ಠ_ಠ
12.12.2016
16:27:35
Короче, проект такой
Обертка libSDL2 на objective-c. Кроссплатформенная. Только компилятор другой (fork clang). Надо попробовать скопилить и запустить.

Google

ಠ_ಠ
12.12.2016
16:27:41
ОпенСорс

Михаил
12.12.2016
16:31:00
Запускай виртуальную машину с линуксом и тестируй.

ಠ_ಠ
12.12.2016
16:31:52
256kb/s
?

Admin
ERROR: S client not available

[Anonymous]
12.12.2016
16:32:14
????

Михаил
12.12.2016
16:36:34
256kb/s
Но..., это даже не 4кб/с через модем и с разрывами.

Shorty(Ale Chapa) Manskiy
12.12.2016
17:43:24

Evgeniy
12.12.2016
17:49:02

Andrei
12.12.2016
17:49:27
Ни плюсовый, ни тем более сишный.

Alexander
12.12.2016
19:41:34
может кого заинтересует....
https://www.youtube.com/watch?v=kXrVtaKDKvI&t=0s
#video #cpp #mailru

Aidar
12.12.2016
20:01:56

Alexander
12.12.2016
20:03:47
разбираются примеры, есть как средней сложности, так и сложные примеры.
для кого-тосложно, для кого то нет))

Aidar
12.12.2016
20:07:28
Ладно пролистал ничего для себя не наше

Penter
12.12.2016
20:38:24

[Anonymous]
12.12.2016
20:39:06
????

Эдуард
13.12.2016
07:21:51

Kirill
13.12.2016
07:59:57
я сейчас слушаю, какой же он скучный, ппц

Google

Kirill
13.12.2016
08:00:09
сразу лекции в универе вспомнил

Square
13.12.2016
08:48:10
#CPP #bjarne #stroustrup

Stanislav
13.12.2016
08:49:12
? опередил

Square
13.12.2016
08:49:16
:)

Vladislav
13.12.2016
08:51:30
Концепты!

Дед Пегас
13.12.2016
08:51:42
Коньцепты!

Alexander
13.12.2016
09:45:40
концептов же не будет в с++17. так?

Vladislav
13.12.2016
09:46:51
не будет(

Kirill
13.12.2016
09:47:54
агак(

Дед Пегас
13.12.2016
10:17:53
Ничего не будет.
Всё тлен.

Vladislav
13.12.2016
10:19:46
кина не будет

Stanislav
13.12.2016
10:20:00
все, пишем на расте