• # Lua: environnement restreint

    Posté par (site web personnel) . En réponse au message language de script en environnement restreint pour mon application. Évalué à 1.

    La solution est d'utiliser setfenv().

    A noter: les fonctions héritent de l'environnement dans léquelles eles sont définies. Ainsi, on peut faire une fonction

    renv[import] = function (file)
    if is_executable(file) then
    import(file)
    end
    end

    -- on définit d'autres fonctions dans le tableau renv ... sinon, on ne pourra rien faire

    do
    setfenv(renv)
    -- notre environnement restreint ici
    end

    A noter qu'il existe des fonctions (dofile ? regarder la doc) qui renvoient une fonction qui, lorsqu'executée, execute le fichier.
    Il est alors possible de définir un environnement restreint pour ces fonctions avant de les executer.