Войти
ФлеймФорумПрограммирование

C++20 утвердили (4 стр)

Страницы: 13 4 5 633 Следующая »
#45
12:04, 10 сен 2020

Sbtrn. Devil
>> JIT компиляцию C++ кода.
> щ... щ... щто прастите?.. 0_o
похоже комуто в комитете надоело компилировать под 5 платформ

#46
12:16, 10 сен 2020

Sbtrn. Devil
> > JIT компиляцию C++ кода.
Я такое для Dшечки делал
https://gamedev.ru/flame/forum/?id=220707

#47
13:07, 10 сен 2020

Panzerschrek[CN]
> Мимо. На ассемблере никто не пишет.
  Зато в машинный код компилируются все программмы и он быстрее. Значит машинный код круче и все должны писать в машинных кодах. Ну по твоей же логике так получается.

> Много ты знаешь виртуальных машин, написанных на Фортране?
  Давайте всей кодлой начнём писать виртуальные машины, а программы под них никто писать больше не будет. Настанет покой и умировтворение: будет миллион виртуальных машин, но ни одной программы под них. Опять же твоя логика.

> Тем не менее сваи вколачивать надо и для этого нужен инструмент.
  Я где-то говорил, что не нужен? Хватит навязывать мне свои тупые мысли. Больше отвечать на твои посты нет желания. Спорь там дальше сам с собой, если даже не можешь понять что я пишу.

#48
14:53, 10 сен 2020

/A\
> похоже комуто в комитете надоело компилировать под 5 платформ
return [](){};
> Я такое для Dшечки делал
Так вопрос-то в другом - из чего там JIT-ить-то, у Ц++ и так уже таргетом машинный код, никакого официального IL не предусмотрено.

#49
14:56, 10 сен 2020

Sbtrn. Devil
Я llvm ir житил, между разными платформами не поможет (даже между 32/64 бит не поможет), но по крайней мере не надо заморачиваться с выбором флажков sse/avx/avx512

#50
15:48, 10 сен 2020

Sbtrn. Devil
> из чего там JIT-ить-то
  Вот скажи с чего ты взял, что нельзя JIT-ить из машкода в тот же самый машкод?

#51
15:57, 10 сен 2020

Panzerschrek[CN]
> Мимо. На ассемблере никто не пишет.

для 8 битных контроллёров могут запросто

#52
17:48, 10 сен 2020

1 frag / 2 deaths
> С контейнерами нет, а со статичными массивами - да.

а если нет, а если да, а если наверное?

#53
18:11, 10 сен 2020

Smouking
> неплохое видео с объяснением как это работает:
1.5 часа чтоб объяснить фичу которая должна упрощать многопоточку? На то, чтоб понять какой-нибудь job manager / thread pool нужно намного меньше времени.
Я когда-то слышал, что корутины должны быть быстрее классических тасков, вот с этого стоит начинать.

Пару лет назад хотел корутины, чтоб эмулировать компьют шейдер, а то 1024 треда слишком медленно работают, а руками копировать стэк очень не хотелось)

#54
22:12, 10 сен 2020

/A\
> Пару лет назад хотел корутины, чтоб эмулировать компьют шейдер, а то 1024 треда
> слишком медленно работают, а руками копировать стэк очень не хотелось)

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

#55
22:18, 10 сен 2020

Delfigamer
> https://doc.pypy.org/en/latest/introduction.html считается?
Так и не понял, что это. Можешь вкратце пояснить?

Zefick
> Зато в машинный код компилируются все программмы и он быстрее. Значит машинный
> код круче и все должны писать в машинных кодах. Ну по твоей же логике так
> получается.
Недостатки машинного кода - сложность разработки и непероносимость. Кресты не обладают такими недостатками. Языки вроде Жабы, Петуха и прочих не дают уже преимуществ в сравнении с C++ по скорости разработке и переносимости.

innuendo
> > Мимо. На ассемблере никто не пишет.
>
> для 8 битных контроллёров могут запросто
Ну разве что для них. И то не факт. Так или иначе, это очень нишевая вещь, на остальных серьёзных платформах есть компилятор C++.

#56
22:23, 10 сен 2020

gamedevfor
> Корутины это ж по сути эмуляция многозадачности в пределах одного потока и как
> следствие без необходимости в синхронизации к общим ресурсам.
да как бы нужны. Просто на корутинах синхронизации можно добиться за счёт того, что ты контроллируешь момент переключения.
НО, если момент не контроллируется (а например делается каким-нить чужим кодом), то синхронизация может стать ещё большей проблемой.
"Стандартные" методы синхронизации уже не будут работать, т.к. весь код исполняется одним потоком.

#57
0:04, 11 сен 2020

/A\
> 1.5 часа чтоб объяснить фичу которая должна упрощать многопоточку?
Корутины в с++ не про многопоточку, но сделать из них это можно. Мне больше в конце понравилось когда пошли проблемы и не очевидности от которых можно сгореть на ровном месте, мемлики, уб и прочие прелести. Но наверное соглашусь с тобой, всё это немного грустно, вспоминаю как знакомился с корутинами в C#/Kotlin, прочитал 2 статьи и пошёл использовать.

>Я когда-то слышал, что корутины должны быть быстрее классических тасков, вот с этого стоит начинать.
И судя по всему это правда, потому что компиль про это всё знает и может очень много чего схлопнуть, т.е. например работает схлопование нескольких корутин в константное значение.

Но я думаю пока это всё действительно дойдёт до реального кода, пройдёт не мало времени, хотя некоторые крупные проекты (Яндекс такси и какая то часть их инфры) юзают свои корутны, сейчас наверное(нет) перейдут на стандартные.

#58
1:43, 11 сен 2020

Zefick
> Вот скажи с чего ты взял, что нельзя JIT-ить из машкода в тот же самый машкод?
В машкоде уже потеряна исходная информация (расклад переменных по типам, высокоуровневая структура кода и прочее). Что там остаётся жытить? Инструкцию "mov ax,0" в инструкцию "xor ax,ax"?

#59
22:08, 16 сен 2020

Лучше бы чего-нибудь для кодогенерации завезли,
что-нибудь в духе using new:

+ Показать
Страницы: 13 4 5 633 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.