Size: a a a

2020 January 14

P

Pavel in rust_offtopic
Bogdan
Вроде аналог какаойто обезали ввести, документированый
много разных штук ввели, но основное для чего юзалась -- dynamic proxy, для них и для динамических языков ввели MethodHandle и обвязку, с ним можно линковать код в рантайме, он же под капотом используется для оптимизации лямбд (в основном композиция)
источник

P

Pavel in rust_offtopic
Bogdan
Причем я проводил декомпиляцию после джита

myPtr.getName() тупо соптимайзило до прибавления двух адресов и разименования

Заинлайнило ансейф
mapped/direct buffer будет то же самое
источник

P

Pavel in rust_offtopic
(там даже внутри уже арифметика указателей)
источник

B

Bogdan in rust_offtopic
Вроде какуюто обвязку над полями сделали, тайпсейф
источник

P

Pavel in rust_offtopic
Bogdan
Вроде какуюто обвязку над полями сделали, тайпсейф
MethodHandle + Lookup, вот буквально весь фреймворк
источник

P

Pavel in rust_offtopic
можно ссылаться на поля, на методы, на лямбды, можно их комбинировать, кастовать, каррировать, спредить и собирать аргументы, вызывать разными инструкциями, вызывать конкретный или оверлоад, т.д.
источник

P

Pavel in rust_offtopic
есть ещё отдельный пакет в ждк для линковки, в нём можно ещё чуть больше, там есть примитивы для линковки
источник

B

Bogdan in rust_offtopic
Pavel
можно ссылаться на поля, на методы, на лямбды, можно их комбинировать, кастовать, каррировать, спредить и собирать аргументы, вызывать разными инструкциями, вызывать конкретный или оверлоад, т.д.
А новый может как старый сделать присвоение переменной ссылочной значение ссылки на неправильный тип?😄
источник

B

Bogdan in rust_offtopic
UNSAFE.compareAndSwapLong(..)

Раньше еще модно было атомик поля делать, а в новой чтоли только через AtomicLong, который боксинг юзает?(
источник

P

Pavel in rust_offtopic
Bogdan
UNSAFE.compareAndSwapLong(..)

Раньше еще модно было атомик поля делать, а в новой чтоли только через AtomicLong, который боксинг юзает?(
AtomicFieldUpdater
источник

B

Bogdan in rust_offtopic
Норм
источник

P

Pavel in rust_offtopic
и не всё, что ты видишь как объект будет бокситься, в вм есть интринсики, например, вообще, лучше об этом не беспокоиться, на таких мелочах выигрывать надо только когда Netty пишешь
источник

B

Bogdan in rust_offtopic
Pavel
и не всё, что ты видишь как объект будет бокситься, в вм есть интринсики, например, вообще, лучше об этом не беспокоиться, на таких мелочах выигрывать надо только когда Netty пишешь
Это если локальные переменные а не поля какого-то там класса, который раз юзается с атомиками, то будет шариться меж потоков
источник

B

Bogdan in rust_offtopic
Pavel
и не всё, что ты видишь как объект будет бокситься, в вм есть интринсики, например, вообще, лучше об этом не беспокоиться, на таких мелочах выигрывать надо только когда Netty пишешь
Оно то да, но перформанс этого самого нетти может задеть)
источник

А

Андрей in rust_offtopic
Народ, а почему раст не может в компайл тайме посчитать размер трейта по самой жирной реализации, как это было бы с енамом?
источник

T1

Tony 123 in rust_offtopic
Антон ⚙️
Так раст для этого куда лучше подходит
Конечно же нет, в расте много ограничений со стороны безопасности и семантики. Даже принтеров нет, о чем здесь говорить можно.
источник

S

Sergey in rust_offtopic
Такую low-level шляпу в любом случае в unsafe придется заворачивать
источник

S

Sergey in rust_offtopic
но а снаружи можно да, сделать безопасное апи
источник

S

Sergey in rust_offtopic
но да, раст для этого збс
источник

ch

central hardware in rust_offtopic
куда rust toolchain ставится по дефолту на винде?
источник