URL: https://linuxfr.org/news/lua-il-est-ne-le-divin-52 Title: Lua : il est né le divin 5.2 ! Authors: jseb NeoX, Bruno Michel, Anonyme et Nÿco Date: 2011年12月17日T16:59:25+01:00 Tags: lua Score: 18 Lua est un langage de script libre (licence MIT), créé en 1993 à l'université Rio de Janeiro, au Brésil. Il est conçu de manière à pouvoir être embarqué au sein d'autres applications afin d'étendre celles-ci et est particulièrement apprécié pour le développement de jeux vidéo. Nous l'attendions tous depuis fort longtemps, et au terme de longues discussions sur la mailing-liste Lua, voici la version 5.2. Cette version fait suite à la version 5.1, sortie en 2008. Dit comme cela, cela ne fait pas vraiment version majeure. Et pourtant, les nouveautés sont nombreuses, comme dans tout logiciel qui ne fait pas la course au numéro de version. Ci-dessous vous trouverez les changements cités dans le [nouveau manuel de référence](http://www.lua.org/manual/5.2/manual.html#8) qui générent quelques incompatibilités. NdM : merci à jseb pour son journal. ---- [Site officiel de Lua](http://www.lua.org/) [Journal à l'origine de la dépêche](https://linuxfr.org/users/jseb/journaux/lua-il-est-n%C3%A9-le-divin-52) ---- # Lua 5.2: les nouveautés et changements ## Le langage * les _environnements_ (les tables qui contiennent les variables globales) ne sont plus disponibles que dans les fonctions Lua. Pour ce qui est de l'accès depuis le C, il semble qu'il faille passer par une closure (à vérifier, je n'ai pas eu le temps d'expérimenter). * Le Garbage Collector n'est plus relancé automatiquement après une collecte, s'il était arrêté auparavant. * plus de nommage des _identifiers_ (variables, fonctions...) avec des caractères dépendants d'une locale. ## La lib standard * La fonction _module_ est dépréciée au profit de l'utilisation de _require_. (dans la ref 5.1, il y avait deux façons de charger un module : _require_ et _module_. Dans la ref 5.2, _module_ a disparu). * Changements de noms de fonctions : _math.log10_ devient _math.log_, avec 10 en argument. _loadstring_ est regroupé dans _load_ et disparait * Quelques disparitions : _setfenv_ et _getfenv_ disparaissent, victimes collatérales des changements sur les environnements. * Et quelques déménagements : _unpack_ plie les gaules et part s'installer dans le module _table_ (il faudra donc l'appeler avec _table.unpack_). * Un peu de logique : _package.loaders_ devient le plus parlant _package.searchers_. * Plus de vérification du bytecode avec _load_ et _loadfile_. Cela peut être dangereux : ne chargez pas n'importe quoi, et en cas de doute, chargez le comme un bloc de texte (ce que Lua désigne comme un _text chunk_. ## L'API * Terminé LUA_GLOBALSINDEX (table d'indices pour récupérer des éléments sans passer par la pile Lua). À la place, il faut utiliser la registry. * Comme suite logique de la disparition des environnements, _lua_getfenv_ et _lua_setfenv_ font leurs bagages et disparaissent. * Les modules ne sont plus censés modifier des variables globales. _luaL_register_ est déprécié au profit de _luaL_setfuncs_, qui est une nouveauté de la 5.2. * Également quelques renommages et disparitions de fonctions plus mineures, que vous découvrirez avec intérêt au fur et à mesure de vos erreurs de compilation (ou en suivant le lien donné plus avant). # La documentation Voici les prévisions pour la sortie des mises à jour des principaux ouvrages, d'après un message de Roberto Ierusalimschy sur la mailing-list : - Reference manual (imprimée) : 4~6 mois - Reference manual (en ligne) : [déjà disponible ici](http://www.lua.org/manual/5.2/) - Programming in Lua: 8~10 mois. - Lua Gems : jamais (la structure du livre avec chaque chapitre provenant d'un auteur différent ne se prête pas à une mise à jour). #Disponibilité dans les distributions * [Paquets pour RedHat, Fedora, Ubuntu](http://luabinaries.sourceforge.net/packaging.html) * Pour l'instant, rien pour Arch. La version 5.2rc7 est disponible dans AUR, mais correspond à une version de développement plus ancienne. Le paquet « officiel » ne va de toutes façons pas traîner, et sera peut-être même déjà disponible au moment où vous lirez ces lignes.

AltStyle によって変換されたページ (->オリジナル) /