@ProCxx

Страница 478 из 2477
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
это только часть оптимизаций есть тонна оптимизаций в бэкенде же во фронте есть своя доля

смотря что ты хочешь оптимизировать

ты хочешь оптимизаций на уровне 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
Не сказал бы, что это опасно

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

Vladislav
12.12.2016
14:38:44
Нет же ничего страшного, что цикл не сможет развернуться и векторизироваться, если добавить в него if
а если в структуре внезапно появится новое поле, которое раньше убиралось в compile-time?

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
может кого заинтересует.... https://www.youtube.com/watch?v=kXrVtaKDKvI&t=0s
Попробовал я этот курс глянуть и бросил. Как лектор он не очень.

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
все, пишем на расте

Страница 478 из 2477