Size: a a a

Scala User Group

2020 October 16

λ

λoλdog in Scala User Group
Oleg ℕizhnik
такая фигня, которой в байткоде не будет, она заменится на какую-то интрисик операцию
я сперва подумал про jvm intrinsic )
источник

R

RAFIZ in Scala User Group
Oleg ℕizhnik
такая фигня, которой в байткоде не будет, она заменится на какую-то интрисик операцию
почему мне такие simple штучки не объясните 😢

в обход theorems for free
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Всё потому что scala - чуть более пригодный для ООП язык
источник

E

Elijah in Scala User Group
Oleg ℕizhnik
Так же точно для примитивов.
В джаве нет никаких методов у примитивов, а в скале есть.
И даже + в 1 + 2 - это метод
это я знаю
источник

Oℕ

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

E

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

AK

Aleksey Kislitsa in Scala User Group
Oleg ℕizhnik
Всё потому что scala - чуть более пригодный для ООП язык
Их бин думал что скорее более академический или правильный, так как одной из причин его появления было нежелание в джаве добавлять академически корректные возможности ради совместимости и привычности.
Ну как то так.
Чукча не писатель, чукча читатель.
источник

ᛒᚨᚱᛏᛟᛋᛋᛟ... in Scala User Group
Elijah
я просто не могу понять, где конкретно лежит определение этого метода. я хочу своими глазами увидеть, в какой момент инт реально превращается в дабл. он же не из воздуха значение берет
оно скорее всего в IR Где то оптимизируется
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Elijah
я просто не могу понять, где конкретно лежит определение этого метода. я хочу своими глазами увидеть, в какой момент инт реально превращается в дабл. он же не из воздуха значение берет
вы почему-то рассуждаете на уровне "моментов" - вы сейчас о каком процессе говорите - работы приложения или компиляции?
источник

E

Elijah in Scala User Group
Oleg ℕizhnik
вы почему-то рассуждаете на уровне "моментов" - вы сейчас о каком процессе говорите - работы приложения или компиляции?
компиляции
источник

Oℕ

Oleg ℕizhnik in Scala User Group
Elijah
компиляции
во время компиляции инт в дабл не превращается
источник

Oℕ

Oleg ℕizhnik in Scala User Group
инт остаётся интом, дабл даблом
источник

E

Elijah in Scala User Group
хорошо, но в рантайме там же происходят какие-то операции, которые из моего инта, где мне нужен дабл, делают дабл
источник

Oℕ

Oleg ℕizhnik in Scala User Group
на самом раннем этапе компиляции ищется имплиситная конверсия, мы это с вами уже обсудили
источник

Oℕ

Oleg ℕizhnik in Scala User Group
на более позднем этапе компиляции некоторые методы превращаются в низкоуровневые операции, вместо вызовов реальных методов
источник

E

Elijah in Scala User Group
Oleg ℕizhnik
на самом раннем этапе компиляции ищется имплиситная конверсия, мы это с вами уже обсудили
да, и для этой конверсии где-то написано определение. я пытаюсь найти это определение в исходниках скалы
источник

Oℕ

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

E

Elijah in Scala User Group
а
источник

E

Elijah in Scala User Group
я чето упустил из виду, что рантайм скалы это жвм
источник

E

Elijah in Scala User Group
спасибо)
источник