Fix bug #1848: taytorat leaks internal gensyms from multivar expansions
[maxima.git] / doc / info / es / Runtime.es.texi
blob6adb4d371de8357591bbe9cb0105ce96d57fd13c
1 @c English version 2011-09-03
2 @menu
3 * Introducción al entorno de ejecución::   
4 * Interrupciones::  
5 * Funciones y variables para el entorno de ejecución::
6 @end menu
8 @node Introducción al entorno de ejecución, Interrupciones, Entorno de Ejecución, Entorno de Ejecución
9 @section Introducción al entorno de ejecución
11 El fichero @code{maxima-init.mac} se carga automáticamente cada vez que se empieza a ejecutar Maxima.
12 Se puede utilizar @code{maxima-init.mac} para personalizar el entorno de Maxima. Si existe, @code{maxima-init.mac} se almacena normalmente en el directorio indicado por @code{maxima_userdir}, aunque puede estar alojado en cualquier otro directorio que esté al alcance de la función  @code{file_search}.
14 He aquí un ejemplo de fichero @code{maxima-init.mac}:
16 @example
17 setup_autoload ("specfun.mac", ultraspherical, assoc_legendre_p);
18 showtime:all;
19 @end example
21 En este ejemplo, @code{setup_autoload} le dice a Maxima que cargue en memoria el fichero @code{specfun.mac} si cualquiera de las funciones @code{ultraspherical} o @code{assoc_legendre_p} es invocada pero todavía no está definida. De esta manera, no es necesario recordar cargar el fichero antes de llamar a las funciones.
23 La sentencia  @code{showtime: all} le dice a Maxima que haga una asignación a la variable @code{showtime}.
24 El fichero  @code{maxima-init.mac} puede contener cualesquiera otras asignaciones o sentencias de Maxima.
26 @node Interrupciones, Funciones y variables para el entorno de ejecución, Introducción al entorno de ejecución, Entorno de Ejecución
27 @section Interrupciones
29 El usuario puede detener un cómputo que esté consumiendo recursos excesivos con el carácter ^C (control-C). La acción que se sigue por defecto es la detención del cómputo y la impresión de otro prompt. En este caso, no será posible reiniciar la tarea interrumpida.
31 Si a la variable Lisp @code{*debugger-hook*} se le asigna @code{nil} haciendo
33 @example
34 :lisp (setq *debugger-hook* nil)
35 @end example
37 @noindent
38 entonces tras recibir ^C, Maxima entra en el depurador de Lisp y el usuario podrá utilizar el depurador para inspeccionar el entorno Lisp. La tarea que haya sido interrumpida podrá reiniciarse escribiendo @code{continue} en el depurado de Lisp. La forma de volver a Maxima desde el depurador de Lisp, que no sea la de permitir la computación hasta la terminación de la tarea, dependerá de la versión de Lisp.
40 En sistemas Unix el carácter ^Z (control-Z) hace que Maxima deje de ejecutarse devolviendo el control al terminal del sistema. El comando @code{fg} hace que la ejecución de Maxima se reanude en el punto que lo dejó.
43 @node Funciones y variables para el entorno de ejecución,  , Interrupciones, Entorno de Ejecución
44 @section Funciones y variables para el entorno de ejecución
47 @defvr {Variable del sistema} maxima_tempdir
49 La variable @code{maxima_tempdir} almacena la ruta del directorio
50 en el que Maxima crea ciertos ficheros temporales.
51 En particular, los ficheros temporales para la realización de
52 gráficos se guardan en @code{maxima_tempdir}.
54 El valor que inicialmente toma esta variable es el directorio
55 de inicio del usuario, si Maxima es capaz de localizarlo; en
56 caso contrario, Maxima intenta encontrar un directorio que
57 sea aceptable.
59 A la variable @code{maxima_tempdir} se le puede asignar una
60 cadena de caracteres con la ruta del directorio.
61 @end defvr
63 @defvr {Variable del sistema} maxima_userdir
65 La variable @code{maxima_userdir} almacena la ruta del 
66 directorio en el que Maxima buscará ficheros Lisp y de
67 Maxima. Maxima también busca en otros directorios, guardando las variables
68 @code{file_search_maxima} y @code{file_search_lisp} la lista
69 completa de búsqueda.
71 El valor que inicialmente toma esta variable es el de un subdirectorio
72 del directorio de inicio del usuario, si Maxima es capaz de localizarlo;
73 en caso contrario, Maxima intenta encontrar un directorio que
74 sea aceptable.
76 A la variable @code{maxima_userdir} se le puede asignar una
77 cadena de caracteres con la ruta del directorio.
78 Sin embargo, cambiando el valor de la variable @code{maxima_userdir}
79 no se alteran @code{file_search_maxima} ni @code{file_search_lisp},
80 cuyos contenidos se modifican mediante otro sistema.
81 @end defvr
83 @deffn {Función} room ()
84 @deffnx {Función} room (true)
85 @deffnx {Función} room (false)
87 Presenta una descrpción del estado de almacenamiento y gestión de la pila en Maxima. La llamada @code{room} invoca a la función Lisp homónima.
89 @itemize @bullet
90 @item
91 @code{room ()} prints out a moderate description.
92 @item
93 @code{room (true)} prints out a verbose description.
94 @item
95 @code{room (false)} prints out a terse description.
96 @end itemize
98 @end deffn
100 @deffn {Función} sstatus (@var{keyword}, @var{item})
102 Si @var{keyword} es el símbolo @code{feature}, @var{item}
103 será colocado en la lista de propiedades del sistema. Una vez ejecutado
104 @code{sstatus (keyword, item)}, @code{status (feature, item)} devuelve
105 @code{true}. Si @var{keyword} es el símbolo @code{nofeature},
106 @var{item} se borrará de la lista de propiedades del sistema.
107 Esto puede ser de utilidad para los autores de paquetes, permitiendo
108 mantener el control sobre las propiedades que se han ido estableciendo.
110 Véase también @code{status}.
112 @end deffn
115 @deffn {Función} status (@code{feature})
116 @deffnx {Función} status (@code{feature}, @var{item})
118 Devuelve información sobre la presencia o ausencia de ciertas
119 propiedades dependientes del sistema.
121 @itemize @bullet
122 @item
123 @code{status (feature)} devuelve una lista con características
124 del sistema. Éstas incluyen la versión de Lisp, tipo de sistema 
125 operativo, etc. La lista puede variar de un Lisp a otro.
127 @item
128 @code{status (feature, item)} devuelve @code{true} si @var{item}
129 está en la lista de elementos retornados por @code{status (feature)}
130 y @code{false} en otro caso.
131 La función @code{status} no evalúa el argumento @var{item}. El operador
132 de doble comilla simple, @code{'@w{}'}, permite la evaluación. Una 
133 propiedad cuyo nombre contenga un carácter especial debe ser suministrada
134 como un argumento del tipo cadena. Por ejemplo,
135 @code{status (feature, "ansi-cl")}.
136 @end itemize
138 Véase también @code{sstatus}.
140 La variable @code{features} contiene una lista de propiedades que se 
141 aplican a expresiones matemáticas. Véanse @code{features} y @code{featurep}
142 para más información.
144 @end deffn
149 @deffn {Función} system (@var{command})
150 Ejecuta la instrucción @var{command} como un proceso independiente de Maxima.
151 La instrucción se le pasa a la consola del sistema para su ejecución.
152 La función @code{system} no está soportada por todos los sistemas operativos, pero suele estarlo en todos los entornos  Unix y similares.
154 Suponiendo que @code{_hist.out} es una lista de frecuencias que se quieren representar en un diagrama de barras utilizando el programa @code{xgraph},
156 @example
157 (%i1) (with_stdout("_hist.out",
158            for i:1 thru length(hist) do (
159              print(i,hist[i]))),
160        system("xgraph -bar -brw .7 -nl < _hist.out"));
161 @end example
163 A fin de hacer el diagrama y eliminar el archivo temporal posteriormente, hágase:
165 @example
166 system("(xgraph -bar -brw .7 -nl < _hist.out;  rm -f _hist.out)&")
167 @end example
169 @end deffn
173 @deffn {Función} time (%o1, %o2, %o3, ...)
175 Devuelve una lista de los tiempos, en segundos, que fueron necesarios para calcular los resultados de las salidas @code{%o1}, @code{%o2}, @code{%o3}, .... Los tiempos devueltos son estimaciones hechas por Maxima del tiempo interno de computación. La función @code{time} sólo puede utilizarse para variables correspondientes a líneas de salida; para cualquier otro tipo de variables, @code{time} devuelve @code{unknown}.
177 Hágase @code{showtime: true} para que Maxima devuelva el tiempo de ejecución de cada línea de salida.
179 @end deffn
181 @deffn {Función} timedate ()
182 @deffnx {Función} timedate (@var{T})
184 Sin argumento, @code{timedate} devuelve una cadena que 
185 representa la hora y fecha actuales. La cadena tiene el
186 formato @code{YYYY-MM-DD HH:MM:SS[+|-]ZZ:ZZ}, donde
187 los campos indicados son: año, mes, día,
188 horas, minutos, segundos y número de horas de diferencia
189 con respecto a la hora GMT.
191 Con argumento, @code{timedate(@var{T})} devuelve la hora
192 @var{T} como una cadena con formato @code{YYYY-MM-DD HH:MM:SS[+|-]ZZ:ZZ}.
193 @var{T} se interpreta como el número de segundos transcurridos
194 desde la medianoche del uno de enero de 1900, tal como lo devuelve
195 @code{absolute_real_time}.
197 Ejemplos:
199 @code{timedate} sin argumento devuelve una cadena con la hora y fecha actuales.
201 @c ===beg===
202 @c d : timedate ();
203 @c print ("timedate reports current time", d) $
204 @c ===end===
205 @example
206 (%i1) d : timedate ();
207 (%o1)                      2010-06-08 04:08:09+01:00
208 (%i2) print ("timedate reports current time", d) $
209 timedate reports current time 2010-06-08 04:08:09+01:00
210 @end example
212 @code{timedate} con argumento devuelve una cadena que representa al propio argumento.
214 @c ===beg===
215 @c timedate (0);
216 @c timedate (absolute_real_time () - 7*24*3600);
217 @c ===end===
218 @example
219 (%i1) timedate (0);
220 (%o1)                      1900-01-01 01:00:00+01:00
221 (%i2) timedate (absolute_real_time () - 7*24*3600);
222 (%o2)                      2010-06-01 04:19:51+01:00
223 @end example
224 @end deffn
227 @deffn {Función} absolute_real_time ()
229 Devuelve el número de segundos transcurridos desde la medianoche
230 del 1 de enero de 1900 UTC. Este valor es un número entero
231 positivo.
233 Véanse también @code{elapsed_real_time} y @code{elapsed_run_time}.
235 Ejemplo:
237 @c ===beg===
238 @c absolute_real_time ();
239 @c 1900 + absolute_real_time () / (365.25 * 24 * 3600);
240 @c ===end===
241 @example
242 (%i1) absolute_real_time ();
243 (%o1)                      3385045277
244 (%i2) 1900 + absolute_real_time () / (365.25 * 24 * 3600);
245 (%o2)                   2007.265612087104
246 @end example
248 @end deffn
250 @deffn {Función} elapsed_real_time ()
252 Devuelve los segundos (incluyendo fracciones de segundo) 
253 transcurridos desde que Maxima se inició (o reinició) la sesión de
254 Maxima. Este valor es un decimal en coma flotante.
256 Véanse también @code{absolute_real_time} y @code{elapsed_run_time}.
258 Ejemplo:
260 @c ===beg===
261 @c elapsed_real_time ();
262 @c expand ((a + b)^500)$
263 @c elapsed_real_time ();
264 @c ===end===
265 @example
266 (%i1) elapsed_real_time ();
267 (%o1)                       2.559324
268 (%i2) expand ((a + b)^500)$
269 (%i3) elapsed_real_time ();
270 (%o3)                       7.552087
271 @end example
273 @end deffn
275 @deffn {Función} elapsed_run_time ()
277 Devuelve una estimación en segundos (incluyendo fracciones de segundo) 
278 durante los cuales Maxima ha estado realizando cálculos desde que se
279 inició (o reinició) la sesión actual. 
280 Este valor es un decimal en coma flotante.
282 Véanse también @code{absolute_real_time} y @code{elapsed_real_time}.
284 Ejemplo:
286 @c ===beg===
287 @c elapsed_run_time ();
288 @c expand ((a + b)^500)$
289 @c elapsed_run_time ();
290 @c ===end===
291 @example
292 (%i1) elapsed_run_time ();
293 (%o1)                         0.04
294 (%i2) expand ((a + b)^500)$
295 (%i3) elapsed_run_time ();
296 (%o3)                         1.26
297 @end example
299 @end deffn