<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.luasandbox.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'reference.luasandbox.differences.php',
    1 => 'Diferencias con Lua est&aacute;ndar',
    2 => 'Diferencias con Lua est&aacute;ndar',
  ),
  'up' => 
  array (
    0 => 'book.luasandbox.php',
    1 => 'LuaSandbox',
  ),
  'prev' => 
  array (
    0 => 'luasandbox.installation.php',
    1 => 'Instalaci&oacute;n',
  ),
  'next' => 
  array (
    0 => 'luasandbox.examples.php',
    1 => 'Ejemplos',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/luasandbox/differences.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="reference.luasandbox.differences" class="chapter">
 <h1 class="title">Diferencias con Lua estándar</h1>

 <p class="simpara">
  LuaSandbox proporciona un entorno seguro que difiere en algunos aspectos de Lua 5.1 estándar.
 </p>

 <div class="simplesect" id="reference.luasandbox.differences.unavailable">
  <h3 class="title">Funcionalidades no disponibles</h3>
  <ul class="itemizedlist">
   <li class="listitem">
    <p class="simpara">
     Los paquetes <code class="literal">dofile()</code>, <code class="literal">loadfile()</code>, y <code class="literal">io</code>, ya que permiten acceso directo al sistema de ficheros. Si es necesario, el acceso al sistema de ficheros debe realizarse a través de funciones de retrollamada PHP.
    </p>
   </li>
   <li class="listitem">
    <p class="simpara">
     El paquete <code class="literal">package</code>, incluyendo <code class="literal">require()</code> y <code class="literal">module()</code>, ya que depende en gran medida del acceso directo al sistema de ficheros. Una reescritura pura de Lua como la utilizada en la extensión MediaWiki Scribunto puede ser utilizada en su lugar.
    </p>
   </li>
   <li class="listitem">
    <p class="simpara">
     <code class="literal">load()</code> y <code class="literal">loadstring()</code>, para permitir el análisis estático del código Lua.
    </p>
   </li>
   <li class="listitem">
    <p class="simpara">
     <code class="literal">print()</code>, ya que escribe en la salida estándar. Si es necesario, la salida debe realizarse a través de funciones de retrollamada PHP.
    </p>
   </li>
   <li class="listitem">
    <p class="simpara">
     La mayoría del paquete <code class="literal">os</code>, ya que permite la manipulación del proceso y la ejecución de otros procesos.
    </p>
    <ul class="itemizedlist">
     <li class="listitem">
      <p class="simpara">
       <code class="literal">os.clock()</code>, <code class="literal">os.date()</code>, <code class="literal">os.difftime()</code>, y <code class="literal">os.time()</code> siguen estando disponibles.
      </p>
     </li>
    </ul>
   </li>
   <li class="listitem">
    <p class="simpara">
     La mayoría del paquete <code class="literal">debug</code>, ya que permite la manipulación del estado Lua y de los metadatos de manera que puede romper el aislamiento.
    </p>
    <ul class="itemizedlist">
     <li class="listitem">
      <p class="simpara">
       <code class="literal">debug.traceback()</code> sigue estando disponible.
       </p>
     </li>
    </ul>
   </li>
   <li class="listitem">
    <p class="simpara">
     <code class="literal">string.dump()</code>, ya que puede exponer datos internos.
    </p>
   </li>
   <li class="listitem">
    <p class="simpara">
     El paquete <code class="literal">collectgarbage()</code>, <code class="literal">gcinfo()</code>, y <code class="literal">coroutine</code> no han sido examinados en cuanto a seguridad.
    </p>
   </li>
  </ul>
 </div>

 <div class="simplesect" id="reference.luasandbox.differences.modified">
  <h3 class="title">Funcionalidades que han sido modificadas</h3>
  <ul class="itemizedlist">
   <li class="listitem">
    <p class="simpara">
     <code class="literal">pcall()</code> y <code class="literal">xpcall()</code> no pueden capturar ciertos errores, en particular los errores de tiempo límite.
    </p>
   </li>
   <li class="listitem">
    <p class="simpara">
     <code class="literal">tostring()</code> no incluye las direcciones de puntero.
    </p>
   </li>
   <li class="listitem">
    <p class="simpara">
     <code class="literal">string.match()</code> ha sido parcheado para limitar la profundidad de recursión y para verificar periódicamente un tiempo límite.
    </p>
   </li>
   <li class="listitem">
    <p class="simpara">
     <code class="literal">math.random()</code> y <code class="literal">math.randomseed()</code> son reemplazados por versiones que no comparten el estado con <code class="literal">rand()</code> de PHP.
    </p>
   </li>
   <li class="listitem">
    <p class="simpara">
     Las meta métodos de Lua 5.2 <code class="literal">__pairs</code> y <code class="literal">__ipairs</code> son soportadas por <code class="literal">pairs()</code> y <code class="literal">ipairs()</code>.
    </p>
   </li>
  </ul>
 </div>

</div>
<?php manual_footer($setup); ?>