The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Компания Oracle представила универсальную виртуальную машину GraalVM

20.04.2018 21:06

Компания Oracle анонсировала первый релиз проекта GraalVM, в рамках которого развивается универсальная виртуальная машина для запуска приложений, написанных на JavaScript (Node.js), Python, Ruby, R, любых языках для JVM (Java, Scala, Clojure, Kotlin) и языках, для которых может формироваться биткод LLVM (C, C++, Rust). Код проекта распространяется под лицензией GPLv2. Несмотря на анонс от Oracle, выпуск GraalVM 1.0 пока имеет статус кандидата в релизы.

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

Вместо преобразования структур данных в подобных программах, GraalVM позволяет непосредственно обращаться к объектам и массивам из других языков, убирая изоляцию между языками и позволяя использовать общий runtime. Например, из JavaScript-кода для Node.js можно обращаться к библиотеке классов Java или из кода на Java вызывать функции обработки статистики на языке Python, или запускать код на языке R для создания сложных SVG-графиков. Используя GraalVM программист может сочетать в одном проекте разные языки, выбирая язык наиболее подходящий для каждого вида задач.

GraalVM может применяться как для создания обособленных исполняемых приложений, так и как часть платформ, подобных OpenJDK и Node.js, или даже встраиваясь как движок обработки данных в СУБД, таких как MySQL и Oracle. Для запуска приложений предлагается стандартизированное окружение для выполнения на базе HotSpot JVM. GraalVM предоставляет JIT-компилятор, который может на лету выполнять в JVM код любых скриптовых языков, включая JavaScript, Ruby, Python и R, а также даёт возможность запускать нативный код в JVM, преобразованный в биткод LLVM. Предоставляемый GraalVM инструментарий включает независимые от языков программирования отладчик, систему профилирования и анализатор распределения памяти.

