@ProCxx

Страница 958 из 2477
Andrei
13.06.2017
23:05:00
Просто компилятор понимает, что это статически элиминируемые вещи и делает с ними то, что полагается не, добавляя оверхеда в рантайме.

Aldar
13.06.2017
23:05:23
типа хаскеля на этапе компиляции?

Andrei
13.06.2017
23:05:29
Угу.

Alexey
13.06.2017
23:05:52
А не слишком долго происходит компиляция?

Google
Stanislav
14.06.2017
01:14:45
так и хочется поорать что это https://github.com/agauniyal/rang/ не нужная фигня

отчасти точнее

если целит на вин10 то на половину нужная

Andrei
14.06.2017
01:16:37
Демка симпатишная.

Stanislav
14.06.2017
01:16:44
они там в vt100 смогли

поэтому все коды работают

надо только для своего приложения вызывать одну функцию включающую это

https://github.com/agauniyal/rang/blob/master/include/rang.hpp#L180 тут видимо пытались, но не дотянули



пруфцы

Berkus
14.06.2017
07:50:30
Почему все так любят функциональные языки?(
не все, но функциональную композицию удобнее писать отлаживать и тестировать

Дед Пегас
14.06.2017
07:51:34
+

И расщирять!

Google
Alexey
14.06.2017
07:52:48
В большом проекте инстанцирование сущностей значительно повышает его "понятность"

Berkus
14.06.2017
07:53:08
поясни

вот нам нужно получить через REST api CSV и выдать его в виде JSON - какие сущности нужно инстанциировать для понятности?

Berkus
14.06.2017
07:54:34
так, и что с ней делать

Alexey
14.06.2017
07:55:39
Ну в данной задаче ничего

Berkus
14.06.2017
07:55:54
ну то есть я могу написать fetch . csvToJson . validateSchema mySchema . output с этой инстанциированной моделью, а могу не писать, mySchema будет функцией возвращающей нужную модель

окей, какая есть задача в которой глобальная инстанциация какой-то конкретной json схемы нам помогает?

Alexey
14.06.2017
08:01:32
Предположим к нам приходит json. Нам его нужно распарсить, записать в базу данных, проделать с полученными данными ещё какие-то манипуляции. На мой взгляд, удобнее для для всех этих манипуляций представлять json-файл в качестве объекта со списком полей и методов для обработки этих полей.

*парсить json файл в объект

Berkus
14.06.2017
08:02:58
ок, и что мы тут инстанциируем?

и чем JSON.calculatePriceRange лучше свободно композируемой функции calculatePriceRange(list) ?

Дед Пегас
14.06.2017
08:04:12
А чо за методы у json-а могут быть? Чо там обрабатывать?

и чем JSON.calculatePriceRange лучше свободно композируемой функции calculatePriceRange(list) ?
Полагаю, то, что засунуто в одельное «пространство имён»

Хотя есть же тайпклассы.

Alexey
14.06.2017
08:06:12
и чем JSON.calculatePriceRange лучше свободно композируемой функции calculatePriceRange(list) ?
Читабельность кода в случае Json.calculatesmth() выше, на мой взгляд

Berkus
14.06.2017
08:06:40
если тебе захочется просто посчитать price range то придется инстанциировать данные в JSON объект? возможно это и сделает что-то "понятней", но точно не связь цен с джсоном

если мы парсим json по схеме, то нам нужен в итоге финальный датакласс со всеми данными, в удобном виде, а не как оно в джсоне пришло

в частности prices может быть уже list<Price> например

Dmitry
14.06.2017
08:08:07
народ, оффтопну) кто какие облака юзает?

Google
Berkus
14.06.2017
08:09:00
(и да, Price может быть в джсоне не флоатом а строкой со значением в центах и видом валюты, если это нормальные люди писали)

Alexey
14.06.2017
08:11:50
Да, разумней писать сразу финальный датакласс со всей логикой.

Sergey
14.06.2017
08:13:56
Почему все так любят функциональные языки?(
прямо вот "любят" их только студенты и законченные гики. но писать в функциональном стиле - очень полезно, и красиво.

Mr.WeB
14.06.2017
08:59:16
Привет всем Где могу скачать c++ builder?

Evgeniy
14.06.2017
08:59:26
Mr.WeB
14.06.2017
08:59:34
можешь линк дать?

Berkus
14.06.2017
09:13:49
google.com

Mr.WeB
14.06.2017
09:21:46
google.com
Сказали что сpp builder стоит 6000$ это правда?

Дед Пегас
14.06.2017
09:21:58
Думаю, если влепить больше матана в систему типов языка, можно много профита наоптимизировать.

Дед Пегас
14.06.2017
09:23:03
Го не убийца C++.

Дед Пегас
14.06.2017
09:23:41
Далеко не факт.
Ну почему же?

Friedrich
14.06.2017
09:24:06
Ну почему же?
Потому что не всё в матане практично и может потенциально приводить к каким-то оптимизациям.

Дед Пегас
14.06.2017
09:24:16
Если выражение можно вычислить на этапе компиляции и сократить, то профит, думаю, возможен.

Mr.WeB
14.06.2017
09:24:30
Friedrich
14.06.2017
09:24:36
Засунул ты в язык нетипизированное лямбда-счисление — и давай потом, оптимизируй.

Дед Пегас
14.06.2017
09:24:36
Не всё, но таки упростить реально.

Google
Antony
14.06.2017
09:24:37
Я раньше приводил пример https://en.wikipedia.org/wiki/Expression_templates
Это не похоже на что-то, чего нет в С++. Чем ваш оптимизатор лучше тех что в Clang/GCC? Какую такую информацию доносит язык до бэкенда, что бэкенд может генерировать лучший код?

Berkus
14.06.2017
09:24:59
Group Butler [beta]
14.06.2017
09:25:00
кто то слышал?
Чат supapro.cxx: https://telegram.me/joinchat/BYlFbD3eN3JMaG34hyh96w

Friedrich
14.06.2017
09:25:04
Если выражение можно вычислить на этапе компиляции и сократить, то профит, думаю, возможен.
Дело в том, что это не имеет ничего общего с "влепить побольше матана" :) Матан нужен не абы какой, а правильный.

