
Interprete Lua 5.3 patchato che risolve CVE-2020-24370, fornendo un ambiente di scripting sicuro per applicazioni embedded e automazione.
dl.display dd { padding-bottom: 0.2em ; }
tt, kbd, code { font-size: 12pt ; }
Benvenuti a Lua 5.3
Lua è un linguaggio di scripting potente, veloce, leggero e incorporabile sviluppato da un team della PUC-Rio, la Pontificia Università Cattolica di Rio de Janeiro in Brasile. Lua è software libero utilizzato in molti prodotti e progetti in tutto il mondo.
Il sito ufficiale di Lua fornisce informazioni complete su Lua, inclusi un riepilogo esecutivo e la documentazione aggiornata, in particolare il manuale di riferimento, che potrebbe differire leggermente dalla copia locale distribuita in questo pacchetto.
Lua è distribuito in codice sorgente. È necessario compilarlo prima di utilizzarlo. La compilazione di Lua dovrebbe essere semplice perché Lua è implementato in puro ANSI C e compila senza modifiche su tutte le piattaforme note dotate di un compilatore ANSI C. Lua compila anche senza modifiche come C++. Le istruzioni fornite di seguito per la compilazione di Lua sono per sistemi Unix-like. Vedi anche istruzioni per altri sistemi e opzioni di personalizzazione.
Se non hai tempo o voglia di compilare Lua da solo, ottieni un binario da LuaBinaries. Prova anche LuaDist, una distribuzione multi-piattaforma di Lua che include batterie.
Sulla maggior parte delle piattaforme Unix-like, basta eseguire "make" con un target adatto. Ecco i dettagli.
aix bsd c89 freebsd generic linux macosx mingw posix solaris
Se la tua piattaforma è elencata, esegui semplicemente "make xxx", dove xxx è il nome della tua piattaforma.
Se la tua piattaforma non è elencata, prova la più vicina o posix, generic, c89, in quest'ordine.
Se stai usando Linux e ottieni errori di compilazione, assicurati di aver installato il pacchetto di sviluppo readline (probabilmente chiamato libreadline-dev o readline-devel). Se dopo ciò ottieni errori di collegamento, prova con "make linux MYLIBS=-ltermcap".
Una volta compilato Lua, potresti volerlo installare in una posizione ufficiale del tuo sistema. In questo caso, esegui "make install". La posizione ufficiale e il modo di installare i file sono definiti nel Makefile. Probabilmente avrai bisogno dei permessi appropriati per installare i file.
Per compilare e installare Lua in un unico passaggio, esegui "make xxx install", dove xxx è il nome della tua piattaforma.
Per installare Lua localmente, esegui "make local". Questo creerà una directory install con le sottodirectory bin, include, lib, man, share, e installerà Lua come elencato di seguito.
Per installare Lua localmente, ma in un'altra directory, esegui "make install INSTALL_TOP=xxx", dove xxx è la directory scelta. L'installazione inizia nelle directory src e doc, quindi fai attenzione se INSTALL_TOP non è un percorso assoluto.
Queste sono le uniche directory necessarie per lo sviluppo. Se vuoi solo eseguire programmi Lua, ti servono solo i file in bin e man. I file in include e lib sono necessari per incorporare Lua in programmi C o C++.
Tre tipi di cose possono essere personalizzati modificando un file:
In realtà non è necessario modificare i Makefile perché puoi impostare le variabili rilevanti nella riga di comando quando invochi make. Tuttavia, è probabilmente meglio modificare e salvare i Makefile per registrare le modifiche apportate.
D'altra parte, se devi personalizzare alcune funzionalità di Lua, dovrai modificare src/luaconf.h prima di compilare e installare Lua. Il file modificato sarà quello installato e sarà utilizzato da qualsiasi client Lua che compilerai, per garantire coerenza. Ulteriori personalizzazioni sono disponibili per esperti modificando i sorgenti di Lua.
Se non stai usando i soliti strumenti Unix, le istruzioni per compilare Lua dipendono dal compilatore che usi. Dovrai creare progetti (o qualunque cosa usi il tuo compilatore) per compilare la libreria, l'interprete e il compilatore, come segue:
Per usare Lua come libreria nei tuoi programmi dovrai sapere come creare e usare librerie con il tuo compilatore. Inoltre, per caricare dinamicamente librerie C per Lua dovrai sapere come creare librerie dinamiche e dovrai assicurarti che le funzioni dell'API Lua siano accessibili a quelle librerie dinamiche — ma non collegare la libreria Lua all'interno di ogni libreria dinamica. Per Unix, raccomandiamo che la libreria Lua sia collegata staticamente nel programma host e che i suoi simboli siano esportati per il collegamento dinamico; src/Makefile fa questo per l'interprete Lua. Per Windows, raccomandiamo che la libreria Lua sia una DLL. In tutti i casi, il compilatore luac dovrebbe essere collegato staticamente.
Come menzionato sopra, puoi modificare src/luaconf.h per personalizzare alcune funzionalità prima di compilare Lua.
Ecco le principali modifiche introdotte in Lua 5.3. Il manuale di riferimento elenca le incompatibilità che sono state introdotte.
Ecco le altre modifiche introdotte in Lua 5.3:
ipairs e la libreria table rispettano i metametodi
string.dump
table.move
string.pack
string.unpack
string.packsize
lua_gettable e funzioni simili restituiscono il tipo del valore risultante
lua_dump
lua_geti
lua_seti
lua_isyieldable
lua_numbertointeger
lua_rotate
lua_stringtonumber
arg disponibile per tutto il codice
Lua è software libero distribuito secondo i termini della
licenza MIT
riprodotta di seguito;
può essere utilizzato per qualsiasi scopo, inclusi scopi commerciali,
a costo assolutamente zero senza doverci chiedere il permesso.
L'unico requisito è che se usi Lua, allora dovresti riconoscerci il merito includendo un avviso di copyright appropriato da qualche parte nel tuo prodotto o nella sua documentazione.
Per dettagli, vedi questo.
Copyright © 1994–2017 Lua.org, PUC-Rio.È concessa l'autorizzazione, a titolo gratuito, a chiunque ottenga una copia di questo software e dei file di documentazione associati (il "Software"), di trattare il Software senza restrizioni, inclusi, senza limitazione, i diritti di utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e/o vendere copie del Software, e di consentire alle persone a cui il Software è fornito di fare altrettanto, alle seguenti condizioni:
L'avviso di copyright sopra indicato e questo avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.
IL SOFTWARE VIENE FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSI MA NON LIMITATI ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, DI ILLECITO O ALTRO, DERIVANTE DA, O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI CON IL SOFTWARE.
Ultimo aggiornamento: Mon Jun 18 22:57:33 -03 2018