@ProCxx

Страница 662 из 2477
Tema
13.03.2017
14:54:51
Но он давно лежит
надо найти где он лежит , захватить доступ и поднять

Сергей
13.03.2017
14:54:54
хаскелл вроде в это умеет
в приниципе любой фнкциональный язык в рамках ленивого исполнения при редукции выражений может выкинуть те выражения, что не приводят к редексам. Но ленивые вычисления ведь медленней работают

Tema
13.03.2017
14:54:56
его

Дед Пегас
13.03.2017
14:55:38
http://blog.ndcconferences.com/modern-diagnostics-tools-for-c-applications/

Google
Дед Пегас
13.03.2017
14:56:54
Модерн конечно, прям...

Дмитрий
13.03.2017
14:56:58
Всем привет, я хочу использовать функцию urlmksetsessionoption чтобы поменять юзер агента, но меня посылают ещё на этапе компиляции, подскажите пожалуйста что не так? Urlmon.h подключил

Дед Пегас
13.03.2017
14:57:32
https://github.com/Naios/continuable

Andrei
13.03.2017
14:57:54
Антон
13.03.2017
14:57:59
Антон
13.03.2017
14:58:37
Да

Но сам свн лежит дохлый сука

Andrei
13.03.2017
14:58:55
Это называется lazy evaluation
Да нет же. Это всё не об этом.

Google
Andrei
13.03.2017
14:59:00
Вы говорите про рантайм.

То что хаскель доводит выражения до WHNF это понятно.

Но он делает это в рантайме, если значения известны только в рантайме.

Сергей
13.03.2017
15:02:41
Но он делает это в рантайме, если значения известны только в рантайме.
а при неизвестных значениях в момент компиляции разве можно путём какого-либо анализа выкинуть ветку условия?

Andrei
13.03.2017
15:03:08
Вот. Об этом и речь.

Andrei
13.03.2017
15:03:12
Что возможно.

x *= 2; if(x % 2 = 0) {...}

Tema
13.03.2017
15:03:41
ну если там ветка от проверки какой то константы

да да

Andrei
13.03.2017
15:04:25
Самый простой пример.

Tema
13.03.2017
15:04:52
Самый простой пример.
ну это крутой анализатор нужен

Andrei
13.03.2017
15:05:05
x неизвестна на стадии компиляции, но известно, что это выражение можно элиминировать.

Сергей
13.03.2017
15:05:21
x *= 2; if(x % 2 = 0) {...}
Ну это же просто предупреждение нерасторопности программиста, разве нет?

Andrei
13.03.2017
15:05:30
ну это крутой анализатор нужен
Так об этом и была речь изначально. Что подразумевается под крутым оптимизатором? Вот это.

Ну это же просто предупреждение нерасторопности программиста, разве нет?
Да нет же. Я сейчас написал этот пример в нём сразу явно видно, как и что оптимизировать, но сделай это всё сложнее — и ты уже ничего не увидишь.

Плюс оптимизатор твой должен понимать, какая связь между умножением и взятием по модулю, иначе откуда он вообще может понять, что такое надо оптимизировать.

На пастбин такие портянки, пожалуйста.

Сергей
13.03.2017
15:07:13
А если x - не число?) *= и % - переопределённые операторы)

Дмитрий
13.03.2017
15:07:18
Вот ошибка))

Google
Сергей
13.03.2017
15:09:50
Тем более.
ну в общем я типа понял) . Однако простор для оптимизации получается несколько меньше, чем сведение к слабой нормальной форме в рантайме ленивых языков) Этот оптимизатор для с++?

Andrei
13.03.2017
15:10:30
На самом деле сведение к WHNF это покрывает.

Не для с++, свой язык.

Конечно там будет нормальная стратегия редукции выражений, но вместе с этим еще и анализ области значений.

Сергей
13.03.2017
15:12:25
На самом деле сведение к WHNF это покрывает.
ну ладно, специалистам, проводившим исследования виднее) а многопоточный код как в этом контексте работает?

Или язык запрещает side эффекты?

Andrei
13.03.2017
15:13:31
Не запрещает. Над многопоточностью еще ведутся исследования, но с кооперативной многозадачностью +- понятно.

Дмитрий
13.03.2017
15:14:39
http://pastebin.com/WAwfspwp

Сергей
13.03.2017
15:17:33
Не запрещает. Над многопоточностью еще ведутся исследования, но с кооперативной многозадачностью +- понятно.
слушай, а разве редукция термов в haskell разве не в момент компиляции происходит? Просто сильно не углублялся)

Andrei
13.03.2017
15:17:50
Типов? ТЕрмов ты имел в виду, наверно?

Она происходит и там и там на самом деле.

Сергей
13.03.2017
15:18:04
Дмитрий
13.03.2017
15:19:00
UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, usag[l], sizeof(usag[l]), 0); Вот так функцию вызываю

Andrei
13.03.2017
15:19:59
Всё что можно статически заредуцировать компилятор заредуцирует и оставит WHNF, потом когда ты запускаешь программу и у тебя уже форсируется то или иное вычисление значение в терм подставляется и программа снова приводится к WHNF

Если же вычисления не форсируются, то осуществляется только подстановка. И всё это хпранится в виде здоровенного невычисленного chunk-а.

Сергей
13.03.2017
15:22:34
Если же вычисления не форсируются, то осуществляется только подстановка. И всё это хпранится в виде здоровенного невычисленного chunk-а.
я думал в момент компиляции редукция до WHNF, потом в момент рантайма оставшееся дерево вычисляется до нормальной формы