Matway
14.06.2017
09:25:13
Это не похоже на что-то, чего нет в С++. Чем ваш оптимизатор лучше тех что в Clang/GCC? Какую такую информацию доносит язык до бэкенда, что бэкенд может генерировать лучший код?
Тем, что в отличие от любого плюсового компилятора, он может сам построить высокоуровневую оптимизацию такого вида.

Admin
ERROR: S client not available

Friedrich
14.06.2017
09:26:08
Тем, что в отличие от любого плюсового компилятора, он может сам построить высокоуровневую оптимизацию такого вида.
> в отличие от любого плюсового компилятора > может сам построить высокоуровневую оптимизацию Утверждения, которым не помешали бы доказательства.

Antony
14.06.2017
09:26:45
Тем, что в отличие от любого плюсового компилятора, он может сам построить высокоуровневую оптимизацию такого вида.
Это делают все современные компиляторы С++, см constexpr. так в чём ваша killer feature? желательно на конкретном примере

Friedrich
14.06.2017
09:27:10
Ну то есть конкретный пример кода, который некие компиляторы C++ не оптимизируют, а ваш компилятор/язык/платформа — оптимизирует.

Если будет пример с разбором — это хороший, годный, предметный разговор.

Antony
14.06.2017
09:27:33
+1

Matway
14.06.2017
09:28:49
> в отличие от любого плюсового компилятора > может сам построить высокоуровневую оптимизацию Утверждения, которым не помешали бы доказательства.
Законно. Смягчу утверждение - когда я последний раз (2015) проверял всю линейку имеющихся у меня компиляторов (ICC, GCC, VC, CLANG) - ничего подобного и близко не было. И, если честно, я не знаю, как это возможно сделать в плюсах. По второй части - есть релевантный чат. Доказательств стоит ожидать там.

Antony
14.06.2017
09:29:46
Ну хоть ссылку дайте на какой-то конкретный пример? А то мне хочется вам поверить, но не получается

Arseny
14.06.2017
09:37:56
https://t.me/NewLanguage_temporary

Кому интересны примеры кода, апдейты - приглашаются в онтопик чат, не засоряйте плюсовую тему.

Constantine
14.06.2017
09:41:11
или там, shared_ptr<const Smth> для shared_ptr'а на константный объект
давно хотел написать template <T> using immutable_ptr<T> = std::shared_ptr<const T>;

и template <T> immutable_ptr<T> make_immutable(std::unique_ptr<T>);

все никак руки не доходят

Google
Дед Пегас
14.06.2017
09:45:06
засунул ты язык в лямбда-исчисление...
Типизированное лямбда-исчисление!

Matway
14.06.2017
09:46:05
Ну хоть ссылку дайте на какой-то конкретный пример? А то мне хочется вам поверить, но не получается
По первой части "доказательства": Берём код отсюда http://ideone.com/poYKpQ Загоняем в https://godbolt.org/ Делаем -O3, переключаем компиляторы и видим, что оптимизировать цикл никто не догадался. По второй части - в релевантный чат.

Sergey
14.06.2017
09:48:08
Constantine
14.06.2017
09:48:11
хм...

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

в данном случае нужны какие-то хитрые эвристики отсутствия side-effect для всего и вся, что не очевидно

Matway
14.06.2017
09:50:40
компилятор очень часто что-то не оптимизирует потому, что не уверен, что после оптимизации все пойдет так
Это не тот случай. Это ситуация, когда высокоуровневая оптимизация (очень важная, между прочим), просто слишком сложна на том уровне, на котором её делают оптимизаторы плюсов.

Igor
14.06.2017
09:50:41
А оно тебе как раз
Настолько как раз что снимать не хочется

Arseny
14.06.2017
09:51:13
operator+ видимо

v3 можно не вычислять целиком.

Matway
14.06.2017
09:52:09
а что вы здесь хотите оптимизировать?
Я кинул ссылку на Expression Templates. Это настолько важная вещь, что многие математические тулкиты ставят её во главу угла.

Constantine
14.06.2017
09:52:33
я просто хочу понять, какой код в итоге вы хотите увидеть и насколько быстрее он будет работать

Berkus
14.06.2017
09:52:49
а что вы здесь хотите оптимизировать?
c expression templates там в итоге будет сразу складывание без промежуточных векторов

Constantine
14.06.2017
09:53:18
с точки зрения С++ это не эквивалентный код

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