|
Вариант для распечатки |
Пред. тема | След. тема | ||
Форум Разговоры, обсуждение новостей | |||
---|---|---|---|
Изначальное сообщение | [ Отслеживать ] |
"Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от opennews (ok) on 08-Апр-15, 20:09 | ||
Разработчики из компании Red Hat опубликовали интересную заметку (http://developerblog.redhat.com/2015/04/07/jit-compilation-u.../) с примером использования библиотеки libgccjit (https://gcc.gnu.org/wiki/JIT), которая входит в состав набора компиляторов GCC 5 (https://gcc.gnu.org/gcc-5/changes.html), релиз которого ожидается через несколько недель. В GCC 5 генератор кода может быть собран в виде разделяемой библиотеки, встроен в другие процессы и использован для упреждающей AOT-компиляции (Ahead-of-time) или JIT-компиляции байткода в машинный код. В заметке показано как построить компилятор для гипотетического языка программирования, используя Python-биндинг (https://pypi.python.org/pypi/gccjit) к libgccjit для JIT-компиляции кода в Python-скрипте. | ||
Ответить | Правка | Cообщить модератору |
Оглавление |
Сообщения по теме | [Сортировка по времени | RSS] |
1. "Пример использования средств JIT-компиляции, появившихся в G..." | +3 +/– | |
Сообщение от nc (ok) on 08-Апр-15, 20:09 | ||
Компиляторы из промежуточного представления в бинарное имеют смысл при инсталляции кроссплатформенных программ из единого источника на разные аппаратные платформы. Это то что гугл сделал в виде art. А JIT как компиляция каждый раз при запуске программы - а нафиг это нужно? | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
2. "Пример использования средств JIT-компиляции, появившихся в G..." | –5 +/– | |
Сообщение от A.Stahl (ok) on 08-Апр-15, 20:21 | ||
Писать скрипты в сишном коде не на lua или, избавь Ктулху, на JavaScript, а на Си. | ||
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору |
3. "Пример использования средств JIT-компиляции, появившихся в G..." | +5 +/– | |
Сообщение от Аноним (??) on 08-Апр-15, 20:25 | ||
Что-то я не вижу ничего хорошего в скриптах на Си. | ||
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору |
4. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от A.Stahl (ok) on 08-Апр-15, 20:28 | ||
Есть программа на Си. Нужно в ней что-то скриптовое. Разумеется лучше чтобы этот скрипт будет написан на Си, чем сишник будет ещё разбираться с lua или ещё чем похуже. | ||
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору |
6. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Сергей (??) on 08-Апр-15, 20:44 | ||
Какой кусок кода в гипотетической, но уже написанной C-шной программе "разумеется лучше" не компилировать для конечного использования? | ||
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору |
10. "Пример использования средств JIT-компиляции, появившихся в G..." | –1 +/– | |
Сообщение от A.Stahl (ok) on 08-Апр-15, 20:49 | ||
Скриптовый. Т.е. часто изменяемый. Возможно даже пользователем. | ||
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору |
14. "Пример использования средств JIT-компиляции, появившихся в G..." | +2 +/– | |
Сообщение от Сергей (??) on 08-Апр-15, 20:53 | ||
Пользоветель скорее умрет, но попросит сделать поддержку LUA вместо С. | ||
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору |
15. "Пример использования средств JIT-компиляции, появившихся в G..." | –1 +/– | |
Сообщение от Сергей (??) on 08-Апр-15, 20:54 | ||
"Частоизменяемый" не проблема компилировать при разработке. | ||
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору |
19. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Вулх on 08-Апр-15, 21:09 | ||
В том то и дело, что изменяемый при эксплуатации, а не при разработке. | ||
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору |
34. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Сергей (??) on 09-Апр-15, 03:21 | ||
Смотри пост 7.14 | ||
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору |
7. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Сергей (??) on 08-Апр-15, 20:46 | ||
Чем лучше писать скрипты на C по сравнению с LUA? | ||
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору |
11. "Пример использования средств JIT-компиляции, появившихся в G..." | –1 +/– | |
Сообщение от A.Stahl (ok) on 08-Апр-15, 20:50 | ||
> Чем лучше писать скрипты на C по сравнению с LUA? | ||
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору |
17. "Пример использования средств JIT-компиляции, появившихся в G..." | +6 +/– | |
Сообщение от Сергей (??) on 08-Апр-15, 20:58 | ||
Знание C/C++/Tcl/BASH мне тут же обеспечило знание LUA. Попробуй под пытками заставить человека, знающего только LUA,Tcl и BASH хоть что-то написать на C/C++ -- человек погибнет. ;-) | ||
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору |
37. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Vkni (ok) on 09-Апр-15, 06:09 | ||
> Тем, что зная Си ты уже автоматичемски знаешь Си. Круто, да? | ||
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору |
42. "Пример использования средств JIT-компиляции, появившихся в G..." | +1 +/– | |
Сообщение от cmp (ok) on 09-Апр-15, 08:45 | ||
да ну | ||
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору |
9. "Пример использования средств JIT-компиляции, появившихся в G..." | +1 +/– | |
Сообщение от Аноним (??) on 08-Апр-15, 20:48 | ||
Обычно что-то скриптовое в программе нужно для расширения функциональности пользователем, а не программистом. | ||
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору |
43. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от cmp (ok) on 09-Апр-15, 08:56 | ||
О чем речь, если оно поддерживает си, то и луа автоматом, кому надо луа пусть его юзает, кому надо си пусть юзает его, программировать плагины, думаю, будет гораздо удобнее. | ||
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору |
12. "Пример использования средств JIT-компиляции, появившихся в G..." | +2 +/– | |
Сообщение от Сергей (??) on 08-Апр-15, 20:52 | ||
Я всего один раз написал на LUA, но с полпинка небольшой скрипт без предварительной подготовки вообще(C не в счёт). Если дать LUA-программисту, не видевшему C, аналогичную, но обратную задачу: написать то же самое не C -- он помрёт тут же. | ||
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору |
8. "Пример использования средств JIT-компиляции, появившихся в G..." | +1 +/– | |
Сообщение от Аноним (??) on 08-Апр-15, 20:47 | ||
Lua божественнен. Один из самых шустрых скриптовых языков, очень малые затраты на выполнение и встаривание. | ||
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору |
13. "Пример использования средств JIT-компиляции, появившихся в G..." | –1 +/– | |
Сообщение от A.Stahl (ok) on 08-Апр-15, 20:52 | ||
Ну никто и не утверждает обратного. | ||
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору |
16. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Аноним (??) on 08-Апр-15, 20:56 | ||
Проще что? | ||
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору |
18. "Пример использования средств JIT-компиляции, появившихся в G..." | –1 +/– | |
Сообщение от A.Stahl (ok) on 08-Апр-15, 21:04 | ||
>Проще что? | ||
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору |
45. "Пример использования средств JIT-компиляции, появившихся..." | +1 +/– | |
Сообщение от arisu (ok) on 09-Апр-15, 17:57 | ||
>>Проще что? | ||
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору |
26. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Crazy Alex (ok) on 09-Апр-15, 00:03 | ||
Для скриптовых нужд у C уж больно слабо в плане синтаксиса и высокоуровневых конструкций. Я сишник, но писать на сях скрипты мне в голову бы не пришло. Вот на D и программа и скрипт - без проблем. На плюсах - тоже можно хотя бы сделать по-человечески, спрятав всё управление временем жизни, ресурсами, памятью. Хотя, конечно, скорость компиляции... Но на C? С явным управлением ресурсами (или адскими костылями), со здоровенными префиксами имён функций вместо красивого объектного синтаксиса, без приличных средств обработки ошибок... да ну его на фиг. | ||
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору |
28. "Пример использования средств JIT-компиляции, появившихся в G..." | –3 +/– | |
Сообщение от Led (ok) on 09-Апр-15, 00:05 | ||
> Для скриптовых нужд у C уж больно слабо в плане синтаксиса и | ||
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору |
33. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Crazy Alex (ok) on 09-Апр-15, 02:34 | ||
И в чём проблема? Для скриптов нужно что-то, где, как минимум, можно автоматом управлять памятью и иметь нормальную итерацию. Ну и всякий удобный синтаксический сахар вроде питоновских list comprehensions. си не годится, а питон - вполне, для того и создан. | ||
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору |
30. "Пример использования средств JIT-компиляции, появившихся в G..." | –1 +/– | |
Сообщение от Анончег on 09-Апр-15, 01:29 | ||
>... На плюсах - тоже можно хотя бы сделать по-человечески, спрятав всё управление временем жизни, ресурсами, памятью. Хотя, конечно, скорость компиляции ... | ||
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору |
32. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Crazy Alex (ok) on 09-Апр-15, 02:29 | ||
Их хватает, чтобы компиляция не занимала вечность, но не для того, чтобы компилировать плюсы на лету. | ||
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору |
38. "Пример использования средств JIT-компиляции, появившихся в G..." | –1 +/– | |
Сообщение от Vkni (ok) on 09-Апр-15, 06:11 | ||
> На плюсах - тоже можно хотя бы сделать по-человечески | ||
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору |
35. "Пример использования средств JIT-компиляции, появившихся в G..." | +3 +/– | |
Сообщение от Сергей (??) on 09-Апр-15, 03:25 | ||
> На родном языке всегда проще. | ||
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору |
44. "Пример использования средств JIT-компиляции, появившихся в G..." | –1 +/– | |
Сообщение от Аноним (??) on 09-Апр-15, 11:34 | ||
Вообще-то, libgccjit - это всего лишь backend, т.е. генератор машинного кода. А вот фронтенд для C вам придется написать самим. Эта задачка посложнее всей libgccjit будет. Так что сабж подходит для чего-то простого, что при этом кровь из носу надо скомпилировать налету. Даже не знаю, что это могло бы быть. | ||
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору |
5. "Пример использования средств JIT-компиляции, появившихся в G..." | +4 +/– | |
Сообщение от Tav (ok) on 08-Апр-15, 20:30 | ||
Для разного нужно: | ||
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору |
23. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от freehck (ok) on 08-Апр-15, 22:18 | ||
> динамическая оптимизация программы с учетом текущего профиля выполнения (JVM); | ||
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору |
24. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Tav (ok) on 08-Апр-15, 23:00 | ||
> Ну, это скорее её недостаток. Ей ведь надо балансировать между скоростью запуска и скоростью работы, вот и выкручиваются, как могут. | ||
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору |
31. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Анончег on 09-Апр-15, 01:33 | ||
> В чем суть отличий "того же вида" от не того? | ||
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору |
40. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от freehck (ok) on 09-Апр-15, 07:03 | ||
>> Ну, это скорее её недостаток. Ей ведь надо балансировать между скоростью запуска и скоростью работы, вот и выкручиваются, как могут. | ||
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору |
46. "Пример использования средств JIT-компиляции, появившихся в G..." | –1 +/– | |
Сообщение от Tav (ok) on 10-Апр-15, 18:13 | ||
> Суть в том, что от проектов LLVM и JVM то и дело слышны возгласы... | ||
Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору |
47. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от freehck (ok) on 22-Июн-15, 15:26 | ||
>> Суть в том, что от проектов LLVM и JVM то и дело слышны возгласы... | ||
Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору |
21. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Аноним (??) on 08-Апр-15, 21:43 | ||
> А JIT как компиляция каждый раз при запуске программы - а нафиг это нужно? | ||
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору |
22. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от КарМер on 08-Апр-15, 22:17 | ||
"Разные аппаратные платформы " - это и разное число ядер, в том числе ... | ||
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору |
29. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Crazy Alex (ok) on 09-Апр-15, 00:07 | ||
Тогда не JIT, а просто сборка на клиенте. Но вообще-то разное число ядер в коде спокойно обрабатывается. Пул потоков, очередь заданий,да и всё | ||
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору |
25. "Пример использования средств JIT-компиляции, появившихся в G..." | –1 +/– | |
Сообщение от Qld on 08-Апр-15, 23:38 | ||
JIT-компиляция может учесть все экстенжены текущего процессора, что приведет к заметному бусту высоко нагруженных длительных вычислений. | ||
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору |
27. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Crazy Alex (ok) on 09-Апр-15, 00:05 | ||
Так здесь не JIT, а вполне себе нормальная AOT-компиляция нужна - при первом запуске собрал (или до него - привет Гента), закешировал и пусть лежит. | ||
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору |
20. "Пример использования средств JIT-компиляции, появившихся в G..." | +/– | |
Сообщение от Аноним (??) on 08-Апр-15, 21:28 | ||
>библиотеки libgccjit, которая входит в состав набора компиляторов GCC 5, релиз которого ожидается через несколько недель | ||
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору |
36. "Пример использования средств JIT-компиляции, появившихся в G..." | +4 +/– | |
Сообщение от MaMoHT on 09-Апр-15, 05:05 | ||
> GCC 5 начинает догонять старые версии LLVM :) | ||
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору |
41. "Пример использования средств JIT-компиляции, появившихся в G..." | +1 +/– | |
Сообщение от freehck (ok) on 09-Апр-15, 07:09 | ||
> Однако это не умаляет достоинства llvm, они дали очень хороший "пинок" для | ||
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору |
Архив | Удалить |
Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |