Вышел (http://www.parrot.org/news/2010/parrot-2.5.0) релиз виртуальной машины для динамических языков программирования Parrot 2.5.0 (http://parrot.org/), в первую очередь используемой в проекте Rakudo Perl 6 (http://rakudo.org/). Parrot поддерживает выполнение универсального байткода, в который могут быть скомпилированы программы на таких языках, как Perl 6,
Tcl (http://code.google.com/p/partcl/), Javascript (http://users.fulladsl.be/spb1622/pjs/), Ruby (http://cardinal2.rubyforge.org/), Lua, Scheme, PHP (http://wiki.github.com/bschmalhofer/pipp), Python (http://code.google.com/p/pynie/), APL (http://code.google.com/p/paraplegic/).
В новой версии добавлен полиморфный контейнер ByteBuffer PMC, позволяющий напрямую манипулировать бинарными данными; проведена чистка API; переименованы некоторые функции и opcode; подготовлен пакет для RHEL6-beta; началась работа по приведению внтутренностей ядра Parrot к виду "Lorito (http://trac.parrot.org/parrot/wiki/Lorito)", что позволит задействовать JIT-компиляцию и достичь возможности пересборки собственного кода.URL: http://www.parrot.org/news/2010/parrot-2.5.0
Новость: http://www.opennet.me/opennews/art.shtml?num=26976
Хотелось бы узнать о возможности задействования данного проекта для интеграции с платформой Mono, а также увидеть оценку прироста производительности относительно TraceMonkey и V8.
Скорее всего никакой возможности, т.к. они прямые конкуренты, а их разработчикам другая платформа не нужна.> увидеть оценку прироста производительности относительно TraceMonkey и V8.
А разве ранее такая для parrot-a уже была? Я не слышал чтобы С/С++ или XUL выполнялись в parrot. Тут ещё в racudo во всю ловят/правят баги, а остальные ещё более сырые.
медленно, но верно
А мне интересно, можно ли использовать с rakudo llvm, и компилить все в нативный код, а не в тупиковый пережиток - код для VM, да еще и с диким оверхедом по CPU и памяти на jit компиляцию.
А чем байткод llvm лучше/хуже байткода parrot?
Тем, что транслируется в машинный код
В машинный код некоего гипотетического RISC процессора. На реальных платформах код, опять же, этот код интерпретируется.
Вы совершенно не понимаете сути LLVM.
Сам придумал?
Ну тогда и у parrot-а тоже в машинный код, только не виртуального risc-процессора, а виртуального стекового процессора.
Компиляция в LLVM одна из целей Lorito.
>Компиляция в LLVM одна из целей Lorito.Круто, я правильно понимаю что это будет работать как блин, вся эта VM'ная хренота должна была строиться изначально - обычный код будет компилиться сразу в нативный, а динамические вещи типа eval "" будут jit'иться?
Теперь осталось понять - а зачем этот паррот нужен. И кому.