Здравствуйте, meandr, Вы писали:
M>Я думаю вы не правы, хотя бы посмотреть на печальный опыт гугла по встраиванию LLVM в питон (получися большой пук ). Там приросты в производительности прото копеечные
Ну вот пример скрещивания хаскеля с LLVM — по отдельным тестам прирост двукратный =)
Re[7]: ~~Новый скриптовый язык для игр с генерируемыми бинди
Пока тянулось обсуждение, появились зачатки лямбда-экспрешшинов, даже с захватом контекста (но пока без overload resolution для методов =( над нам надо подумать будет, чтобы предпочитал выбирать конвертирование лямбды в функтор над конвертировнием в делегат и пр. )
Здравствуйте, gesman, Вы писали: G>как всегда, герой этого сабжа лежит здесь
Хм... Уж больно он на c# похож. Может, тебе стоит допилить его до определенного сходства с ecma-334 и обозвать имплементацией c# для llvm? Реклама будет.
Re: ~~Новый скриптовый язык для игр с генерируемыми биндинга
Здравствуйте, gesman, Вы писали:
G>Кому интересно — смореть сюда http://code.google.com/p/bamelg/ G>После инсталляции увидите примерно здесь c:\Program Files (x86)\MindStrike Solutions\Bamelg\ проект с примером использования этого компилера. G>Для запуска самого компилера нужен .NET 2.0 и выше. А для запуска использующего биндинги приложения — .NET не нужен(!)
а зачем ему NET?
он же с LLVM работает.
Re[2]: ~~Новый скриптовый язык для игр с генерируемыми бинди
Здравствуйте, night beast, Вы писали:
G>>Для запуска самого компилера нужен .NET 2.0 и выше. А для запуска использующего биндинги приложения — .NET не нужен(!)
NB>а зачем ему NET? NB>он же с LLVM работает.
См. выделенное.
Re[3]: ~~Новый скриптовый язык для игр с генерируемыми бинди
Здравствуйте, D. Mon, Вы писали:
G>>>Для запуска самого компилера нужен .NET 2.0 и выше. А для запуска использующего биндинги приложения — .NET не нужен(!)
NB>>а зачем ему NET? NB>>он же с LLVM работает.
DM>См. выделенное.
да видел я.
просто интересно, для LLVM биндинги на нет появились, или вручную формирует, и дальше llc вызывает.
Re[4]: ~~Новый скриптовый язык для игр с генерируемыми бинди
NB>да видел я. NB>просто интересно, для LLVM биндинги на нет появились, или вручную формирует, и дальше llc вызывает.
Нет, биндингов на НЕТ я не видел, да и чтоб прочувствовать что можно вытрясти из LLVM лучше их самому написать... тем более что у них частенько интерфейсы меняются — например дебажный, так что это еще позволяет быть в курсе вещей. щас (пару месяцев назад перерефакторили) он слизан с Phoenix SDK — каждая инструкция помечается тегом с метаданными с дебажной инфой ( а раньше вставлялись специальный debug-инструкции для отделения языковых статементов в ЛЛВМ коде). плюс такого подхода — отоптимайженный код можно будет дебажить.
llc вызывать не нужно — llc это CLI интерфейс к кодогенерирующим функциям LLVM'а. слинковался с LLVM — можешь делать что любая LLVMная тулза умеет.
Добавил полную поддержку X86 asm, для извращенцев (ассемблерные блоки разделены на блоки по фичам, блоки выбираются в рантайме). асм вреден, но полезен %) всё грамотно состыковано с остальными языковыми конструкциями, так бы в С++ былоб...
PS. к сведению, LLVM не умеет асм вставлять, только в gcc/AT&T-style да и то через &^$$%^#, т.к. потом эта строка в голом виде вставляется в асмовый листинг. а у меня все похакано и сделано, ы =)
Я им предложил сделать аналог DataInstruction из PhoenixSDK — которая есть блоб бинарных данных, в который асм прошит, + к ней указывается точки релокаций + register kill set, соответственно получаем поддержку для асма, но к сожалению Крис Латтнер с потрохами продался Apple'у и теперь у него другие приоритеты %)
кстати, асмовые блоки выглядят примерно так (решил тряхнуть стариной и пару простеньких функций накатать под разные процессорные фичи)
Re[5]: ~~Новый скриптовый язык для игр с генерируемыми бинди
Здравствуйте, gesman, Вы писали:
G>кстати, асмовые блоки выглядят примерно так (решил тряхнуть стариной и пару простеньких функций накатать под разные процессорные фичи)
Да очень скриптовый у тебя язык получается
Re[5]: ~~Новый скриптовый язык для игр с генерируемыми бинди
Здравствуйте, gesman, Вы писали:
NB>>да видел я. NB>>просто интересно, для LLVM биндинги на нет появились, или вручную формирует, и дальше llc вызывает. G>Нет, биндингов на НЕТ я не видел, да и чтоб прочувствовать что можно вытрясти из LLVM лучше их самому написать... тем более что у них частенько интерфейсы меняются — например дебажный, так что это еще позволяет быть в курсе вещей. щас (пару месяцев назад перерефакторили) он слизан с Phoenix SDK — каждая инструкция помечается тегом с метаданными с дебажной инфой ( а раньше вставлялись специальный debug-инструкции для отделения языковых статементов в ЛЛВМ коде). плюс такого подхода — отоптимайженный код можно будет дебажить.
понятно.
а можешь в кратце описать, какие бенефиты дает использование .Net по сравнению с C++?
Re[6]: ~~Новый скриптовый язык для игр с генерируемыми бинди