The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Для Python предложен JIT-компилятор, использующий технику copy-and-patch, opennews (??), 26-Дек-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


36. "Для Python предложен JIT-компилятор, использующий технику co..."  +/
Сообщение от Витюшка (?), 26-Дек-23, 17:37 
Выглядит очень интересно, как минимум много умных услов)

А что за проект? Язык программирования? Что он вообще делает?

Хобби? Работа? Наука?
Публикации есть?

Я в этом не силён. Но Zig позволяет тебе выбирать calling convention для каждой функции.

callconv(WINAPI)
callconv(.Inline)
callconv(.Naked)
callconv(.C)

Наверное ещё что-то. Много оптимизаций встроено в язык.

Писать compile time код - это просто песня. Generic код тоже.

Есть ассемблерные вставки в языке (из коробки).

Можно вызывать С код и С++.
Можно даже С++ код компилировать компилятором Zig! Те просто берёшь и компилируешь свой С++, а потом добавляешь Zig потихоньку. Переписывать всё не нужно.

Для твоей задач подходит идеально.
Быстрее чем на Zig уже не будет.

Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

47. "Для Python предложен JIT-компилятор, использующий технику co..."  +/
Сообщение от Аноним (47), 26-Дек-23, 18:29 
>Но Zig позволяет тебе выбирать calling convention для каждой функции.

Да де-факто стандартные расширения сишки тоже позволяют, но из приведённого вами списка. При этом компилятор сгенерирует ненужные перебросы из одних регистров в другие с сохранениями состояния caller-saved на стеке. Мой код же стека касается в редких случаях - когда нужно выделить память. Тогда уже гулять-так гулять. Остальная свистопляска идёт в регистрах и кэше.

Ответить | Правка | Наверх | Cообщить модератору

78. "Для Python предложен JIT-компилятор, использующий технику co..."  +/
Сообщение от Аноньимъ (ok), 27-Дек-23, 00:37 
Стек типо в кеше не присутствует?
Ответить | Правка | Наверх | Cообщить модератору

92. "Для Python предложен JIT-компилятор, использующий технику co..."  +/
Сообщение от Аноним (90), 27-Дек-23, 03:03 
Присутствует, так как иногда приходится дёргать. Но основные обращения к памяти - это считывание данных и запись результатов.
Ответить | Правка | Наверх | Cообщить модератору

80. "Для Python предложен JIT-компилятор, использующий технику co..."  +/
Сообщение от x3who (?), 27-Дек-23, 00:39 
> ненужные перебросы из одних регистров в другие с сохранениями состояния caller-saved на стеке.

Если такое есть без причины - то это копулятор лучше чинить.. Это же его сфера ответственности!

Ответить | Правка | К родителю #47 | Наверх | Cообщить модератору

95. "Для Python предложен JIT-компилятор, использующий технику co..."  +/
Сообщение от Аноним (90), 27-Дек-23, 03:20 
У компилятора есть причины её не инлайнить - она виртуальная. Остаётся thiscallом её вызывать. А thiscall - это конкретная конвенция, а поддержки кастомных конвенций увы нет.
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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