всё лень начать нормально учить язык с другой парадигмой(( было бы это нужно на работе...

Andrei
13.03.2017
15:23:56
Насколько я понимаю — нет. В рантайме те же слабозаголовочные формы.

Google
Дмитрий
13.03.2017
15:30:02
http://pastebin.com/WAwfspwp

Дмитрий
13.03.2017
15:51:02
Char usag[n][m]={};

Admin
ERROR: S client not available

Дмитрий
13.03.2017
15:52:00
Ну и потом он заполняется

Surreal
13.03.2017
15:54:02
Если закомментить строку, то компилируется?

Дмитрий
13.03.2017
15:55:02
Ага

Surreal
13.03.2017
15:58:04
А urlmon.lib подключена в зависимостях?

Дмитрий
13.03.2017
16:00:03
Нет, думал достаточно .h

А как подключить не подскажешь, недавно студией пользуюсь?)

Surreal
13.03.2017
16:05:37
Или в свойствах проекта через input - additional dependencies, или попробовать #pragma comment(lib, "urlmon") в файле, где у вас вызывается функция.

Нет, думал достаточно .h
На msdn есть секция "Requirements". Чаще заглядывайте в доки. https://msdn.microsoft.com/en-us/library/ms775123(v=vs.85).aspx

Vitaliy
13.03.2017
16:30:34
Дмитрий
13.03.2017
17:03:37
Я подключил с помощью прагмы .либ, а как подключить .dll, я на мсдн читаю и не понимаю нифига про неявное связывание, а явное не получается сделать, ругается

HMODULE hlib; hlib = LoadLibrary(LPCWSTR(Urlmon.dll));

Пишет hlib не содержит класс хранения или спецификатор типа

Может как-то попроще можно подключить, подскажите кто-нибудь?

Surreal
13.03.2017
17:08:03
> Или в свойствах проекта через input - additional dependencies

Matway
13.03.2017
17:28:29
Ну это же просто предупреждение нерасторопности программиста, разве нет?
Нет. Например, есть на плюсах некий шаблон. Например, считает Фибоначчи какие-нибудь. И критерием окончания вычислений как раз и является вот такая ветка, где результат известен во время компиляции. Теперь представим себе язык, где шаблонов нет. Всё пишется в едином синтаксисе языка. При этом то, что в плюсах бы пришлось делать шаблоном, здесь делается обычным языком, но правила оптимизации этого чего-то известны заранее.

Например, мы пишем код "вызвать функцию, которая посчитает 10-е число Фибоначчи". Этот код гарантированно будет заменён на число. Если же мы этого по какой-то причине не хотим, то мы специально говорим компилятору, чтобы он забыл, что число 10 статически известно.

Google
Сергей
13.03.2017
18:02:59
Например, мы пишем код "вызвать функцию, которая посчитает 10-е число Фибоначчи". Этот код гарантированно будет заменён на число. Если же мы этого по какой-то причине не хотим, то мы специально говорим компилятору, чтобы он забыл, что число 10 статически известно.
Ну здесь то значение известно на этапе компиляции. Мы же говорим всего лишь о известном характере поведения неизвестных значений, из которого мы можем сделать некоторые выводы

Artem
13.03.2017
18:21:49
LLVM 4.0.0 (Score: 109+) Link: http://j.mp/2nxgCiZ

Никита
13.03.2017
19:45:00
Помогите, пожалуйста, я уже не знаю, что делать. Есть такой вот код: void f(arg0, arg1, arg2, PatchDescriptor& descriptor) { //тут немного операций с дескриптором asm volatile( "ldr q1, [%0], #16\n" //загружает 16 байт по указателю descriptor.pixels_.data_.data() в векторный регистр и увеличивает указатель на 16 //тут много кода, но его выпиливание поведение не меняет : : "r"(descriptor.pixels_.data_.data()) //descriptor.pixels_.data_ -- это vector<uint8_t> : ); //printf("",descriptor.pixels_.data_[0]); } При -O0, -O1, -O2 все отлично, при -O3 и -Ofast сегфолт, при этом если раскомментировать printf после асма, все работает при любом уровне оптимизаций. Я так понял, память под вектор очищается слишком рано, но если так, то почему, если она в асме юзается? И что можно придумать, чтобы без костыля работало? Он еще и на производительность не очень хорошо влияет. Код под arm64

Surreal
13.03.2017
19:48:58
#pragma optimize( "", off ) ?

Никита
13.03.2017
19:49:40
#pragma optimize( "", off ) ?
все равно сегфолт

Surreal
13.03.2017
19:50:46
Можно unique_ptr передавать в функцию.

Roman
13.03.2017
19:51:18
Эмм

А можно ли писать на плюсах эмбеддед?

Никита
13.03.2017
19:51:38
Surreal
13.03.2017
19:53:56
А что, кстати, в плюсах с volatile для ссылок? Там, вроде, траблы с кастом были. Попробуйте еще volatile к ссылке добавить, мб сработает.

Никита
13.03.2017
19:55:02
забыл указать архитектуру, дописал

А что, кстати, в плюсах с volatile для ссылок? Там, вроде, траблы с кастом были. Попробуйте еще volatile к ссылке добавить, мб сработает.
пробовал дописать volatile к параметру — не скомпилилось, сейчас погуглю, может неправильно написал

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