Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 March 20

MS

Mikola Summer Duck in RU Rust GameDev — русскоговорящее сообщество
На самом деле я тут вспомнил что и на асме можно ещё как наархитектурить, см. тот же arc_conv https://github.com/amayra/arc_conv
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Crush_my_love
Т.е. получается у раста есть биндинги к плюсовому коду, и можно просто новый код дописывать уже на расте. Это вроде так же как и у Сей, которые используют кодбазу фортрана
к плюсовому коду биндинги через сишный аби, который для плюсов тоже в целом подходит, но есть крейт dtolnay/cxx который прямо крут (но очень ограничен)
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
На самом деле я тут вспомнил что и на асме можно ещё как наархитектурить, см. тот же arc_conv https://github.com/amayra/arc_conv
я когда погружался в осдев меня очень поразила крутая компонентная ось на асме, я ее потом немношк допиливал и через это учил асм и си
источник

AT

Anton TrionProg in RU Rust GameDev — русскоговорящее сообщество
Mikola Summer Duck
А если пкм?
а вот правой кнопкой работает. Спасибо. Ну вопросы все дизайнерам.. Что они одно сделали, а другое не сделали(скрыли). Ну и вообще в телеге меня раздражает подпись под картинками, а не над, потому что в в случае как в ВК сверху размещаешь текст, а ниже картинку.
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
по нынешним меркам она конечно фу, но для меня было как раз достаточно крутых вещей чтобы не утонуть и при этом что-то новое узнать
источник

C

Crush_my_love in RU Rust GameDev — русскоговорящее сообщество
Berkus Decker
к плюсовому коду биндинги через сишный аби, который для плюсов тоже в целом подходит, но есть крейт dtolnay/cxx который прямо крут (но очень ограничен)
Ок, понял.
источник

AT

Anton TrionProg in RU Rust GameDev — русскоговорящее сообщество
Crush_my_love
Я асм учил, чтобы понять как процессор код исполняет. Я понимаю, что большие программы на асм писать - такое себе
Ныне всё сильно поменялось. Ныне куда полезнее уметь оптимизировать под кэши, чем писать на асме под конкретную архитектуру. АСМ нужен максимум, что бы понимать, во сколько тебе обойдётся какое-то арифм. выражение и почему match быстрее куче if else if.

Компиляторы ныне очень умные и уже скорее лучше писать абстрактный архитектурно верный код, а компилятор его сам оптимизирует под конкретную платформу. Например, в языках уйма функций-пустышек, которые только возвращают значение(клозуры, геттеры и сеттеры) — естественно компилятор их выкидывает, но архитектурно они позволяют достичь , например, инкапсуляции, что бы vector.len не позволил случайно нагло обнулить его длину и разрушить его целостность.

Ну во всяком случае ИМХО.
источник

C

Crush_my_love in RU Rust GameDev — русскоговорящее сообщество
Anton TrionProg
Ныне всё сильно поменялось. Ныне куда полезнее уметь оптимизировать под кэши, чем писать на асме под конкретную архитектуру. АСМ нужен максимум, что бы понимать, во сколько тебе обойдётся какое-то арифм. выражение и почему match быстрее куче if else if.

Компиляторы ныне очень умные и уже скорее лучше писать абстрактный архитектурно верный код, а компилятор его сам оптимизирует под конкретную платформу. Например, в языках уйма функций-пустышек, которые только возвращают значение(клозуры, геттеры и сеттеры) — естественно компилятор их выкидывает, но архитектурно они позволяют достичь , например, инкапсуляции, что бы vector.len не позволил случайно нагло обнулить его длину и разрушить его целостность.

Ну во всяком случае ИМХО.
match - это аналог  switch'a?
источник

AT

Anton TrionProg in RU Rust GameDev — русскоговорящее сообщество
Crush_my_love
Я асм учил, чтобы понять как процессор код исполняет. Я понимаю, что большие программы на асм писать - такое себе
Честно скажу, не люблю я АСМ и вообще оптимизации "в начале" — из-за них только гейзенбаги. Уж лучше сначала выпустить продукт, а затем оптимизировать, но разрабатывать надо с учётом возможных оптимизаций.
источник

AT

