Jitter a devenit oficial parte a proiectului GNU

Acum câteva zile, s-a anunțat că proiectul Jitter a devenit oficial un proiect sub umbrela Proiectului GNU și este acum dezvoltat sub numele GNU Jitter folosind infrastructura GNU și în conformitate cu cerințele proiectului.

Pentru cei care nu sunt familiarizați cu Jitter, este o implementare care permite generarea de mașini virtuale portabile și foarte rapide pentru limbaje de programare arbitrare, a căror performanță de execuție a codului este semnificativ superioară interpretoarelor și se apropie de codul compilat nativ.

Jitter este foarte portabil și o VM corectă va prezenta exact același comportament pe orice platformă care are doar un compilator și o bibliotecă C standard; totuși, performanța va fi mai bună folosind una dintre arhitecturile acceptate (în prezent: M68k, MIPS, PowerPC, RISC-V, SPARC, x86_64; al 64-lea nivel: Aarch390, Alpha, ARM, SXNUMXx) pe sistemele ELF cu GCC. Desigur, Jitter face parte din proiectul GNU și este conceput în primul rând pentru a fi utilizat pe sistemul GNU.

Jitter-ul primește ca intrare o specificație de nivel înalt a instrucțiunilor suportate de o mașină virtuală, iar ca ieșire formează o implementare gata de utilizare a unei mașini virtuale pentru a executa instrucțiunile date.

Logica fiecărei instrucțiuni din specificație este specificată folosind cod C. Caracteristicile suplimentare includ suport pentru operațiuni de ramificare condiționată care sunt dificil de implementat în C și inerente limbajelor de programare dinamice, cum ar fi verificarea valorii etichetei și verificarea depășirii limitei.

Timpul de execuție Jitter oferă, de asemenea, suport eficient pentru operațiuni de ramificare condiționată dificil de implementat folosind doar C, cum ar fi verificarea etichetelor de valoare, așa cum este cerut de limbajele tastate dinamic și aritmetica cu verificarea depășirii. Codul VM accesează operațiunile de apelare și returnare a procedurii, în majoritatea cazurilor bazându-se pe mecanisme hardware eficiente.

Mașina virtuală rezultată este formatată în C cu un număr mic de inserții de asamblare. Sunt furnizate configurații pentru a permite diverse optimizări și a selecta mecanisme de livrare, facilitând migrarea unei mașini virtuale către diferite platforme.

Acceptă utilizarea arhitecturilor de execuție de înregistrare, stivă și unire, precum și capacitatea de a oglindi structurile de date ale mașinilor virtuale în registrele hardware ale CPU și de a conecta colectorii de gunoi.

Codul generat include un API C simplu pentru a înlocui și a executa în mod dinamic codul într-o mașină virtuală, precum și un program controler pentru a executa separat codul din fișierele text într-o mașină virtuală.

Codul C generat este puternic condiționat și poate fi configurat să ruleze folosind diferite tehnici de distribuție cu o sofisticare diferită; cele mai eficiente tehnici de expediere se bazează pe un suport de asamblare specific arhitecturii, dar nu specific VM, oferit de Jitter; toate modelele de expediere, dar unul se bazează și pe extensii GNU C.

În cele din urmă, pentru cei interesați să afle mai multe, codul original Jitter este scris în C și este disponibil sub licența GPLv3. Puteți afla mai multe accesând linkul următor.

Cum să obțineți Jitter?

Pentru cei care sunt interesați să poată testa Jitter, pot obține codul sursă deschizând un terminal și tastând următoarea comandă în el:

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

Odată făcut acest lucru, acum trecem la intrarea în folderul care are codul, vom executa scriptul de pornire care este folosit pentru a genera fișierele necesare pentru a configura și construi Jitter, inclusiv un script de configurare. Facem asta cu:

cd jitter && ./bootstrap

Merită menționat că Jitter urmează convențiile GNU pentru configurare și construcție și suportă construcția din directorul sursă; de fapt, acceptă compilarea încrucișată și chiar rularea suita de teste într-o compilare încrucișată prin intermediul unui emulator.

./configure && make

În cele din urmă, pentru a executa, trebuie doar să tastați:

make check


Adăugați ca sursă preferată în Google