Lua 5.4

Despois de dous anos de desenvolvemento, o 29 de xuño, lanzouse de forma silenciosa e silenciosa unha nova versión da linguaxe de programación Lua, a 5.4.

Lua é unha linguaxe de programación sinxela e interpretada que se pode integrar facilmente en aplicacións. Debido a estas calidades, Lua úsase amplamente como linguaxe para estender ou describir a configuración de programas (en particular, xogos de ordenador). Lua distribúese baixo a licenza MIT.

A versión anterior (5.3.5) publicouse o 10 de xullo de 2018.

Principais cambios na nova versión

  • lixo nova xeración. Na función collectgarbage, os parámetros setpause e setstepmul quedaron obsoletos e recoméndase no seu lugar o parámetro incremental;

  • unha nova función para emitir avisos de aviso coa posibilidade de desactivar a súa visualización;

  • a nova implementación de math.random usa o algoritmo xoshiro256** en lugar da libc proporcionada e inicializa o xerador cun número aleatorio;

  • variables constantes;

  • As variables "por pechar" son constantes locais para as que se executa o método __close ao saír do ámbito;

  • nova función lua_resetthread - borra a pila e pecha todas as variables "pechadas";

  • nova función coroutine.close - pecha a coroutine especificada e todas as súas variables "pechadas";

  • Os datos do usuario poden conter un conxunto de valores aos que se accede por índice. Introducíronse novas funcións para traballar con elas: lua_newuserdatauv, lua_setiuservalue e lua_getiuservalue;

  • A información de depuración sobre parámetros e valores de retorno das funcións está dispoñible;

  • se se usa un índice enteiro nun bucle for e se produce un desbordamento, o bucle remata;

  • engadiuse un argumento opcional á función string.gmatch, especificando o desfase desde o inicio da cadea para buscar coincidencias;

  • movéronse as funcións para converter implícitamente cadeas en números á biblioteca de cadeas e cambiou o seu comportamento. Por exemplo, o resultado da operación "1" + "2" agora é un número enteiro e non un número de coma flotante;

  • na función de asignación de memoria, pode ocorrer un erro ao reducir un bloque de memoria;

  • novo carácter de formato na función string.format - %p (para punteiros);

  • a biblioteca utf8 acepta códigos de caracteres de ata 2³¹ (se se especifica unha marca especial, sen ela só se permiten códigos de ata 0x10FFFF e non se permiten substitutos);

  • As constantes enteiras fóra do intervalo de valores convértense en números flotantes (anteriormente produciuse un recorte de bits);

  • o metamétodo __lt xa non se usa para emular o metamétodo __le; se é necesario, o metamétodo __le debe especificarse explícitamente;

  • non se pode crear unha etiqueta para unha instrución goto se xa existe unha etiqueta co mesmo nome no ámbito actual (aínda que se definise no ámbito externo);

  • O metamétodo __gc pode ser máis que unha función. Se falla un intento de chamar a un método, imprimirase un aviso;

  • a función de impresión non chama a tostring para cada argumento, senón que usa as súas propias conversións internas;

  • a función io.lines devolve un conxunto de catro valores en lugar de un; para emular o comportamento antigo, pon a chamada entre parénteses se a estás pasando como parámetro a outra chamada de función.

Fonte: linux.org.ru

Engadir un comentario