Anton TrionProg in RU Rust GameDev — русскоговорящее сообщество
Crush_my_love
match - это аналог  switch'a?
да. В данном контексте да.
источник

is

ilya sheprut @optozorax in RU Rust GameDev — русскоговорящее сообщество
Crush_my_love
match - это аналог  switch'a?
да, только круче. вот тебе прям свежий пример когда два ифа хорошо заменяются одним матчем:
https://t.me/optozorax_dev/105
источник

C

Crush_my_love in RU Rust GameDev — русскоговорящее сообщество
Anton TrionProg
Честно скажу, не люблю я АСМ и вообще оптимизации "в начале" — из-за них только гейзенбаги. Уж лучше сначала выпустить продукт, а затем оптимизировать, но разрабатывать надо с учётом возможных оптимизаций.
Я согласен. Как я уже говорил, асм я учил(и буду учить, т.к. недоучил, нет времени), чтобы просто лучше понимать как моя программа исполняется. Писать на асме я вряд ли будут что-то больше хелловролдов
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Anton TrionProg
Ныне всё сильно поменялось. Ныне куда полезнее уметь оптимизировать под кэши, чем писать на асме под конкретную архитектуру. АСМ нужен максимум, что бы понимать, во сколько тебе обойдётся какое-то арифм. выражение и почему match быстрее куче if else if.

Компиляторы ныне очень умные и уже скорее лучше писать абстрактный архитектурно верный код, а компилятор его сам оптимизирует под конкретную платформу. Например, в языках уйма функций-пустышек, которые только возвращают значение(клозуры, геттеры и сеттеры) — естественно компилятор их выкидывает, но архитектурно они позволяют достичь , например, инкапсуляции, что бы vector.len не позволил случайно нагло обнулить его длину и разрушить его целостность.

Ну во всяком случае ИМХО.
> и почему match быстрее куче if else if.

ксттаи, почему, если он генерится в примерно такой же машкод?
источник

C

Crush_my_love in RU Rust GameDev — русскоговорящее сообщество
да, симпатично
источник

AT

Anton TrionProg in RU Rust GameDev — русскоговорящее сообщество
Crush_my_love
match - это аналог  switch'a?
А ещё есть предсказание операций процессором. Говорят, что это обнуляет нагрузку на проверку выхода за диапазон массива, например, вектора, сравнение на переполнение стека и подобные ifz. Но я точно не могу сказать. В общем, комп ныне не такая тупая машина, которая исполняет инструкцию за инструкцией.
источник

AT

Anton TrionProg in RU Rust GameDev — русскоговорящее сообщество
Berkus Decker
> и почему match быстрее куче if else if.

ксттаи, почему, если он генерится в примерно такой же машкод?
вот насколько я знаю, во всяком случае слышал, на асм я не смотрел. То switch 0,1,2,3 создаст некую таблицу переходов. Думаю, можно её придумать так: мы делаем массив указателей на точки перехода(label). И тупо в зависимости от значения switch тупо goto array[our_value].
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
Anton TrionProg
вот насколько я знаю, во всяком случае слышал, на асм я не смотрел. То switch 0,1,2,3 создаст некую таблицу переходов. Думаю, можно её придумать так: мы делаем массив указателей на точки перехода(label). И тупо в зависимости от значения switch тупо goto array[our_value].
ллвм сделает такую таблицу и из нескольких ифов, а разница то где?
источник

BD

Berkus Decker in RU Rust GameDev — русскоговорящее сообщество
снова слухи и страшилки
источник

AT

Anton TrionProg in RU Rust GameDev — русскоговорящее сообщество
Berkus Decker
ллвм сделает такую таблицу и из нескольких ифов, а разница то где?
Ха-ха. А вот это уже демонстрация того, что компилятор умнее, чем ты ожидал. Иба инфа о свитче ещё со времён С. Там ещё мол i++ медленнее, чем ++i.
источник

AT

Anton TrionProg in RU Rust GameDev — русскоговорящее сообщество
Berkus Decker
снова слухи и страшилки
трабла в том, что у раста один компилятор, а у крестов уйма, и не известно, проводят ли они оптимизацию, особенно если говорить о примитивных компиляторах под микроконтроллеры.
источник