Size: a a a

2020 March 09

Т8

Т-34 85 in rust_offtopic
Gymmasssorla
Посмотри на определение Cow. Оно требует заимствования
может, я не так выразился. Я про то, что вообще никогда не передавать по ссылке, только по значению
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
Бери rc и arc
работает только для объектов на хипе
источник

G

Gymmasssorla in rust_offtopic
Т-34 85
может, я не так выразился. Я про то, что вообще никогда не передавать по ссылке, только по значению
запретить ссылки в языке?
источник

Т8

Т-34 85 in rust_offtopic
Gymmasssorla
запретить ссылки в языке?
ага
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
работает только для объектов на хипе
Ну а все на стеке по значению и передавать
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
Ну а все на стеке по значению и передавать
надо подумать
1) если мы не меняем объект, то ничего не происходит, но при этом тягаем "тяжёлый" Rc?
2) а если меняем, то всё +- оправдано
3) а если нам реально нужна полная копия, то либо в аргумент передавать её, либо в функции создавать? И тогда пункт 1 в более плохой редакции?
—-
Так а что это получается, мы никак не поменяем данные на стеке, даже если надо? И, похоже, ссылкам тут альтернатива только указатели
источник

Т8

Т-34 85 in rust_offtopic
с другой стороны, тогда можно возвращать объект, который будет изменён
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
надо подумать
1) если мы не меняем объект, то ничего не происходит, но при этом тягаем "тяжёлый" Rc?
2) а если меняем, то всё +- оправдано
3) а если нам реально нужна полная копия, то либо в аргумент передавать её, либо в функции создавать? И тогда пункт 1 в более плохой редакции?
—-
Так а что это получается, мы никак не поменяем данные на стеке, даже если надо? И, похоже, ссылкам тут альтернатива только указатели
Можно делать язык вообще без изменяемых данных, у него и гц делать проще, если захочется и компилятору проще будет.
источник

DS

Doge Shibu in rust_offtopic
(главное ленивым не делать, это да, тогда сложно опять будет)
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
Можно делать язык вообще без изменяемых данных, у него и гц делать проще, если захочется и компилятору проще будет.
только что про это подумал, но слишком оверхедно будет. Прикинь, тебе надо байтик поменять у тяжёлого объекта, но вместо этого ты его полностью создаёшь
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
только что про это подумал, но слишком оверхедно будет. Прикинь, тебе надо байтик поменять у тяжёлого объекта, но вместо этого ты его полностью создаёшь
А тут можно делать оптимизации компилятором
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
А тут можно делать оптимизации компилятором
лично у меня мозгов не хватит делать такие оптимизации. Разве что компилятор бэкенд языка (clang, например) разберётся
источник

DS

Doge Shibu in rust_offtopic
Если он может доказать, что на этот объект никто не ссылается или что наоборот значение никем не меняется и его можно передавать ссылкой, то можно много чего веселого сделать
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
Если он может доказать, что на этот объект никто не ссылается или что наоборот значение никем не меняется и его можно передавать ссылкой, то можно много чего веселого сделать
это очень сложно воплотить в компиляторе
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
это очень сложно воплотить в компиляторе
Тебе не нужно это делать во всех случаях, только там, где легко доказать, уже можно будет выиграть неплохо
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
Тебе не нужно это делать во всех случаях, только там, где легко доказать, уже можно будет выиграть неплохо
подозреваю, что для системного языка такой выигрыш либо будет недостаточен и лучше не идти по этому пути, либо очень много умных людей должно над этим думать. Почему-то Хэскелл не используется для разработки ядер ОС и драйверов
источник

DS

Doge Shibu in rust_offtopic
Т-34 85
подозреваю, что для системного языка такой выигрыш либо будет недостаточен и лучше не идти по этому пути, либо очень много умных людей должно над этим думать. Почему-то Хэскелл не используется для разработки ядер ОС и драйверов
Потому что хаскель ленивый
источник

DS

Doge Shibu in rust_offtopic
Это очень многое меняет в языке в плане его пригодности для системного кода
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
Потому что хаскель ленивый
а какой язык "такой же", но не ленивый?
источник

Т8

Т-34 85 in rust_offtopic
и компилируется в нативный код
источник