Sortie du langage de programmation Lua 5.4

AprÚs cinq ans de développement est disponible libération Lua 5.4, un langage de programmation de script rapide et compact largement utilisé comme langage embarqué (par exemple, pour définir une configuration ou écrire des extensions). Le code de l'interpréteur Lua est écrit en C et distribué par sous licence MIT.

Lua combine une syntaxe procĂ©durale simple avec de puissantes capacitĂ©s de description de donnĂ©es grĂące Ă  l'utilisation de tableaux associatifs et de sĂ©mantique extensible du langage. Lua utilise le typage dynamique, convertissant les constructions de langage en bytecode qui s'exĂ©cute sur une machine virtuelle basĂ©e sur des registres avec un garbage collection automatique. L'interprĂ©teur lui-mĂȘme est conçu comme une bibliothĂšque qui peut ĂȘtre facilement intĂ©grĂ©e dans des projets en langages C et C++.

principal les innovations:

  • Un nouveau mode de fonctionnement du garbage collector a Ă©tĂ© implĂ©mentĂ© - "gĂ©nĂ©rationnel», qui complĂ©tait le mode de rĂ©cupĂ©ration de place incrĂ©mentielle prĂ©cĂ©demment disponible. Le nouveau mode implique d’exĂ©cuter une analyse raccourcie plus frĂ©quemment, couvrant uniquement les objets rĂ©cemment créés. Un parcours complet de tous les objets n'est effectuĂ© que si, aprĂšs un court parcours, il n'a pas Ă©tĂ© possible d'atteindre la consommation de mĂ©moire souhaitĂ©e. Cette approche vous permet d'obtenir des performances plus Ă©levĂ©es et de rĂ©duire la consommation de mĂ©moire lors du stockage d'un grand nombre d'objets qui durent peu de temps.
  • Ajout de la possibilitĂ© de dĂ©finir des variables constantes dĂ©finies avec l'attribut « const ». Ces variables ne peuvent ĂȘtre affectĂ©es qu’une seule fois et, une fois initialisĂ©es, ne peuvent pas ĂȘtre modifiĂ©es.
  • Ajout de la prise en charge des variables "Ă  fermer", qui sont attribuĂ©s Ă  l'aide de l'attribut "close" et ressemblent Ă  des variables locales constantes (avec l'attribut const), qui en diffĂšrent par le fait que la valeur est fermĂ©e (la mĂ©thode "__close" est appelĂ©e) chaque fois qu'elle quitte la portĂ©e, par exemple, aprĂšs l'achĂšvement normal du bloc, transition en utilisant break/goto/return ou exit lorsqu'une erreur se produit.
  • Taper "donnĂ©es utilisateur», qui offre la possibilitĂ© de stocker n'importe quelle donnĂ©e C dans des variables Lua (reprĂ©sente un bloc de donnĂ©es en mĂ©moire ou contient un pointeur C), peut dĂ©sormais contenir plusieurs valeurs (avoir plusieurs mĂ©tatables).
  • Une nouvelle implĂ©mentation de la fonction de gĂ©nĂ©ration de nombres pseudo-alĂ©atoires est prĂ©sentĂ©e - math.random.
  • Ajout d'un systĂšme d'avertissements dĂ©terminĂ©s Ă  l'aide de l'expression prĂ©venir et, contrairement aux erreurs, n'affectent pas l'exĂ©cution ultĂ©rieure du programme.
  • Ajout d'informations de dĂ©bogage sur les arguments de fonction et les valeurs de retour.
  • Une nouvelle sĂ©mantique a Ă©tĂ© proposĂ©e pour Ă©numĂ©rer des entiers dans des boucles "pour". Le nombre d'itĂ©rations est calculĂ© avant le dĂ©marrage de la boucle, ce qui Ă©vite les dĂ©bordements de variables et les bouclages. Si la valeur initiale est supĂ©rieure Ă  la valeur limite, une erreur s'affiche.
  • En fonction 'chaĂźne.gmatch' a ajoutĂ© un nouvel argument facultatif 'init', qui dĂ©termine Ă  quelle position dĂ©marrer la recherche (par dĂ©faut, Ă  partir de 1 caractĂšre).
  • Nouvelles fonctionnalitĂ©s ajoutĂ©es 'lua_resetthread‘ (rĂ©initialise le thread, efface toute la pile d’appels et ferme toutes les variables « Ă  fermer ») et ‘coroutine.close' (ferme la coroutine et toutes les variables « Ă  fermer » associĂ©es).
  • Les fonctions de conversion de chaĂźnes en nombres ont Ă©tĂ© dĂ©placĂ©es vers la bibliothĂšque "string".
  • Les appels Ă  la fonction d'allocation de mĂ©moire peuvent dĂ©sormais Ă©chouer si la taille du bloc mĂ©moire est rĂ©duite.
  • En fonction 'chaĂźne.format' ajout de la prise en charge du nouveau spĂ©cificateur de format '%p' (pointeur renvoyĂ© par lua_topointer).
  • La bibliothĂšque utf8 fournit un support codes de caractĂšres avec des nombres jusqu'Ă  2 ^ 31.

Source: opennet.ru

Achetez un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Achetez un hĂ©bergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster