Pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter, inscrivez-vous gratuitement !

 

  1. #1
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    3 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 3 249
    Points : 11 852
    Points
    11 852
    Billets dans le blog
    5

    Par défaut Nouveautés de la version 5.3.0

    Bonjour ! Je viens de m'apercevoir qu'une nouvelle version de Lua était sortie. Je suis en train de me renseigner sur les nouveautés de cette version. J'ouvre cette discussion au cas où le sujet intéresserait quelqu'un d'autre.

    Pour commencer, j'ai trouvé un excellent petit tutoriel qui explique comment construire Lua 5.3.0 pour Windows, à partir du code source, avec Visual Studio Express. Dans les commentaires, l'auteur fournit même un lien vers les fichiers déjà compilés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -- http://blog.spreendigital.de/2015/01/16/how-to-compile-lua-5-3-0-for-windows/
    Autrement je voudrais rassembler ici (avec votre aide si vous le souhaitez) des exemples de code mettant en évidence les nouveautés de la version 5.3.0, ainsi que les éventuels problèmes de compatibilité avec les versions antérieures.

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    3 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 3 249
    Points : 11 852
    Points
    11 852
    Billets dans le blog
    5

    Par défaut

    Une première nouveauté remarquable, c'est l'apparition des types ou plutôt des sous-types integer et float :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    -- Lua 5.3
     
    local a, b = 1, 1 / 2
     
    print(type(a)) -- number
    print(type(b)) -- number
     
    print(math.type(a)) -- integer
    print(math.type(b)) -- float
    Il y a maintenant un opérateur pour la division euclidienne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    -- Lua 5.3
     
    function div(a, b) -- division euclidienne ancienne manière
      return math.floor(a / b)
    end
     
    local a = div(10, 3)
     
    print(a) -- 3
    print(math.type(a)) -- integer
     
    local b = 10 // 3 -- nouvel opérateur
     
    print(b) -- 3
    print(math.type(b)) -- integer

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    3 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 3 249
    Points : 11 852
    Points
    11 852
    Billets dans le blog
    5

    Par défaut

    La taille du type number est de 64 bits :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    local a =
      15 * 16 ^ 00 +
      15 * 16 ^ 01 +
      15 * 16 ^ 02 +
      15 * 16 ^ 03 +
      15 * 16 ^ 04 +
      15 * 16 ^ 05 +
      15 * 16 ^ 06 +
      15 * 16 ^ 07 +
      15 * 16 ^ 08
     
    assert(string.format("%X", a) == "FFFFFFFFF")
     
    -- Lua 5.2 : bad argument #2 to 'format' (not a non-negative number in proper range)
    -- Lua 5.3 : OK

  4. #4
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    décembre 2011
    Messages
    3 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : décembre 2011
    Messages : 3 249
    Points : 11 852
    Points
    11 852
    Billets dans le blog
    5

    Par défaut

    Autre nouveauté, des opérateurs binaires, qui remplacent la librairie bit32 de Lua 5.2:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    local a = 0xF
    local f = io.open ("shl.lua", "a")
     
    for i = 1, 16 do
      f:write("-- " .. string.format("%X", a) .. "\n")
      a = a << 4
    end
     
    f:close()
     
    -- F
    -- F0
    -- F00
    -- F000
    -- F0000
    -- F00000
    -- F000000
    -- F0000000
    -- F00000000
    -- F000000000
    -- F0000000000
    -- F00000000000
    -- F000000000000
    -- F0000000000000
    -- F00000000000000
    -- F000000000000000

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/04/2014, 13h34
  2. Les nouveautés de la version 13 d'IntelliJ IDEA
    Par romaintaz dans le forum IntelliJ
    Réponses: 3
    Dernier message: 30/01/2014, 09h36
  3. Nouveautés de la version 2.3 d'UML?
    Par Stfou dans le forum UML
    Réponses: 3
    Dernier message: 31/03/2011, 10h36
  4. [EJB3] Nouveautés de la version 3
    Par jc_romeo dans le forum Java EE
    Réponses: 2
    Dernier message: 16/01/2006, 23h54
  5. [CR10]Quelles sont les nouveautés de la version 10 ?
    Par osoudee dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 11/11/2004, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo