Pull to refresh

Comments 37

А в Graal предварительно скомпилированные до какой даты пока работают?

Как я понимаю любые. Но новые приложения на 14.4 уже могут не собраться.

так а Graal же не обязательно компилировать в натив, это не единственный вариант ее использования, а просто опция, там jit по тестам работает на 20% быстрее, если оракл версия, а не комьюнити. Т.е. можно пользоваться как обычной vm.

Было бы правильней уточнить какая vm падает, а не просто абстрактная java, потому что есть hotspot, graal и даже OpenJ9 и это все совершенно разные vm.

Падает, всё что JIT. Не падает AOT без JIT, который компилиурет в натив.

Jetbrains получается пропатчили свою джава раз не падает ?

У мен вчера два раза упал на разных маках. До обновления такого не было.

Я только 3 дня назад обновился до 14.4, по 10 часов в день запущена IDE, пока ни одного падения. Макбук про м1.

Как временное решение можно использовать вместо "нативной" aarch64 версию x64 под мак. В производительности теряете ~5% (IMHO), но не вылетает, а там ждем когда пофиксят.

Как временное решение - да. Но x64 бинарники если и работают не сильно медленно, то вот запускаются намного дольше.

Кто-то похоже скопипастил код для iOS (в котором запрещена JIT-компиляция для пользовательских приложений) в macOS.

Скорее это просто обратная сторона унификации iOS и Mac OS. Всё больше частей делается общими.

И на Мак распространяются ограничения iOS просто потому что так удобнее было закодить?

Или на Мак распространяются ограничения iOS просто потому, что эти ограничения делают систему более безопасной?

В любом случае без официального ответа мы не узнаем причину.

Ну причина давно известна.

The first because we are an Apple, the second because f&ck you, that's why

Скорее это растёт из процессорной архитектуры Apple Silicon. Там есть нюансы с самомодифицирующимся кодом.

Оракл рекомендует не обновлять ARM маки до версии 14.4 пока Эппл не починит баг.

Найс, разогнали штатных тестировщиков и теперь тестируют продукты на пользоввателях!

Ох вей, это же не Мелкомягкие, ну тогда понять и простить

Ну Apple вообще не любит Java, поэтому, возможно, это их принципиальная позиция, и они считают, что это именно Oracle должна чинить баг. Собственно, формально поддержка Java не является частью основного дистрибутива macOS и устанавливается пользователем на свой страх и риск, хотя и из репозитория Apple.

На НАШ компьютер вы устанавливаете ВАШУ программу на свой страх и риск!

Вот до чего мы дожили. Фон Нейман с Тьюрингом обнявшись плачут.

Ну вообще во времена фон Неймана и Тьюринга так и было – программисты считались вспомогательным персоналом, налаживающим Компьютер.

Я бы не сказал, что Apple не любит Java. Наоборот Apple долгое время делала ставку на Java и очень сильно ей помогала. Например:

  1. поддержка 3D ускорения для Swing

  2. Ускорение запуска через shared rt.jar

  3. Apple предоставляла и сопровождала JNI прослойку ко всем функциям OS

  4. Обеспечивала бридж между Java приложениями и AppleScript

Но Java так и не стала популярной на Apple экосистеме и это точно не по причине того, что Apple не любило Java.

Apple вообще не любит Java

Сильное заявление. У них много бэка на Java.

А что, отключение JIT не помогает тоже? Не то чтобы я был уверен, что всегда можно отключить, но такие параметры имеются.

Это все понятно. Просто в статье написано, что способов обхода нет, в тоже время, если причина явно в JIT, а он отключается - это вызывает вопросы.

Замедление примерно в 100 раз. Типичная приложенька просто не запустится или не будет работать с такой производительностью. Поставить х86 jdk выглядит более хорошим временным решением.

У меня IDE от Jetbrains стали падать. Прискорбно...

К сожалению, дальнейшее усложнение систем с закрытым исходным кодом будет всё чаще вызывать подобные баги.

Падению общего уровня программистов и процессов разработки будет вызывать баги.
Например, в этом случае падать будет не только Java. Всё, что JIT будет падать. Возможно, что даже Python (должен был падать, но они, вроде, не успели в последнем релизе нативный AOT включить). Весь код, которые изменяет себя runtime будет падать. А такого кода много. Это было очевидно и предсказуемо. Но даже если ты пишешь ОС и при этом идиот, не понимающий, что и для чего в этой ОС используется, то на этот случай есть тестирование и предрелизные сборки. В которых ничего не падало, а поломали прямо в релизе без всякого тестирования. То есть не только идиот софт разрабатывал, а весь процесс разработки построен идиотами и никак толком не контролируется ещё одними идиотами, так как если идиот может неожиданно принять решение что-то крупное поломать в ОС без согласования и тестирования, то контроля нет. Сегодня динамический код запретили с бухты барахты, а завтра пароль "1234" на рута зашьют, так как тоже отличная идея.

1234 - это верх безопасности по сравнению с тем, что у них было когда-то на High Sierra. Можно было ввести имя пользователя root без пароля, и, вуаля, ты в системе с неограниченными правами.

Если бы у системы был открытый исходный код, такое бы никогда в жизни не прошло в релиз

с тем, что у них было когда-то на High Sierra.

Это еще что. Помнится на PowerPC у них была ОС которая вообще не давала защищенного режима приложениям. Т.е. любое приложение могло в любой момент времени залезть в память другого процесса. И ничего. Работало весьма стабильно и быстро. Эх. Были же времена когда не было хакиров :)

Если бы у системы был открытый исходный код, такое бы никогда в жизни не прошло в релиз

Очень сомневаюсь, что дело именно в открытости исходного кода.
В том же GRUB каких-только секурити дефектов не находят. Например был один когда для обхода пароля было достаточно ввести один любой символ из этого пароля.

Или когда пароль на скринсейвере банально ломали через переполнение буфера (нужно было ввести больше 255 символов). Скринсейвер крашился и открывал доступ к десктопу.

И все эти решения - OpenSource и баги эти жили годами.

Баги будут всегда и везде. Пока есть люди, будут и баги. Вопрос в том, когда этот баг пофиксят. Они вообще могут его не фиксить либо отложить до осени. А о скольких серьезных багах, которые уже есть в системе, обнаружены ими, но ждут окна для их устранения, мы даже не знаем? А если такие баги обнаружены ими, то велика вероятность, что и хакеры о них прекрасно знают.

Моё личное мнение, которое я никому не навязываю: закрытое программное обеспечение менее безопасно, чем открытое. Security through obscurity не работает.

Python интерпретирует части самой macOS, она не будет устанавливаться, если Python упадёт.

Разные версии ведут по-разному, но в целом python активно движется в сторону бинарной трансляции. В MacOS может использоваться более старая версия и в неё могут быть подставленные доморощенные костыли.

Apple высказывалась в том смысле, что питон в числе языков, которые с её стороны будут поддерживаться.

Так тут дело не в том, что Java не поддерживается, а в том, что выкатили неоттестированое изменение. Там, вроде, уже писали, что это ошибка, которая будет исправлена.

UFO just landed and posted this here
Sign up to leave a comment.

Other news