Size: a a a

Scala User Group

2021 May 13

Oℕ

Oleg ℕizhnik in Scala User Group
можете сами почитать байткод, чтобы убедиться насколько он бесплатен
источник

Oℕ

Oleg ℕizhnik in Scala User Group
в частности, насколько он бесплатен с точки зрения ограничений в жит оптимизациях
источник

SA

Sergey Alaev in Scala User Group
Можете скинуть кусок дампа или декомпиляцию? Мне сейчас нечего собрать под скала3
источник

Oℕ

Oleg ℕizhnik in Scala User Group
думаю, эффективнее всего будет через jmh пропустить обычный имплисит и лейзи вал
источник

Oℕ

Oleg ℕizhnik in Scala User Group
источник

SA

Sergey Alaev in Scala User Group
public TC<X> derived$TC() {
       long l;
       long l2;
       while ((l = LazyVals$.MODULE$.STATE(l2 = LazyVals$.MODULE$.get((Object)this, X.OFFSET$_m_0), 0)) != 3) {
           if (l == 0) {
               if (!LazyVals$.MODULE$.CAS((Object)this, X.OFFSET$_m_0, l2, 1, 0)) continue;
               try {
                   TC<X> tC;
                   derived$TC$lzy1 = tC = TC$.MODULE$.derived();
                   LazyVals$.MODULE$.setFlag((Object)this, X.OFFSET$_m_0, 3, 0);
                   return tC;
               }
               catch (Throwable throwable) {
                   LazyVals$.MODULE$.setFlag((Object)this, X.OFFSET$_m_0, 0, 0);
                   throw throwable;
               }
           }
           LazyVals$.MODULE$.wait4Notification((Object)this, X.OFFSET$_m_0, l2, 0);
       }
       return derived$TC$lzy1;
   }


https://github.com/lampepfl/dotty/blob/master/library/src/scala/runtime/LazyVals.scala

Да, всё плохо.
источник

SA

Sergey Alaev in Scala User Group
Но не слишком - unsafe.getLongVolatile(t, off) на х86 - это же несинхронизированное чтение памяти? Если так, то при чтении lazy val синхронизации не будет и страдать придется только от проблем с инлайнингом
источник
2021 May 14

λ

λoλcat in Scala User Group
источник

Oℕ

Oleg ℕizhnik in Scala User Group
лол
источник

λ

λoλcat in Scala User Group
Под scala3 и без Притти
источник

АР

Андрей Романов... in Scala User Group
перенесли
источник

АР

Андрей Романов... in Scala User Group
ничего себе
источник

λ

λoλcat in Scala User Group
Как хорошо, что опенсорс можно украсть в случае кансела
источник

Oℕ

Oleg ℕizhnik in Scala User Group
cancelsource
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ну она нормально украдена
источник

Oℕ

Oleg ℕizhnik in Scala User Group
с историей гита
источник

Oℕ

Oleg ℕizhnik in Scala User Group
ааа она даже перенесена, т.е. её притти сам перенёс под крыло варски
источник

Oℕ

Oleg ℕizhnik in Scala User Group
т.е. максимально неукрадена
источник

ΛВ

Λнтон Войцишевский... in Scala User Group
Притти теперь серый кардинал
источник

λ

λoλcat in Scala User Group
Причем, фури выпилили как никому ненужную игрушку
источник