Для языков на базе JVM имеется возможность создания скомпилированных нативных образов, которые можно выполнять напрямую с минимальным потреблением памяти. Для создания таких исполняемых образов применяется предварительный статический анализ для выявления всего кода, который охватывает выполнение основного Java-метода, после чего к этому коду применяется полноценная упреждающая компиляция (AOT, ahead-of-time). Функциональность управления памятью и потоками реализована через подключение специальной Substrate VM, которая может компилироваться в исполняемый код. В результате формируется исполняемый файл, включающий машинный код приложения, готовый к незамедлительному выполнению без громоздких прослоек, таких как HotSpot VM.

  1. Главная ссылка к новости (https://blogs.oracle.com/devel...)
  2. OpenNews: Компания Oracle опубликовала Java SE 10 и прекратила поддержку Java SE 9
  3. OpenNews: Проекты по созданию компиляторов из Java в JavaScript и исполняемые файлы
  4. OpenNews: Android переходит с виртуальной машины Dalvik на компилятор ART
  5. OpenNews: Представлен метод скрытого изменения памяти чужих виртуальных машин
  6. OpenNews: В ChromeOS появится возможность запуска виртуальных машин с Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/48472-graalvm
Ключевые слова: graalvm, java, jvm, jit, compile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (110) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (-), 21:18, 20/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Т.е. без жабы оно всё-таки не работает?
     
     
  • 2.5, Аноним (-), 21:27, 20/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    http://www.graalvm.org/docs/ :

    > GraalVM 1.0 is based on JDK 8.
    > GraalVM includes the following components:
    > Oracle HotSpot Java Virtual Machine (JVM): A runtime environment for JVM-based languages and supported guest programming languages.

     
  • 2.57, Аноним (-), 10:30, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Частично. Пара языков и связки язык<->язык требуют жабу
     

  • 1.3, Anon4ik (?), 21:19, 20/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +19 +/
    Хипсторы счастливы.
     
     
  • 2.144, Аноним (-), 02:55, 24/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это только пока они не попробовали на практике скрестить жабу с гадюкой. А когда попробуют - Наполеонов резко прибавится. Потому что у разных ЯПов разные подходы к типизации, объектам и проч. И когда они со всей этой фигней попробуют взлететь...
     

  • 1.7, Аноним (-), 21:37, 20/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md скормить этой штуке древний код и получить конфету не выйдет. Очень много «но».
     
     
  • 2.96, Аноним (-), 18:51, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    SubstrateVM это тупая запускалка для языков без мощного рантайма. Единственное, что на ней должно работать, это написанные на Java компоненты самого Graal.

    Для AOT-компиляции существующего Java-кода логичнее использовать нормальный AOT, реализованный в Java 9: http://openjdk.java.net/jeps/295

     

  • 1.9, Аноним (-), 21:51, 20/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Несомненно это прорыв в IT
     
     
  • 2.13, имя (?), 22:05, 20/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ничего нового, до него уже была попытка сделать ParrotVM.
     
     
  • 3.52, Аноним (-), 09:30, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >Ничего нового, до него уже была попытка сделать ParrotVM.

    Вот именно попытка. А Oracle которого все поносили, СДЕЛАЛ!

     
     
  • 4.109, Аноним (-), 21:57, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Вот именно попытка. А Oracle которого все поносили, СДЕЛАЛ!

    Вообще-то первый релиз со стабилизацией API был в далеком 2009 году. Последний стабильный релиз 8.1.0 появился 16 февраля 2016 года. Так что ParrotVM вовсе не попытка, а работоспособный. Если сравнивать их, то у ParrotVM заявлен более внушительный список поддерживаемых ЯП. Но как и с GraalVM, много чего пока поддерживается частично. Тут вообще говоря невозможно остановиться и сказать что XyzVM поддерживает конкретный ЯП до конца, т.к. ЯП тоже обрастают новыми возможностями.
    Ладно, это не важно. Важно чтобы ты понял что пора переставать пустозвонить!

     
     
  • 5.122, Аноним (-), 08:15, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И чего с тех пор добились разработчики ParrotVM Производительности выше, чем у ... большой текст свёрнут, показать
     
     
  • 6.129, Аноним (-), 11:23, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > ParrotVM/pynie как начала с "частичной" поддержки Питона, так на ней и осталась.
    > Graal позволяет подключать библиотеки на C/C++ (через sulong/LLVM) и напрямую выполнять байткод поддерживаемых языков (вместо компиляции в свой байткод, как у ParrotVM). Это на порядок снижает затраты на поддержку и добавление новых возможностей языков.

    Эм. И что, это и правда поможет загружать питоновские расширения, где есть C-шный код? Который, напомню, подразумевает ручное управление памятью и инструкции для GIL, специфичные для CPython реализации?

    Не вижу разницы с ситуацией с ParrotVM, проблема вовсе не в FFI и невозможности подгрузки библиотек, а в том, что спецификация Python C API для расширений тесно связана с реализацией CPython.

     
  • 2.107, Аноним (-), 20:58, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +8 +/
    >это прорыв в IT

    Вызывайте скорей сантехников, иначе эту IT потом не отмоем.

     
     
  • 3.130, Аноним (-), 11:24, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    >>это прорыв в IT
    > Вызывайте скорей сантехников, иначе эту IT потом не отмоем.

    Дык сантехники нынче в оракле как раз и работают же!

     
     
  • 4.143, Аноним (-), 00:42, 24/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Новости об оракле внимательнее читай: всех сантехников почти сразу и уволили оттудова
     

  • 1.10, Gemorroj (ok), 21:52, 20/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    где php!?
     
     
  • 2.70, Аноним (-), 13:45, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > где php!?

    в ж

     
  • 2.97, Аноним (-), 18:53, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Facebook уже пытался писать новую VM для него. Результат на лицо
     
     
  • 3.99, Gemorroj (ok), 18:56, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    нормальный был результат. просто с выходом php 7 нужность hhvm сильно снизилась.
     
     
  • 4.117, Аноним (-), 06:33, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > нужность hhvm сильно снизилась

    Вот-вот. Кто в здравом уме будем адаптировать VM для языка, чтобы через год её нужность "сильно снизилась"?

     
     
  • 5.126, Gemorroj (ok), 10:25, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    основной задачей фейсбуковского пхп было повышение производительности и строгая типизация. и то и другое завезли в php 7.
    у фейсбуковского пхп в преимуществах остался jit и hack.
    jit в обозримом будущем должны завести в оригинальный пхп.
    лицензионных ограничений, которые могли бы побудить использовать hhvm а не zend engine не наблюдается.
    ---
    так что эта ваша подростковая мода хейтить пхп не имеет под собой, в данном случае, оснований.
     
  • 3.141, F (?), 13:21, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, на лицо - Face же book!
     
  • 2.136, Аноним (-), 22:22, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >> где php!?

    Не надо ругаться! Пожалуйста.

     

  • 1.11, Аноним (-), 22:02, 20/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Теперь софт будут писать еще более упoрото. Сверху еще докер нужен!
     
     
  • 2.20, Led (ok), 23:17, 20/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Теперь софт будут писать еще более упoрото.

    Разве это возможно?

     
     
  • 3.47, хрю (?), 08:17, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Есть поверхностое мнение, что GraalVM предоставляет для упoротой разработки просто безграничные возможности.
     
     
  • 4.67, Аноним (-), 13:04, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Люблю упорοтую разработку! Даёшь поддержку brainfuck!
     
     
  • 5.76, max (??), 16:16, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    держи, шутник :-)
    https://github.com/chumer/bf
     
  • 2.71, Аноним (-), 13:46, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Сверху еще докер нужен!

    Нет. Докер - он снизу!

     
     
  • 3.118, Andrey Mitrofanov (?), 07:04, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Сверху еще докер нужен!
    > Нет. Докер - он снизу!

    Докер, он в головах. :/

     

  • 1.14, Аноним (-), 22:16, 20/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Осталось добавить веб-интерфейс и получится beaker-notebook?..
     
  • 1.15, Аноним (-), 22:16, 20/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    >высокопроизводительное выполнение кода
    >based on JDK
     
     
  • 2.16, Аноним (-), 22:20, 20/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    JIT в мирке анонимуса еще не изобрели, жаль.
     
     
  • 3.79, Crazy Alex (ok), 17:01, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то неплохо бы знать, JIT, да ещё и с оптимизацией - адски дорогая штука, оправдывающая себя сильно не везде.
     
     
  • 4.103, Аноним (-), 20:19, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Поэтому JIT там многоуровневый с разной степенью оптимизации и стоимостью компиляции (см. tiered compilation).
     
     
  • 5.112, Crazy Alex (ok), 22:13, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Именно. Для постоянно крутящегося чего-то - нормально, а для того, чтобы быстро запустить и прибить (от утилит до микросервисов) - не особо. В остальном - собственно, довольно живые реализации всей этой скриптятины и не только её под jvm и раньше были, и взаимодействовать тоже могли.
     
  • 5.146, Аноним (-), 04:53, 25/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Поэтому JIT там многоуровневый с разной степенью оптимизации и стоимостью компиляции (см.
    > tiered compilation).

    Ну то-есть получается какая-то оверинженернутая энтерпрайзятина, по типу жабы, где один только запуск программы ждать заманаешься :)

     
  • 3.145, Аноним (-), 04:22, 25/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >  JIT в мирке анонимуса еще не изобрели, жаль.

    Глядя на то сколько вкалывает gcc -O3 с LTO чтобы выдать нормальный уровень оптимизации - я как-то не очень хочу чтобы при запуске каждой программы все встревало на столько же. Значит, оптимизация будет хуже.

    В смысле, в случае gcc оно тормозило 1 раз и где-то там. Возможно даже не у меня а на могучей билдферме у майнтайнеров системы вообще. А тут разрываться между вклином на дофига или тупняками неоптимизированного кода будет уже именно мой компьютер и это как-то без вариантов. Так что подход понравится разве что фанатам "приложений на электроне". Нуакули, в электроне JIT есть!

     

  • 1.23, Аноним (-), 23:51, 20/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хорошая попытка, орки, но нет, гугл теперь на ваши сраные патенты ни ногой.

    А так действительно грааль.

     
     
  • 2.31, Аноним (-), 01:30, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Грааль зделали 50 лет назад: i8088
    Он всё это умел)
    https://ru.wikipedia.org/wiki/8088#/media/File:I8088.jpg
    Клоуны)
     
     
  • 3.45, Аноним (-), 06:57, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > зделали

    Ты должен мне новые глаза. Даже если это было в шутку.

     

  • 1.27, Аноним (-), 00:58, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Oracl уже показал свои патентные замашки, будут жить в своем виртуальном мирке в одиночестве
     
     
  • 2.32, random (??), 02:06, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –4 +/
    А я считаю, что гугл получил по заслугам. Он добровольно-принудительно выуживает всю персональную инфу, до которой его вонючие щупальца только могут добраться. Столлман все-таки был прав. Да-да, я знаю, сейчас набегут и расскажут, как зонд приятен и удобен ))
     
     
  • 3.46, Аноним (-), 06:59, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну есть же репликанты всякие. А вообще смартфоны by design зонды, как и любые сотовые телефоны. Даже если предположить что будет 100% свободная прошифка радиомодуля и вообще всех SoC в телефоне - сотовые станции то проприетарны и что там делает оператор с твоими данными ты не знаешь.
     
     
  • 4.80, Crazy Alex (ok), 17:05, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это end-to-end шифрованием решается,  а собственно телефонный голосовые звонки - для смартфона уже практически побочная функция.
     
     
  • 5.131, Аноним (-), 11:26, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Это end-to-end шифрованием решается,  а собственно телефонный голосовые звонки - для
    > смартфона уже практически побочная функция.

    Ага, ты в курсе что с 1 июня все звонки сохранять будут? Ну так вот, отсеять твои шифрованные сообщения раз плюнуть. Не выделяйся из толпы - будь толпой.

     
     
  • 6.147, Аноним (-), 05:27, 25/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну так вот, отсеять твои шифрованные сообщения раз плюнуть.

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

     
  • 3.48, Аноним (-), 09:23, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    нет, не по заслугам. Патенты на апи к гуглослежке почти никакого (кроме совсем косвенного) отношения не имеют и нарушают права всех нас.
     

  • 1.34, Аноним (-), 02:37, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Как минимум заманчиво.
     
  • 1.35, Вареник (?), 03:05, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И все это с native-компилляцией. Класс.
     
     
  • 2.77, Comdiv (ok), 16:51, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У меня helloworld получился на 7 мегабайт. Стоит это учитывать
     
     
  • 3.86, Аноним (-), 17:36, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Всего 7мб. С бесплатным Excelsior JET у тебя получиться 100мб helloworld, а с платным и очень догорим около 40
     
     
  • 4.91, Comdiv (ok), 18:12, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    У бесплатного JET получилось 140 килобайт. Но даже если бы у него действительно было бы 100мб, это бы не означало, что 7 мб -это хорошо.
     
     
  • 5.94, Аноним (-), 18:38, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    И где ты найдёшь JIT-компилятор плюс GC меньше 7 мб?
     
     
  • 6.95, Comdiv (ok), 18:49, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > И где ты найдёшь JIT-компилятор плюс GC меньше 7 мб?

    GC мало занимает, а JIT туда не включён, судя по ограничениям - https://github.com/oracle/graal/blob/master/substratevm/LIMITATIONS.md , но можете привести ссылку где указано, что включён. Только что бы это изменило? Зачем это нужно в любом приложении?

     
     
  • 7.100, Аноним (-), 19:03, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Только тупой GC с минимумом настроек В HotSpot их десяток из коробки В Android ... большой текст свёрнут, показать
     
     
  • 8.102, Аноним (-), 19:47, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Минимальный профиль у jet 14 без всего занимает 30 с чем-то мб и еще сам исполня... текст свёрнут, показать
     
  • 8.105, Comdiv (ok), 20:40, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В среде для запуска разных приложений - это оправдано, в отдельно собранном прил... текст свёрнут, показать
     
     
  • 9.123, Аноним (-), 08:31, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это я к тому, что все крутые ребята переезжают на AOT JIT или JIT с кеширован... большой текст свёрнут, показать
     
  • 5.101, Аноним (-), 19:38, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    ну покажи helloword скомпилированный в jet на 140кб
     
     
  • 6.104, Comdiv (ok), 20:31, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Попробуйте сами https://www.excelsiorjet.com - это не сложно.
     
     
  • 7.116, Аноним (-), 05:46, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То есть сделать hello world  в jet на 140кб ты не можешь. Приходит когда получишь исполняемый файл вместе со средой для его запуска хотя бы меньше 20мб
     
     
  • 8.132, Comdiv (ok), 13:10, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Могу, конечно Просто Вам никто ничего не обязан Попробовали бы сделать сами и ... текст свёрнут, показать
     
     
  • 9.134, Аноним (-), 15:22, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Я пробовал excelsior jet и знаю о чем говорю Но Вы продолжайте доказывать что н... текст свёрнут, показать
     
     
  • 10.135, Comdiv (ok), 15:23, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Когда именно Вы пробовали ... текст свёрнут, показать
     
  • 3.89, Аноним (-), 17:47, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Пора переписывать с Electron на жабу? :D
     
  • 3.92, anonymous (??), 18:32, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    а как бугуртили 20 лет назад из-за того что Delphi создает helloworld ы размером целых 600 килобайт. Прогресс.
     
     
  • 4.125, анонимус (??), 10:19, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Там реализация классов емнип много занимает. Я попробовал и написал на winapi в c++ builder и исполняемый файл был небольшой.
     

  • 1.36, Аноним (-), 03:16, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    И как в этой программе идёт разделение доступа к железу? Полное отсутствие доступа ??
     
  • 1.37, Вареник (?), 03:19, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Не хватает поддержки .NET ))
     
  • 1.41, Афаф (?), 05:22, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Ни слова про clr. Дот нет идёт сторонкой?
     
     
  • 2.49, Аноним (-), 09:24, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Ни слова про clr. Дот нет идёт сторонкой?

    Слишком отличный от явы лучший конкурент явы. А ява внезапно оракловская и машина сделана поверх явы.

     
  • 2.74, And (??), 14:52, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    https://github.com/oracle/graal/issues/349

    A C# and .NET interpreter on top of Truffle would be absolutely possible. You can either implement it as a full AST interpreter specialized for C# (similar to Graal.js) or you could implement a Bytecode Interpreter for CLR bytecode (similar to Sulong). The second approach would probably be simpler and would also get you support for other CLR languages.

    Currently we have nobody working on it. But we are an open platform ;-).

    ---------------------

    We would actively support such an effort. Also, we could create internships for students with .NET assembly experience for getting it started.

     

  • 1.50, Ю.Т. (?), 09:28, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Математики ∆етекте∆.
    Объекты не "языков", а "рабочих сред реализаций языков".
    Признаться, смысла всей этой затеи я не понял, если это работает с байткодом одного лишь llvm.
     
     
  • 2.58, Аноним (-), 10:40, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это работает поверх HotSpot, который отрефакторили для поддержки динамических языков с *любым* байткодом.

    Вся соль в том, что HotSpot ценой безумных затрат допилили чтобы его GC можно было использовать отдельно от библиотеки классов Java (или если посмотреть с другой стороны — вынесли JIT-компилятор в отдельную библиотеку, которую теперь можно реализовать с помощью LLVM).

     
     
  • 3.59, Ю.Т. (?), 10:47, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Это работает поверх HotSpot, который отрефакторили...

    Спасибо, но всё равно не ловлю смысла. Для этого, наверное, нужно "вариться" в реалиях штатовского рынка информатики.

     
     
  • 4.61, Аноним (-), 11:01, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Зачем что-то понимать в реалиях рынка?

    JDK-ная виртуальная машина рефакторилась-рефакторилась, пока внезапно не начала выполнять байткоды LLVM, руби, питона и ещё черт знает чего.

    Т.к. имидж оракла немного подмочен, а бренд жабы слишком тесно связан с конкретным языком/байткодом, менеджеры быстренько провели ребрендинг: JavaVM -> GraalVM. Никто ведь при обсуждении nodejs всерьёз на вспоминает про v8 (хотя 90% технической сложности рантайма сосредоточено в нём, а создатели ноды имеют к его разработке весьма косвенное отношение). Так и здесь, — Graal пытаются позиционировать как рантайм для динамических языков (способный работать поверх HotSpot, но это уже детали). Раньше такое тоже можно было делать, но в итоге приходилось всё компилировать в байткод жабы, а из всех щелей торчали потроха жабных фреймворков. Теперь внутренняя реализация стала красивее, только и всего.

    Никакого рынка там сейчас нет, — просто *плановый* рефакторинг JDK привёл к появлению новых перспектив, чем-то извне напоминающих последние подвижки с Perl 6 и WebAssembly.

     
     
  • 5.65, Ю.Т. (?), 12:04, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Зачем что-то понимать в реалиях рынка?

    ...
    > Т.к. имидж оракла немного подмочен, а бренд жабы слишком тесно связан с
    > конкретным языком/байткодом, менеджеры быстренько провели ребрендинг: JavaVM -> GraalVM.

    Ну так вот же они, реалии рынка. Спасибо за инфу.

     

  • 1.54, Нет ты (?), 10:02, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    >The Graal Polyglot API lets you embed and run code from guest languages in JVM-based host applications.

    Вне Java мира бесполезно, все кто пишет на нативных языках (или оно умеет мост к C API) и хотел встроить сие чудо чтобы можно было писать дополнения для своего  приложения
    на любом из перечисленных выше языков можете вместе идти лесом.

     
     
  • 2.60, Аноним (-), 10:47, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А дальше первого абзаца не пробовал читать?

    Одна из ключевых фишек Graal — динамическая генерация биндингов к сишным либам. Которые в отличии от JNI имеют прямой доступ к памяти и могут использоваться в любых поддерживаемых динамических языках.

    Проще говоря, это гибкий, многоязычный FFI, который лучше FFI питона, ноды и руби вместе взятых. И который в отличии от ParrotVM ещё и работает.

     
     
  • 3.68, Нет ты (?), 13:06, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    То есть использования (LLVM) C/C++/Rust (Experimental) R/Python/Ruby из JVM под одним удобным API. Как без JVM пришить одновременно Python/Rust/C++ для дополнений к приложению (которые работают в песочнице) на чистом C?
     
     
  • 4.73, Аноним (-), 14:50, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А в чём принципиальная выгода от без JVM Плагину на Python Ruby Javascript вс... большой текст свёрнут, показать
     
     
  • 5.113, Нет ты (?), 22:54, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мне нужно чтобы берешь graalvm h, используешь вот эти вызовы из C чтобы пнуть ... большой текст свёрнут, показать
     
     
  • 6.119, Аноним (-), 07:05, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Загружаешь разделяемые библиотеки JVM в своё приложение с помощью Invocation API... большой текст свёрнут, показать
     
  • 3.82, Crazy Alex (ok), 17:11, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Либо у них там AI либо на управлении памятью оно один хрен сломается за исключением простейших случаев и придётся-таки вручную эти биндинги делать. Второя, понятно, как-то вероятнее.

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

    В общем, очередной странный зверёк, на которой, конечно, из-за именно Оракла может повестись, но техническая осмысленность не очевидна.

     
     
  • 4.90, Аноним (-), 18:03, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Не AI, а просто нормальный JIT и гибкое внутреннее представление кода Ты это сер... большой текст свёрнут, показать
     
  • 4.111, Аноним (-), 22:05, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >  Либо у них там AI либо на управлении памятью оно один хрен сломается за исключением простейших случаев и придётся-таки вручную эти биндинги делать. Второя, понятно, как-то вероятнее.

    Наикрутейший GC предложенный еще в 2000-х мог уже тогда мог обеспечить трассировку объектов в рантайме в гетерогенной среде. Но сколько это съедает ресурсов.. По барабану сколько уходит памяти - можно свопиться при желании. Главная проблема - неоправданная утилизация процессорного времени резолвера. Кто "тыкал" это вживую, тот хорошо чувствует момент когда в JVM просыпался GC :)

     
     
  • 5.120, Аноним (-), 07:18, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А теперь наикрутейший GC крутится на мобильнике. И в ядре Linux (аж в нескольких местах). И по прежнему сжирает слишком много ресурсов.

    Почему-то все считают, что можно взвалить на GC тяжёлую работу, и он при этом будет работать лучше, чем malloc. И сами разработчики сборщиков мусора подбрасывают дровишек, — мол GC теперь всесильные, работайте с памятью не задумываясь. А потом удивляются, почему у них плохая репутация.

    При этом в веб-серверах и реалтаймовых приложениях используется скриптинг на интерпретируемых (!!) языках с GC и ничего — всё прекрасно работает, если не делать аллокации в критических кусках кода. Так что, дело наверное не в GC и не в гетерогенных средах.

     
     
  • 6.127, анонимус (??), 10:28, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Столкнулся недавно с тем как Python GC стух при увеличении количества объектов и это со __slots__ и без. Картина примерно одинаковая. Попробую еще поэкспериментировать.
     
  • 6.133, Аноним (-), 14:01, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >  А теперь наикрутейший GC крутится на мобильнике. И в ядре Linux (аж в нескольких местах). И по прежнему сжирает слишком много ресурсов.

    Ты не в теме вообще.

     
  • 6.138, Аноним (-), 00:25, 23/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > и реалтаймовых приложениях используется скриптинг на интерпретируемых
    > (!!) языках с GC и ничего — всё прекрасно работает, если

    Что, управлялку движков гироскутеров уже на ЖС/питоне/пыхе делают? И как успехи?

     
     
  • 7.148, Аноним (-), 05:37, 25/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Что, управлялку движков гироскутеров уже на ЖС/питоне/пыхе делают? И как успехи?

    Как, как. Те кто посообразительнее - вопят про реалтайм с безопасного расстояния. Те кто менее сообразительный - давится мацой^W смузи.

     

  • 1.55, Аноним (-), 10:08, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какой идиот писал эту новость? GraalVM - это JIT-компилятор для JVM. Без JVM он не будет работать вообще. А то расписал так, что как-будто создали новую виртуальную машину.
     
     
  • 2.56, Аноним (-), 10:26, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Это такая толстота, да?
     
  • 2.62, Аноним (-), 11:04, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > GraalVM - это JIT-компилятор для JVM. Без
    > JVM он не будет работать вообще.

    Будет, он может в бинарники компилировать и использовать Substrate VM.


    JIT-компилятор - это лишь _один_ из компонентов GraalVM, а JVM - лишь одна из возможностей запуска.
    Там ещё есть AoT-компилятор, упрощённый  Substrate VM,  runtime, SDK, фреймворк Truffle и ещё куча всего.

    > А то расписал так, что  как-будто создали новую виртуальную машину.

    Oracle официально именует GraalVM виртуальной машиной. "Today, we are pleased to announce the 1.0 release of GraalVM, a universal virtual machine designed for a polyglot world." и далее по тексту именует "GraalVM is a universal virtual machine".

     

  • 1.63, iCat (ok), 11:40, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Грааль? Серьёзно?
     
     
  • 2.66, Ю.Т. (?), 12:05, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Грааль? Серьёзно?

    Grail-shaped beacon. Nasty, nasty Zoot!

     
  • 2.83, Crazy Alex (ok), 17:12, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну нагло, да
     

  • 1.85, Аноним (-), 17:32, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Очень здорово. Можно использовать библиотеки которых нет в java но есть на другом языке и компилировать в исполняемый файл.
     
  • 1.88, Циничный скептик (?), 17:40, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > GraalVM предоставляет JIT-компилятор, который может на лету выполнять в JVM код любых скриптовых языков, включая JavaScript, Ruby, Python и R, а также даёт возможность запускать нативный код в JVM

    Допустим базовые команды языков заработают.

    Теперь кто реализует библиотеки, включая криптографию и GUI на всех этих языках в этой виртуальной машине?

     
     
  • 2.93, Аноним (-), 18:34, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Никто, существующие библиотеки просто работают
     

  • 1.106, Аноним (-), 20:56, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Как собрать нативный исполняемый файл с помощью maven?
     
     
  • 2.108, Аноним (-), 21:51, 21/04/2018 [^] [^^] [^^^] [ответить]  
  • +/
    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>exec-maven-plugin</artifactId>
        <version>1.6.0</version>
        <executions>
            <execution>
                <goals>
                    <goal>exec</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <executable>${env.GRAALVM_DIR}/bin/native-image</executable>
            <arguments>
                <argument>-jar</argument>
                <argument>target/${artifactId}.jar</argument>
            </arguments>
        </configuration>
    </plugin>

    пока так, как бы это сделать по человечески

     

  • 1.110, Аноним (-), 22:05, 21/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    И как у этого со скоростью для питона? В сравнении с pypy и со штатным питоном.
     
     
  • 2.115, Аноним (-), 03:51, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да, так же херово будет. Это же VM. И в случае если штатный PythonVM хотя бы имеет предсказуемые таймауты на GC при выходе из функций, то JavaVM будет блочить мир. И Ваша аппликух апериодами будет подвисать, а выделение памяти при запуске отождрет сразу под 2 гига памяти. Хотя это предположения.
     
     
  • 3.124, Аноним (-), 08:34, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Можно поподробнее про предсказуемые таймауты?
     

  • 1.114, Аноним (-), 03:49, 22/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Ошибка Oracle в том, что они решают проблему, которая в целом не стоит перед разработчиками.

    Разработчики на Node.js, cPython и Ruby прекрасно существуют без единого VM с другими правилами и вполне довольны своим окружением.

    Писать на Python например без понимания как же работает этот самый VM опасно, так как непонятны ситуации с GIL и блокировками в сторонних библиотеках.

    Короче говоря в языке почти самое главное это его Runtime, который по сути у многих и ассоциирован с языком, а попытка наклеить на JVM новые наклейки выглядит как ребрендинг просто уже существующих ScriptEnginie в Java для поддержки JavaScript и т.д.

    Кому надо тот уже освоил Java, Scala, Gradle/Groovy, Kotlin и все у них хорошо, так как почти все области есть и динамический и функциональный подход.

     
     
  • 2.121, Аноним (-), 07:40, 22/04/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Согласен К счастью, Грааль писался не для разработчиков на Node js Просто так ... большой текст свёрнут, показать
     

  • 1.128, Аноним (-), 10:53, 22/04/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я уже вижу проекты где код на скале будет разбавлен кусками грязных хаков на JavaScript, потому что джуниоры знали только его.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру