<?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">
    <span 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.
    </span>
   </li>
   <li class="listitem">
    <span 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.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     <code class="literal">load()</code> y <code class="literal">loadstring()</code>, para permitir el análisis estático del código Lua.
    </span>
   </li>
   <li class="listitem">
    <span 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.
    </span>
   </li>
   <li class="listitem">
    <span 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.
    </span>
    <ul class="itemizedlist">
     <li class="listitem">
      <span 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.
      </span>
     </li>
    </ul>
   </li>
   <li class="listitem">
    <span 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.
    </span>
    <ul class="itemizedlist">
     <li class="listitem">
      <span class="simpara">
       <code class="literal">debug.traceback()</code> sigue estando disponible.
       </span>
     </li>
    </ul>
   </li>
   <li class="listitem">
    <span class="simpara">
     <code class="literal">string.dump()</code>, ya que puede exponer datos internos.
    </span>
   </li>
   <li class="listitem">
    <span 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.
    </span>
   </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">
    <span 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.
    </span>
   </li>
   <li class="listitem">
    <span class="simpara">
     <code class="literal">tostring()</code> no incluye las direcciones de puntero.
    </span>
   </li>
   <li class="listitem">
    <span 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.
    </span>
   </li>
   <li class="listitem">
    <span 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.
    </span>
   </li>
   <li class="listitem">
    <span 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>.
    </span>
   </li>
  </ul>
 </div>

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