Jitter официално стана част от проекта GNU

Преди няколко дни излезе новината, че проектът Jitter официално стана проект под крилото на GNU Project и сега се разработва под името GNU Jitter, използвайки инфраструктура на GNU и в съответствие с изискванията на проекта.

За тези, които не са запознати с Jitter, трябва да знаете, че е такаa е реализация, която позволява генериране на преносими и много бързи виртуални машини за произволни проекти на езици за програмиране, чиято производителност на изпълнение на код е значително по-напред от интерпретаторите и е близка до собствения компилиран код.

Jitter е силно преносим и правилната VM ще проявява абсолютно същото поведение на всяка платформа, която има само компилатор и стандартна C библиотека; производителността обаче ще бъде по-добра при използване на една от поддържаните архитектури (понастоящем: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; 64-ро ниво: Aarch390, Alpha, ARM, SXNUMXx) на ELF системи с GCC. Разбира се, Jitter е част от проекта на GNU и е предназначен основно за използване в системата GNU.

Джитеr приема като вход спецификация от високо ниво на поддържани инструкции от виртуална машина, и в изхода формира готова за използване реализация на виртуална машина за изпълнение на дадените инструкции.

Логиката на всяка инструкция в спецификацията се посочва с помощта на C код. Допълнителните функции включват поддръжка за операции с условно разклоняване, които са трудни за изпълнение в C и са присъщи на динамичните езици за програмиране, като проверка на стойността на маркера и проверка на препълване.

Времето за изпълнение на Jitter също така разполага с ефективна поддръжка за трудни за прилагане условни операции на разклоняване, използващи само C, като проверка на етикет за стойност, както се изисква от динамично въведени езици и аритметика с проверка на препълване. Кодът на VM осъществява достъп до операции за извикване и връщане на процедури, в повечето случаи разчитайки на ефективни хардуерни механизми.

Получената виртуална машина е форматирана в C с малък брой вмъквания асемблер. Предоставят се конфигурации, които позволяват различни оптимизации и избират механизми за доставка, което улеснява мигрирането на виртуална машина към различни платформи.

Той поддържа използването на архитектури за изпълнение на регистър, стек и присъединяване, както и възможността за отразяване на структури от данни на виртуална машина в хардуерните регистри на процесора и свързване на събирачи на боклук.

Генерираният код включва прост C API за динамично заместване и изпълнение на код във виртуална машина, както и програма за контролер за отделно изпълнение на код от текстови файлове във виртуална машина.

Генерираният C код е силно обусловен и може да бъде конфигуриран да работи с помощта на различни техники за разпространение с различна сложност; най-ефективните техники за изпращане разчитат на специфична за архитектура, но не и специфична за VM поддръжка на сглобяване, предоставена от Jitter; всички модели за изпращане, но единият също е базиран на GNU C разширения.

И накрая, за тези, които се интересуват да научат повече за него, те трябва да знаят, че оригиналният код на Jitter е написан на C и е достъпен под лиценз GPLv3. Можете да научите повече в следваща връзка.

Как да получите Jitter?

За тези, които се интересуват да могат да тестват Jitter, те могат да получат изходния код, като отворят терминал и напишат следната команда в него:

git clone http://git.ageinghacker.net/jitter

След като това е направено, сега продължаваме да влизаме в папката, която има кода, ще изпълним скрипта за стартиране, който се използва за генериране на необходимите файлове за конфигуриране и изграждане на Jitter, включително конфигурационен скрипт. Правим това с:

cd jitter && ./bootstrap

Струва си да се спомене, че Jitter следва конвенциите на GNU за конфигуриране и изграждане и поддържа конструкция от изходната директория; всъщност той поддържа кръстосана компилация и дори стартиране на тестовия пакет в кръстосана компилация чрез емулатор.

./configure && make

Накрая, за да изпълните, просто въведете:

make check


Добавяне като предпочитан източник в Google