Agena

Software captura de pantalla:
Agena
Detalles de software:
Versión: 2.11.5 Actualizado
Fecha de carga: 22 Jun 18
Promotor: Alexander Walz
Licencia: Libre
Popularidad: 23

Rating: nan/5 (Total Votes: 0)

Agena es un lenguaje de programación de código abierto, gratuito, multiplataforma y fácil de aprender diseñado para el uso diario. Se puede utilizar en entornos gráficos, científicos, lingüísticos y educativos, así como en aplicaciones de scripting, que admiten todos los sistemas operativos principales.


Ofrece numerosas instalaciones de control de flujo

La aplicación ofrece numerosas instalaciones de control de flujo, como por ejemplo, si. condiciones elif, else condiciones, caso de y demás, es operador, numérico para, de, para y por bucles, bucles numéricos combinados para y while, bucles for y in, bucles while y do / as, una instrucción skip, un break declaración, así como la validación del tipo de datos.


Proporciona asignaciones de enumeración

Entre otras características, podemos mencionar una biblioteca matemática de precisión arbitraria, una configuración sencilla de su entorno personal, un sistema de paquete fácil de usar, asignaciones de enumeración, control de alcance a través de las palabras clave epocs / scope y muchas otras características atractivas.

Debajo del capó y la disponibilidad

Una mirada rápida debajo del capó nos mostrará que el proyecto está escrito en los lenguajes de programación C, BASIC, Lua y ALGOL 68, lo que significa que su sintaxis se asemeja a la sintaxis de estos proyectos. Se ejecuta completamente en un entorno de consola / terminal, lo que significa que no cuenta con una interfaz gráfica de usuario (GUI).


Se envía con un editor simple

A pesar de que el software Agena es una aplicación de línea de comandos, viene con un software gráfico de edición simple, llamado AgenaEdit, que presenta un entorno Agena integrado y capacidades de resaltado de sintaxis. Está fuertemente inspirado en un editor similar desarrollado por Bill Spitzak para el kit de herramientas GUI multiplataforma FLTK de C ++.


Funciona en Raspberry Pi

Las capacidades gráficas de Agena son compatibles con los sistemas operativos GNU / Linux, Solaris, Mac OS X, Microsoft Windows, eComStation - OS / 2 y DOS. Se puede implementar fácilmente tanto en plataformas de hardware de 64 bits como de 32 bits, y se ha probado con éxito en el tablero de la computadora Raspberry Pi basado en ARM.

¿Qué hay de nuevo? en este lanzamiento:

  • nueva función de Cálculo y Estadísticas

Qué hay de nuevo en la versión:

  • nueva función de Cálculo y Estadísticas

Qué hay de nuevo en la versión 2.9.4:

  • nueva función de Cálculo y Estadísticas

Qué hay de nuevo en la versión 2.8.5:

  • nueva función Cálculo y estadísticas

Qué hay de nuevo en la versión 2.8.2:

  • nueva función Cálculo y estadísticas

¿Qué hay de nuevo en la versión 2.6.1:

  • `stats.chauvenet` ahora puede verificar específicamente para Valores atípicos inferiores o superiores al pasar la opción `outlier = 'lower'` or` outlier =' upper'`, respectivamente.
  • `bags.remove` provocó fallas de segmentación. Esto ha sido arreglado. Además, todas las funciones de 'bolsas' implementadas en C han sido modificadas internamente.
  • Los metametodos (no documentados) para `+`, `-` y` * `no funcionaron si el paquete` bags` no se ha invocado con la función `with` o la instrucción` import / alias`. Esto ha sido arreglado.

Qué hay de nuevo en la versión 2.5.4:

  • `stats.chauvenet` ahora puede verificar específicamente los valores extremos inferiores o superiores al pasar la opción` outlier = 'lower'` or `outlier =' upper'`, respectivamente.
  • `bags.remove` provocó fallas de segmentación. Esto ha sido arreglado. Además, todas las funciones de 'bolsas' implementadas en C han sido modificadas internamente.
  • Los metametodos (no documentados) para `+`, `-` y` * `no funcionaron si el paquete` bags` no se ha invocado con la función `with` o la instrucción` import / alias`. Esto ha sido arreglado.

¿Qué hay de nuevo en la versión 2.5.3:

  • `stats.chauvenet` ahora puede verificar específicamente para Valores atípicos inferiores o superiores al pasar la opción `outlier = 'lower'` or` outlier =' upper'`, respectivamente.
  • `bags.remove` provocó fallas de segmentación. Esto ha sido arreglado. Además, todas las funciones de 'bolsas' implementadas en C han sido modificadas internamente.
  • Los metametodos (no documentados) para `+`, `-` y` * `no funcionaron si el paquete` bags` no se ha invocado con la función `with` o la instrucción` import / alias`. Esto ha sido arreglado.

Qué hay de nuevo en la versión 2.4.2:

  • `stats.chauvenet` ahora puede verificar específicamente los valores extremos inferiores o superiores al pasar la opción` outlier = 'lower'` or `outlier =' upper'`, respectivamente.
  • `bags.remove` provocó fallas de segmentación. Esto ha sido arreglado. Además, todas las funciones de 'bolsas' implementadas en C han sido modificadas internamente.
  • Los metametodos (no documentados) para `+`, `-` y` * `no funcionaron si el paquete` bags` no se ha invocado con la función `with` o la instrucción` import / alias`. Esto ha sido arreglado.

Qué hay de nuevo en la versión 2.3.0 RC1:

  • Los bucles numéricos `for` ahora admiten la palabra clave 'downto' para que pueda realizar la cuenta regresiva sin utilizar un tamaño de paso 'by' obligatorio y negativo. En el contexto `downto ', el tamaño del paso` by' siempre debe ser positivo. Los valores `from 'start y` to' stop son obligatorios cuando se utiliza la palabra clave `downto '.
  • Los meta-métodos '__finite', '__entier' y '__sqrt' ya no son compatibles. En su lugar, se han agregado tres nuevos metatodos para operaciones en estructuras: '__union' para operaciones de unión, '__intersect' para determinar intersecciones y '__minus' para diferencias. Por lo tanto, el paquete `bags` ahora también admite estas tres operaciones.
  • El operador de división de enteros `` no soportaba su meta-método y en su lugar usaba el de división flotante (`/` operador). Esto ha sido arreglado.
  • La nueva función `stats.gini` determina el coeficiente de Gini, una medida de (in) igualdad.
  • La nueva función `stats.zscore` devuelve una función que calcula el puntaje z (puntaje estándar) de una muestra: el número de desviaciones estándar que la muestra está por encima o por debajo de la media de una distribución.
  • `stats.sorted` ahora usa de manera predeterminada el algoritmo Introsort en lugar de Quicksort. Esto puede acelerar el tiempo de cálculo tres veces en situaciones mal acondicionadas (donde Quicksort necesitaría operaciones O (n ^ 2)), sin sacrificar el rendimiento en situaciones normales. En realidad, Introsort usa Quicksort de forma predeterminada y luego cambia automáticamente a Heapsort si la profundidad de recursión alcanza 2 * log (n, 2), donde n es el número de elementos en una estructura.
  • Puede anular esta lógica pasando la nueva opción 'quicksort' que utiliza únicamente el método recursivo tradicional Quicksort para ordenar números. Además, `stats.sorted` ahora también puede usar el algoritmo Heapsort exclusivamente si se pasa la nueva opción 'heapsort', y un algoritmo Quicksort no recursivo ideado por Niklaus Wirth con la nueva opción 'nrquicksort'.
  • La nueva función `stats.meanmed` devuelve tanto la media aritmética como la mediana de una distribución, o alternativamente el cociente de la media y la mediana, acelerando los tiempos de cálculo cuando estos valores son necesarios en alrededor del 20 por ciento.
  • Se mejoró el mensaje de error del operador `size`.

Qué hay de nuevo en la versión 2.1.1:

  • Nuevas funciones y parches:
  • `try / catch`: especificación explícita de una variable de error justo después de que el token` catch` ahora es opcional. Si no se proporciona una variable de error, el mensaje de error se almacena automáticamente en la variable local `lasterror`, y la palabra clave` then` se debe omitir:
  • & gt; prueba
  • & gt; error ('¡Uy!')
  • & gt; atrapar
  • & gt; imprimir (lasterror)
  • & gt; yrt;
  • ¡Uy!
  • La sentencia `try / catch` a veces no funcionaba en los procedimientos (variable de error no asignada). Esto ha sido arreglado.
  • La nueva función `net.wget` descarga páginas HTML de la Web.
  • Ajustó `skycrane.counter` en un 10%. La función ahora aplica opcionalmente el Kahan-Ozawa en lugar del algoritmo de suma de Kahan original si el tercer tercer argumento es la cadena 'ozawa'. Las fuentes de C correspondientes se han modificado para evitar la optimización del compilador, lo que también podría cancelar las optimizaciones.
  • `argerror` ahora imprime el nombre de tipo definido por el usuario de un valor recibido en su mensaje de error. Si un valor no tiene un tipo definido por el usuario, se emite su tipo básico.
  • La nueva opción 'a' de `debug.getinfo` devuelve la cantidad de argumentos esperados por un procedimiento, gracias a Rob Hoelz 'LuaPowerPatch.
  • Mensaje de error de 'índice fuera de rango' mejorado para cadenas.
  • Modificó los archivos `stats.agn`,` linalg.agn`, `library.agn` y` ansi.agn` con respecto a su manejo de errores.

Qué hay de nuevo en la versión 2.1.0:

  • Para un nuevo tipo de manejo de errores, se ha introducido la nueva instrucción `try / catch`. Ha sido inventado y escrito por Hu Qiwei para Lua 5.1 en 2008.
  • En general, cualquier declaración en la que se espere una excepción se puede incluir en una cláusula `try`. Si se emite un error, generado por una llamada explícita a la función `error` oa cualquier otra expresión, función o instrucción, el control salta inmediatamente a la cláusula` catch` correspondiente, si está presente o al final del `try / yrt `declaración si no se ha dado una cláusula` catch`, ignorando cualquier otra afirmación posterior en la cláusula `try`.
  • Las instalaciones de tratamiento de errores `protect / lasterror` son todavía y siempre serán compatibles. La nueva instrucción de control también funciona con las declaraciones `break`,` skip`, `redo` y` return` sin fallas.
  • La nueva instrucción `rehacer` reinicia la iteración actual de un bucle` for / to` y `for / in` desde el principio.
  • El nuevo operador `recip` devuelve el inverso de un número x. Es equivalente a la expresión 1 / x, pero más rápido.
  • La nueva función `stats.ema` calcula el promedio móvil exponencial de una distribución. La nueva función `stats.gema` devuelve una función de iterador que devuelve el promedio móvil exponencial respectivo de una distribución.
  • `*%`, `+%`, y `-%` devolvió `undefined` en lugar de un resultado correcto si su operando derecho era cero. Esto ha sido arreglado.
  • Se corrigió un mensaje de error en `net.survey`.
  • Mensajes de error mejorados para la indexación fuera de rango de pares y cadenas.
  • En las versiones ANSI, Solaris y DOS, se ha ajustado el operador `int`.
  • La nueva función de API de C `agn_arraytoseq` convierte una matriz numérica en una secuencia y empuja esta nueva secuencia en la parte superior de la pila.
  • Actualizó el manual.

Qué hay de nuevo en la versión 2.1.0 RC:

  • La nueva instrucción `rehacer` reinicia la iteración actual de un bucle` for / to` y `for / in` desde el principio. Ejemplo:
  • & gt; flag: = verdadero; & gt; para j en [10, 11, 12] do & gt; imprimir ('antes', j, bandera); & gt; si flag y j = 11 entonces & gt; bandera clara; & gt; print ('- & gt;', j, flag, 'jump back') & gt; rehacer & gt; fi; & gt; imprimir ('después', j, bandera) & gt; hasta j & gt; 12; antes de 10 verdadero después de 10 verdadero antes de 11 verdadero - & gt; 11 falso salto atrás 11 falso después de 11 falso antes 12 falso después de 12 falso
  • El nuevo operador `recip` devuelve el inverso de un número x. Es equivalente a la expresión 1 / x, pero más rápido.
  • La nueva función `stats.ema` calcula el promedio móvil exponencial de una distribución. La nueva función `stats.gema` devuelve una función de iterador que devuelve el promedio móvil exponencial respectivo de una distribución. Para su uso, eche un vistazo al archivo fuente src / stats.c, funciones C * ema.
  • `*%`, `+%`, y `-%` devolvió `undefined` en lugar de un resultado correcto si su operando derecho era cero. Esto ha sido arreglado.
  • Se corrigió un mensaje de error en `net.survey`.
  • La nueva función de API de C `agn_arraytoseq` convierte una matriz numérica en una secuencia y empuja esta nueva secuencia en la parte superior de la pila.

Qué hay de nuevo en la versión 2.0.0:

  • Nuevas declaraciones y funciones:
  • Agena 2.0 es compatible con Agena 1.12, excepto que los tokens `import`,` alias`, `until` y` onsuccess` ahora son palabras clave y ya no se pueden usar como variables. Actualmente, hay instaladores de Solaris, Debian (x86, PowerPC, Raspberry Pi), Windows, Mac y DOS disponibles para 2.0, incluido un manual básico y una referencia que explican todas las características nuevas en detalle.
  • Las nuevas variantes de bucle 'para / as' y 'para / hasta' verifican una condición al final de la iteración actual y comienzan la siguiente iteración o abandonan el bucle. Esto funciona tanto con bucles `for / to`, como` for / in`. En efecto, ambas variantes ejecutan un ciclo al menos una vez hasta que se verifique la condición dada.
  • Ejemplos:
  • & gt; para i a 5 hacer
  • & gt; imprimir (i)
  • & gt; como yo & lt; 3
  • & gt; para mí en [1, 2, 3, 4, 5] do
  • & gt; imprimir (i)
  • & gt; hasta que i & gt; = 3
  • El nuevo ciclo `do / until` itera hasta que se cumple una cierta condición:
  • & gt; c: = 0;
  • & gt; hacer
  • & gt; inc c;
  • & gt; imprimir (c)
  • & gt; hasta que c & gt; = 3
  • En los bucles `for` numéricos, la cláusula` to` no se puede dar por más tiempo. En cambio, al omitir la cláusula `to`, el ciclo itera hasta que se ha alcanzado el número más grande que se puede representar en su plataforma, en C HUGE_VAL:
  • & gt; porque lo hago
  • & gt; imprimir (i)
  • & gt; od
  • La nueva cláusula `onsuccess` en las sentencias` if` y `case` ejecuta un fragmento si al menos una de las condiciones es verdadera. Ejemplos:
  • & gt; flag: = falso;
  • & gt; si 1 = 0, entonces
  • & gt; imprimir (0)
  • & gt; elif 1 = 1 luego
  • & gt; imprimir (1)
  • & gt; onsuccess
  • & gt; flag: = verdadero
  • & gt; else
  • & gt; imprimir (-1)
  • & gt; fi;
  • & gt; imprimir (bandera);
  • verdadero
  • & gt; flag: = falso;
  • & gt; si 1 = 0, entonces
  • & gt; imprimir (0)
  • & gt; elif 1 = 0 luego
  • & gt; imprimir (1)
  • & gt; onsuccess
  • & gt; flag: = verdadero
  • & gt; else
  • & gt; imprimir (-1)
  • & gt; fi;
  • & gt; imprimir (bandera);
  • falso
  • & gt; flag: = falso;
  • & gt; a: = 2;
  • & gt; caso a
  • & gt; de 1 entonces
  • & gt; imprimir (1)
  • & gt; de 2 entonces
  • & gt; imprimir (2)
  • & gt; onsuccess
  • & gt; flag: = verdadero
  • & gt; else
  • & gt; imprimir (-1)
  • & gt; esac;
  • & gt; imprimir (bandera);
  • verdadero
  • La nueva instrucción `import` permite importar una o más bibliotecas sin poner sus nombres entre comillas, p. "Import calc, stats" es equivalente a "readlib ('calc', 'stats')".
  • La opción `alias` a la instrucción` import` asigna uno o más nombres cortos a las funciones de la biblioteca inicializadas, p. "import calc alias xpdiff" es equivalente a "con ('calc', 'xpdiff')", e "import calc alias" es equivalente a "con ('calc')".
  • El nuevo operador `..` permite indexar tablas incluso si su operando del lado izquierdo evalúa` null`. En este caso, se devuelve `null` y no se emite el error` intento de índice de campo ... (un valor nulo) `. Es similar a la función `getentry` pero es tres veces más rápido. Ejemplos:
  • & gt; crear tabla a;
  • & gt; a.b:
  • nulo
  • & gt; a.b.c:
  • Error en stdin, en la línea 1:
  • intenta indexar el campo `b` (un valor nulo)
  • & gt; a..b..c:
  • nulo
  • & gt; crear tabla a;
  • & gt; a [1]:
  • nulo
  • & gt; a [1] [2]:
  • Error en stdin, en la línea 1:
  • intenta indexar el campo `?` (un valor nulo)
  • & gt; a .. [1] .. [2]:
  • nulo
  • La nueva función `drem` evalúa el resto de una división entera x / y, pero contrariamente a` irem`, redondea el cociente interno x / y al entero más cercano en lugar de hacia cero.
  • La nueva función `skycrane.todate` devuelve la fecha y hora actual como una cadena formateada.
  • La nueva función `io.truncate` trunca un archivo en la posición actual del archivo.
  • La nueva función `io.move` cambia la posición del archivo a un número determinado de caracteres a la izquierda o a la derecha.
  • La nueva función `io.filesize` devuelve el tamaño de un archivo.
  • `readlib` ahora acepta cadenas como sus argumentos, solo. Los números ya no están permitidos.
  • Si el último argumento para `with` es el booleano` false`, entonces la función no escribe los nombres cortos asignados a la consola (stdout).
  • `strings.fields` ahora también acepta una secuencia de números de índice. Sin embargo, no acepta el índice `0` por más tiempo.
  • El instalador de Debian de Raspberry Pi Wheezy ahora incluye el paquete de gráficos `gdi`.
  • El archivo `change.log` ahora se muestra correctamente en Windows.

Qué hay de nuevo en la versión 2.0.0 RC3:

  • Las nuevas variantes de bucle 'para / as' y 'para / hasta' verifican una condición al final de la iteración actual y comienzan la siguiente iteración o abandonan el bucle. Esto funciona tanto con bucles for / to, como for / in.

Qué hay de nuevo en la versión 2.0.0 RC2:

  • Las nuevas variantes de bucle 'para / as' y 'para / hasta' verifican una condición al final de la iteración actual y comienzan la siguiente iteración o dejan un bucle. Esto funciona tanto con bucles for / to, como for / in.

Qué hay de nuevo en la versión 2.0.0 RC1:

  • La nueva instrucción `import` permite importar una o más bibliotecas sin poner sus nombres entre comillas, p. "Import calc, stats" es equivalente a "readlib ('calc', 'stats')".
  • La opción `alias` a la instrucción` import` asigna uno o más nombres cortos a las funciones de la biblioteca inicializadas, p. "import calc alias xpdiff" es equivalente a "con ('calc', 'xpdiff')", e "import calc alias" es equivalente a "con ('calc')".
  • El nuevo operador `..` permite indexar tablas incluso si su operando del lado izquierdo evalúa` null`. En este caso, se devuelve `null` y no se emite el error` intento de índice de campo ... (un valor nulo) `. Es similar a la función `getentry` pero es tres veces más rápida.

Qué hay de nuevo en la versión 1.12.9:

  • Las nuevas funciones `io.getclip` y` io.putclip` intercambian textos entre Agena y el portapapeles (solo Windows).
  • `stats.prange` ha sido reescrito en C y se ha vuelto hasta un 60% más rápido.
  • `os.cpuinfo` ahora devuelve información correcta y más sobre sistemas basados ​​en ARM.
  • En sistemas DOS y UNIX, incluido Mac OS X y solo en el dominio complejo, la exponenciación de la base 0 al exponente 0 + r * I, con cualquier flotación distinta de cero, devuelve `undefined` en lugar de 0. Esto ha sido arreglado.
  • En sistemas DOS y UNIX, incluido Mac OS X y solo en el dominio complejo, la exponenciación de la base 0 al exponente r + 0 * I, con r cualquier flotación positiva, devuelve `undefined` en lugar de 0. Esto tiene sido arreglado.
  • `stats.obcount` y` stats.obpart` no pudieron incluir valores en el subintervalo situado más a la derecha. Esto ha sido arreglado.
  • `calc.nakspline`,` calc.naksplinecoeffs`, `calc_clampedspline`, y` calc_clampedsplinecoeffs` provocaban fallas de segmentación si se llamaba con una estructura que contenía muy pocos puntos, es decir, pares. Esto se ha solucionado devolviendo `fail` en estos casos.
  • Los posibles errores de desasignación de memoria se han eliminado de `calc.neville`,` calc.interp`, `calc.newtoncoeffs`,` calc.naksplinecoeffs`, `calc.clampedsplinecoeffs`,` calc.nakspline`, y `calc.clampedspline`.
  • La nueva función de la API de C `agn_checkinteger` verifica si un argumento es un número y un número entero y, contrariamente a` luaL_checkinteger`, emite un error en caso contrario.

Qué hay de nuevo en la versión 1.9.0:

  • La nueva función `alternate` devuelve su primer argumento si su segundo argumento es` null`. De lo contrario, devuelve su segundo argumento.
  • El modificador -b al ejecutable de Agena se ha eliminado porque su salida había sido la misma que la opción -v.
  • Las versiones de Windows y UNIX / Mac de `strings.utf8size` contenían una posible pérdida de memoria; esto ha sido cambiado.
  • Todos los archivos DLL / SO binarios de las bibliotecas más ya no contienen código no utilizado, adelgazando sus tamaños hasta en un 10%, dependiendo del sistema operativo. El archivo MAKE y las fuentes que anteriormente importaban archivos de encabezado no utilizados han sido modificados. Por ejemplo, esto reduce el tamaño de los binarios de Windows en 55 kBytes.
  • Extendió el conjunto de pruebas.
  • Actualizó los archivos del esquema.

Qué hay de nuevo en la versión 1.6.0:

  • Nuevas funciones y características:
  • La nueva función `checktype` determina si todos los valores en una estructura son de un tipo dado.
  • La nueva función `isint` verifica si todos sus argumentos son enteros.
  • La nueva función `strings.dleven` devuelve la distancia Damerau-Levenshtein de dos cadenas.
  • La nueva función `stats.ad` determina la desviación absoluta de todos los valores en una estructura.
  • La nueva función `stats.countentries` cuenta el número de ocurrencias de todos los elementos en una estructura.
  • La nueva función `stats.deltalist` devuelve una estructura de los deltas de los respectivos elementos vecinos.
  • La nueva función `stats.gmean` devuelve la media geométrica de una estructura.
  • La nueva función `stats.hmean` devuelve la media armónica de una estructura.
  • La nueva función `stats.ios` devuelve un indicador comprobado de estabilidad en una distribución.
  • La nueva función `stats.iqr` devuelve el rango intercuartílico.
  • La nueva función `stats.issorted` verifica si todos los números en una estructura están ordenados en orden ascendente.
  • La nueva función `stats.moment` calcula el momento de los datos dados sobre un origen.
  • La nueva función `stats.numbperm` devuelve el número de permutaciones.
  • La nueva función `stats.percentile` determina los percentiles.
  • La nueva función `stats.skewness` devuelve la asimetría, un indicador de la simetría de una distribución de probabilidad.
  • La nueva función `stats.sumdata` resume todos los poderes de una estructura sobre un origen.
  • `stats.tovals` ahora es una función de biblioteca C y, por lo tanto, es hasta un 40% más rápida.
  • Con una tabla o secuencia vacía, `stats.qmean`,` stats.mean`, `stats.gmean`,` stats.sd`, `stats.median`,
  • `stats.var` ahora devuelve el error.
  • La longitud máxima para una línea de entrada en el intérprete independiente se ha cambiado de 512 a 2048 caracteres.
  • La nueva variable de entorno `environ.maxpathlength` almacena el número máximo de caracteres para una ruta de archivo (excluyendo el carácter de C).
  • Las nuevas variables de entorno `environ.minnumber` y` environ.maxnumber` contienen el valor mínimo y máximo que un número de Agena (actualmente un ANSI-C double) puede almacenar.
  • La nueva variable de entorno `environ.umaxlong` incluye el valor integral máximo del tipo C, unsigned long en sistemas de 32 bit, y unsigned long en máquinas de 16 bits.
  • C API:
  • Se restableció la compatibilidad del 100% de la API de Agena C con la API C de Lua mediante la introducción de las funciones de volcado de Lua *. Por lo tanto, ahora puede almacenar funciones en una representación binaria, p. usando `strings.dump` o lua_dump en el nivel C.
  • Introdujo la nueva función `agnL_optboolean` para verificar si hay argumentos booleanos opcionales y devolverlos en caso de éxito.
  • Corrección de errores:
  • `environ.globals` siempre se cierra con un error, esto se ha solucionado.
  • `assume` devolvió false con ambos argumentos siendo o evaluando a 'undefined'. Ahora vuelve verdadero en este caso.
  • Agena se bloqueó al pasar una tabla vacía y un delimitador para 'unirse': esto se ha solucionado.
  • La opción `colour` ya no está siendo ignorada por` gdi.plot`.
  • Con las tablas, `stats.minmax` devolvió un valor incorrecto para el mínimo. Ahora funciona correctamente.
  • Con una tabla vacía, `stats.median` devolvió 0, ahora devuelve el error.
  • Contrariamente a la documentación, `strings.isending` devolvió 'verdadero' con ambas cadenas siendo iguales. Esto ha sido arreglado.
  • `run` devolvió` could not open file` si un script existente de Agena incluía un error de sintaxis. Esto se solucionó al reescribir completamente la función.
  • Se agregó el parche 9 de Lua 5.1.4: "Generación incorrecta de código para algunas expresiones booleanas particulares [por ejemplo complejas]".
  • Se agregó el parche 11 de Lua 5.1.4: "El analizador puede recopilar un prototipo mientras lo construye".
  • * Información: Al agregar el parche 10 de Lua 5.1.4, "el metadato del índice [__write / __ new] puede no funcionar si el metatable es su propio metatable", para Agena no es necesario, porque Agena ya funciona correctamente en este caso.
  • Se eliminó la palabra clave no utilizada `default`.
  • Un poco de fortalecimiento de funciones y características.
  • Mejoras:
  • Agregó una versión _experimental_ de `io.anykey` a la versión de Mac. Sin embargo, al menos en Lion, la clave presionada a veces se repite en el shell.
  • `utils.readcsv` ahora opcionalmente puede devolver todos los valores en un archivo CSV en una secuencia plana.
  • El paquete `clock` ahora admite el operador de división` / `añadiéndolo a la metatabla del operador` tm`.
  • Se modificó el comportamiento de `with` porque no podía asignar nombres cortos para muchas funciones de la biblioteca: si las funciones se han puesto en la tabla .aux, no asigne nombres cortos para estos nombres de funciones; de lo contrario, asigne nombres cortos para _todos_ otras funciones del paquete. Por lo tanto: `package.register` para registrar todas las funciones de la biblioteca para` with` para asignar nombres cortos, ya no es necesario. Estará en desuso en una de las siguientes versiones.
  • Mejorado el conjunto de pruebas.
  • Manual:
  • Mejorado el manual y el índice.
  • Consistencia:
  • Para todas las siguientes renombraciones, los siguientes nombres de variables antiguas aún son compatibles.
  • `environ.MinLong` ha cambiado de nombre a` environ.minlong`.
  • `environ.MaxLong` ha cambiado de nombre a` environ.maxlong`.
  • `environ.BufferSize` ha cambiado de nombre a` environ.buffersize`.
  • `environ.PathSep` ha cambiado de nombre a` environ.pathsep`.
  • `environ.More` ha cambiado de nombre a` environ.more`.
  • `environ.WithProtected` ha cambiado de nombre a` environ.withprotected`.
  • `environ.Os` ha cambiado de nombre a` environ.os`.
  • `environ.Cpu` ha cambiado de nombre a` environ.cpu`.
  • `environ.Release` ha cambiado de nombre a` environ.release`.
  • `environ.GdiDefaultOptions` ha cambiado de nombre a` environ.gdidefaultoptions`.
  • En Windows, `os.login` y` os.computername` ahora devuelven 'fail' como lo hacen las versiones de UNIX o OS / 2.
  • El modificador `-DCOMPAT13` se ha eliminado finalmente para compilar una versión compatible con Agena 1.3.x.
  • Otro:
  • Se ha eliminado el `calc.fseq` en desuso. Por favor use `nseq` en su lugar.

Qué hay de nuevo en la versión 1.5.1:

  • Parcheó `strings.fields` que no funcionó en absoluto. Además, se ha convertido en una función de biblioteca C y, por lo tanto, es 2,6 veces más rápida.
  • `cadenas.words` ahora acepta un tercer argumento, si se establece en` true`, los delimitadores sucesivos son ignorados.
  • Eliminó una posible fuga de seguridad de `io.write` y` io.writeline` y mejoró sus mensajes de error.
  • Parcheó `binio.readchar` para evitar problemas con archivos de tamaño superior a 2 GBytes.
  • Mensajes de error corregidos de las funciones `xbase.purge`,` xbase.readvalue`, `xbase.purge`,` ads.getvalues`, `binio.readshortstring`,` os.computername`, `os.login`, `os.fattrib`,` environ.kernel`, `package.register`.
  • Los terabytes ahora se pueden ingresar con la notación T, donde es un número entero, y T es el carácter `T`. Del mismo modo, g denota miles de millones y t billones. Consulte la página 48 del manual para obtener más información.
  • Actualizó el manual.
  • En su mayoría, todos los conmutadores de compatibilidad con versiones anteriores en el código fuente C se han eliminado por razones de limpieza del código. Esto afecta solo a aquellos que intentan recompilar Agena 1.5 o superior con plena compatibilidad con versiones anteriores de Agena 1.3 y 1.4, y con la mayoría de compatibilidad con versiones anteriores de Lua 5.0 (excepto el antiguo manejo de la biblioteca Lua 5.0).

Qué hay de nuevo en la versión 1.5.0:

  • `map` ahora también puede procesar cadenas dadas como su segundo argumento. La función respectiva y sus argumentos se aplican consecutivamente a cada carácter de izquierda a derecha, y el resultado se devuelve en una secuencia.
  • `ejecutar`: si desea cargar y ejecutar código de archivos con un sufijo 'agn', no tiene que especificar el sufijo en el argumento por más tiempo. Entonces `run 'test'` y` run' test.agn'` ahora son lo mismo.
  • La palabra clave `is` ahora es obligatoria para definir procedimientos. (Con GCC, utilice el modificador -DCOMPAT14 para compilar una versión de Agena donde la palabra clave `is` aún es opcional).
  • La declaración `try` ha quedado en desuso y ya no es compatible. (Con GCC, use el modificador -DCOMPAT14 para compilar una versión de Agena que todavía tenga esta declaración).
  • Se han eliminado las siguientes funciones de 'utils': `arraysize`,` getarray`, `getwholearray`,` newarray`, `searcharray`,` setarray`. Para compatibilidad con versiones anteriores, se han agregado al archivo lib / compat.agn. (Con GCC, use el modificador -DCOMPAT14 para compilar una versión de Agena que todavía admita las funciones utils originales).
  • `utils.singlesubs` ha sido completamente reescrito. Ahora espera una secuencia de números como segundo argumento en lugar de la anterior estructura de datos de usuario de estructura de cadenas. Es un 35% más lento que la versión anterior, pero la eliminación de la estructura del sistema de cadenas fue más importante.
  • `strings.include` se colgó si se llamaba con 0 como segundo argumento. Esto ha sido arreglado.
  • Aplicado el parche del 10 de mayo de 2011 de Michael G. Schwern a sus funciones auxiliares de fecha `32 bits-Año 2038-Fix` utilizadas por los paquetes` os` y `xbase` (` Make mktime64 () corrige la estructura tm entrante como ISO C requiere `)
  • Optimización del código interno: algunas funciones C de inicialización de la biblioteca y carga de archivos usaron la pila para compilar las cadenas de rutas y nombre de archivo. La nueva función auxiliar C `concat` escrita por Solar Designer ahora se usa en su lugar en muchos casos.
  • La API de Agena C ahora es 100% compatible con la API de Lua C para facilitar la transferencia de paquetes C Lua a Agena.
  • Por lo tanto, se han cambiado el nombre de las siguientes funciones: lua_isnumber - & gt; agn_isnumber, lua_isstring - & gt; agn_isstring, luaL_optnumber - & gt; agnL_optnumber, luaL_checknumber - & gt; agnL_checknumber, luaL_optnumber - & gt; agnL_optnumber, luaL_checkinteger - & gt; agnL_checkinteger, luaL_optinteger - & gt; agnL_optinteger.
  • Se han cambiado los nombres de las siguientes macros: luaL_checkint - & gt; agnL_checkint, luaL_optint - & gt; agnL_optint.
  • A diferencia de la implementación anterior de Agena, lua_tonumber ahora devuelve 0 como en Lua en caso de que se haya pasado un número no, en lugar de devolver HUGE_VAL.
  • lua_setglobal2 ha sido eliminado. Use lua_pushvalue y lua_setglobal en su lugar.

Qué hay de nuevo en la versión 1.4.2:

  • Si en la lista de parámetros de un procedimiento se han especificado los tipos definidos por el usuario, en
  • llamadas de procedimiento no se emitieron errores y el procedimiento se ha ejecutado en su lugar, en los siguientes casos:
  • a) una tabla, conjunto, secuencia, par o procedimiento, sin ser definido por el usuario
  • tipo - se ha pasado,
  • b) no se ha pasado ningún valor para el parámetro en cuestión.

Qué hay de nuevo en la versión 1.4.1:

  • Los nombres cortos para `stats.quartiles` y` stats.mode` no pueden ser asignados por la función `with`. Esto ha sido arreglado.
  • Erróneamente, `con` no pudo asignar un nombre corto para` gdi.settriangle`. Esto ha sido cambiado.
  • Se ha mejorado el manejo de errores de `calc.polygen`.
  • Mensaje de error mejorado de `fractals.draw` para archivos de mapa de FRACTINT que faltan.
  • Se eliminó la función `strings.rseek` en desuso. Para compatibilidad con versiones anteriores, `strings.seek` se ha agregado al archivo lib / compat.agn.
  • Agregó el modificador -d para imprimir información de depuración durante el inicio del intérprete.
  • La versión de Windows de Agena ahora se compiló con GCC 4.5.2.
  • Archivos de esquema de idioma actualizados.
  • El manual se ha actualizado.

Qué hay de nuevo en la versión 1.4.0:

  • Cambios semánticos:
  • Las variables de control de bucle de los bucles `for / to` numéricos ahora son automáticamente locales para sus bloques circundantes en lugar de sus cuerpos de bucle (internos). Si se ha declarado y asignado una variable local con el mismo nombre que la variable de control de ciclo antes de
  • ejecutando un bucle numérico, se sobrescribe con el último valor de iteración del bucle. Como tal, el interruptor `externo` en los bucles` for` numéricos ya no es aceptado. (Con GCC, use el modificador -DCOMPAT13 para compilar una versión de Agena que aún reconozca pero ignore la palabra clave `externa`).
  • Con la constante `fail`,` not` devolvió `true`, pero con` fail` asignado a una variable, `not` devolvió false. Esto ha sido cambiado, es decir, 'a: = fail; no (a) 'ahora devuelve' verdadero '.
  • `stats.median` ahora devuelve` fail` en lugar de 0 si la estructura dada está vacía.
  • `utils.readcsv`: si se pasa un espacio en blanco con la opción` delim` y si no se ha dado la opción `ignorespaces`, los espacios en blanco ya no se eliminan automáticamente antes de dividir cada línea del archivo en sus palabras.
  • La función también tiene dos nuevas opciones: `header` que marca la primera línea en un archivo, y` output` que permite almacenar el contenido del archivo en un diccionario con sus nombres de campo definidos por el encabezado del archivo.
  • La notación de subcadena `$` ya no es compatible. (Con GCC, use el modificador-DCOMPAT13 para compilar una versión de Agena que todavía admita el operador `$`.)
  • Extensiones:
  • Se han agregado infinitos ciclos do / od. Este tipo de bucle itera infinitamente y solo se puede interrumpir con las sentencias `break` o` return`. Son azúcar sintáctico para `while true do ... od` loops.
  • Con tablas, `stats.minmax` antiguamente solo funcionaba con arreglos. Esto ha sido cambiado, es decir, los valores con las correspondientes claves no positivas (por ejemplo, cadenas, enteros no positivos, flotantes negativos y positivos, etc.) ahora se reconocen correctamente en la evaluación.
  • `stats.mean`,` stats.qmean`, `stats.sd`, y` stats.var` ahora también procesan secuencias.
  • La nueva función `stats.mode` devuelve todos los valores en una secuencia o tabla con el mayor número de ocurrencias, es decir, la frecuencia más alta.
  • La nueva función `stats.quartiles` devuelve el primer, segundo y tercer cuartil de una tabla o secuencia _sorted_.
  • Las características previamente no documentadas de `linalg.matrix` se han agregado al manual y se ha mejorado su manejo de errores.
  • Manejo de error mejorado de `linalg.hilbert`.
  • `gdi.setinfo` ahora acepta la opción` square`. Si `square = false`, los ejes xey no tendrán la misma escala en los gráficos creados con` gdi.plot`.
  • Desafortunadamente, la función `gdi.plot` para dibujar gráficos no se ha documentado. Esto ha sido cambiado.
  • `gdi.plot` acepta dos nuevas opciones: la opción 'x' especifica el rango horizontal sobre el que se muestra un gráfico, y la opción 'y' especifica el rango vertical.
  • Si se pasa una estructura PLOT a `gdi.plot` que contiene solo PUNTOS, LÍNEAS, RECTÁNGULOS, TRIÁNGULOS, CÍRCULOS y ELLIPSE (incluidas sus * variantes RELLENADAS), entonces` gdi.plot` automáticamente determina las escalas (` gdi.setinfo` no necesariamente necesita ser llamado).
  • Las características de OOP heredadas de Lua ahora están documentadas en el Apéndice A9. El autor no recomienda la programación orientada a objetos.
  • Sintonización:
  • Operador tuned `filled` en alrededor del 3%.
  • Pellizcó `in`,` join`, `sadd`,` qsadd`, `replace`,` copy`, `unique`, y Cantor estableció operadores en tablas y establece un bit.
  • Con tablas, los operadores `top` y` bottom` ahora son alrededor de 5% más rápidos.
  • El operador `size` es al menos un 8% más rápido si una tabla no incluye valores nulos.
  • `linalg.mzip`,` linalg.mmul`, y `linalg.transpose` han sido ajustados en un 3% cada uno.
  • Los bucles numéricos para / a con pasos fraccionarios se han optimizado reduciendo a la mitad el número de sus variables de control. Esto, sin embargo, no logró ningún aumento en la velocidad.
  • Parches:
  • Parcheó `linalg.ludecomp` para detectar matrices singulares. Además, la función ahora puede determinar automáticamente el orden de la matriz dada.
  • A diferencia del manual, `gdi.plot` no determina automáticamente los rangos horizontales y verticales. Esto ha sido arreglado.
  • `gdi.plot` ya no ignora la opción` square` establecida por `gdi.setinfo`.
  • `gdi.setinfo` agregó configuraciones a INFO incluso si ya estaban presentes. Esto ha sido cambiado.
  • Los círculos no se trazaron correctamente con `gdi.plot`. Esto ha sido cambiado.
  • La función `gdi.plot` en la mayoría de las circunstancias ignoró la coloración individual de los objetos geométricos. Esto ha sido cambiado.
  • El paquete gdi no asignaba nombres cortos para `gdi.settriangle`,` gdi.settrianglefilled`, `gdi.setrectangle`, y` gdi.setrectanglefilled`. Esto ha sido cambiado.
  • El paquete de fractales no asignó nombres cortos para funciones del tipo definido por el usuario 'esctime'. Esto ha sido cambiado. Se corrigió el mensaje de error de `fractals.draw` si los argumentos posicionales no eran números.
  • Varios:
  • La funcionalidad de `calc.fseq` se ha fusionado en` nseq`. Por compatibilidad con versiones anteriores, `calc.fseq` todavía forma parte del paquete calc, pero la función se refiere a la implementación` nseq`.
  • Agregó la variable `environ.FractScreenUpdates` al` paquete de fractales` para indicar el número de líneas verticales (un entero no negativo) después de lo cual se actualizará un fractal en una ventana. La variable `environ.FractOptimised` ha quedado en desuso.
  • Las funciones gdi auxiliares se han reagrupado.

Qué hay de nuevo en la versión 1.3.3:

  • Parches para `instr`:
  • Cuando está en modo regex, el operador devuelve un resultado incorrecto si se ha otorgado una posición de inicio.
  • Cuando estaba en modo de búsqueda simple, el operador devolvió un error fuera de rango si no se le dio una posición de inicio.
  • Excepto en el modo de búsqueda inversa, si no se ha encontrado ninguna coincidencia, se ha devuelto el primer argumento en lugar de `null`.
  • Mensaje de error corregido de la instrucción `create` con respecto a las secuencias.
  • En AgenaEdit, al generar más de una estructura con una sola llamada a `print`, las estructuras no se imprimían en su totalidad si la primera estructura presentaba un metamodo de __tostring. Esto ha sido cambiado.

Qué hay de nuevo en la versión 1.3.2:

  • Esta versión incluye correcciones de errores, extensiones y un manual mejorado:
  • `dimension` creó resultados interesantes si se aprobó una estructura como
  • inicializador. Esto ha sido cambiado: `dimension` ahora crea copias independientes del
  • estructura al inicializar la tabla.
  • La funcionalidad de `strings.rseek` se ha agregado al operador` instr`.
  • Por lo tanto, `strings.rseek` ha quedado en desuso. Para compatibilidad con versiones anteriores,
  • `strings.rseek` se ha agregado al archivo lib / compat.agn.
  • `strings.hits` ahora admite expresiones y capturas regulares. Este comportamiento
  • se puede desactivar pasando un booleano como tercer argumento.
  • `strings.isabbrev` y` strings.isending` ahora automáticamente usan una búsqueda simple
  • si no se han pasado expresiones regulares o capturas como parte del segundo
  • argumento.
  • Tweaked `strings.ismagic` y` strings.isfloat`.
  • La función `log` ahora es 13% más rápida.
  • Al generar más de una estructura con una sola llamada a `print`,
  • las estructuras no se imprimieron en su totalidad si la primera estructura mostraba un __tostring
  • metamethod. Esto ha sido cambiado.
  • Se agregaron categorizaciones de funciones al Capítulo 7 para facilitar el inicio de nuevas
  • usuarios.

Qué hay de nuevo en la versión 1.3.1:

  • Ha habido problemas con las llamadas anidadas a los siguientes operadores binarios: `xor`,` atendof`, `& amp; & amp;`, `||`, `^^`, `::` y `: - `, y por lo tanto también con la bella impresora que sale con un error al imprimir estructuras anidadas. Esto ha sido arreglado.
  • Cuatro correcciones para `os.list`: si se ha pasado la opción 'r', el directorio de trabajo actual se ha cambiado erróneamente después de la finalización de la llamada.
  • Si 'r' no se pasó como el último argumento, la función emitió un error.
  • `null` no se ha aceptado como el primer argumento para denotar el directorio de trabajo actual.
  • En Windows 7, la impresión de los contenidos del directorio raíz no funcionaba, es decir, os.list ('c:') devolvía el contenido del directorio de trabajo actual.
  • Cuando una cadena se indexó con un número no, por ej. "str [null]", Agena devolvió `null`. Ahora se genera un error.
  • Si library.agn no se ha encontrado, se ha emitido una ruta incorrecta dos veces en la advertencia. Esto ha sido cambiado.

Qué hay de nuevo en la versión 1.2:

  • El operador de subcadena se rediseñó, pero la versión anterior seguirá estando disponible hasta Agena 2.0: la nueva es: `str [de izquierda a derecha]`, la anterior ha sido: `str $ (izquierda, derecha)` . Un ejemplo: antes: `str: = 'cadena'; print (str $ (2, 3)) `- & gt; 'tr' ahora: `str: = 'cadena'; imprimir (str [2 a 3]) `- & gt; 'tr'
  • Ahora puede determinar sublistas de matrices y secuencias de tablas con la nueva sintaxis mencionada anteriormente: `s [de izquierda a derecha]`. Un ejemplo: ahora: `a: = [10, 20, 30, 40]; imprimir (a [2 a 3]) `- & gt; [20, 30] ahora: `a: = seq (10, 20, 30, 40); imprimir (a [2 a 3]) `- & gt; seq (20, 30)
  • La función `ops` ahora permite especificar los valores que se devolverán al pasar una secuencia de sus posiciones de índice como su primer argumento, p. ops (seq (1, -1), 10, 20,
  • 30).
  • La nueva función `cadenas.include` inserta una secuencia de caracteres en una cadena
  • en una posición determinada.
  • Las siguientes funciones ahora emiten un error en lugar de simplemente devolver `fail` en
  • caso de error: `os.remove`,` os.move`, `os.mkdir`,` os.rmdir`, `os.chdir`.
  • Mejoras en los siguientes operadores que trabajan en conjuntos y secuencias relacionados con la recolección de basura: declaración 'insert`, `union`,` intersection`, `minus`,` unique`, `copy`,` pop / top` y declaraciones `pop / bottom`, y establecer asignaciones.
  • Mensaje de error mejorado de `fractals.draw` si el archivo de mapa de color de FRACTINT no tiene
  • no se encontró.

Qué hay de nuevo en la versión 1.1.0:

  • Esta versión incluye nuevas funcionalidades y un espacio de nombres depurado.
  • Compatibilidad con Agena 1.0:
  • Algunas funciones se han eliminado de Agena y algunas se han convertido en funciones de paquete (ver a continuación). Si aún desea usarlos, emita readlib 'compat' en la línea de comando o coloque la declaración anterior en su archivo de inicialización si prefiere la compatibilidad con versiones anteriores de Agena 1.0.
  • Funcionalidad extendida:
  • Las instrucciones `pop / top` y` pop / bottom` y `bottom` y` top` ahora también se pueden aplicar a matrices de tablas.
  • Cuando se llama con `null` o sin argumentos,` os.chdir` ya no emite un error, pero devuelve el directorio de trabajo actual. Por lo tanto, la antigua función `os.curdir` C ha sido reemplazada por una escrita en el idioma Agena.
  • `os.list` ahora recorre recursivamente subcarpetas si se da la nueva opción 'r'.
  • El operador `join` ahora también acepta un delimitador opcional y admite la opción de especificar el primer y el último elemento de la estructura que se concatenará.
  • `instr` ahora puede buscar desde el extremo derecho de una cadena al pasar una posición negativa.
  • Si una tabla incluye otras tablas, conjuntos, secuencias o pares, `copy` ahora sabe cómo manejar estas referencias correctamente si ocurren varias veces: si una estructura incrustada se incluye n veces, entonces se realiza una copia real y Se insertan n-1 referencias a esta estructura recién creada. Antes, se han hecho n copias independientes.
  • La nueva función `isnonposint` verifica si los números dados son enteros y no positivos.
  • `io.close` ahora puede cerrar varios archivos con solo una llamada.
  • La función `with` no asignaba nombres cortos para los siguientes procedimientos del paquete` math`: `convertbase`,` fraction`, `zeroin`,` todecimal`, `lcm`,` gcd`, y ` ndigits`. Esto ha sido corregido.
  • La función `rwritemode` mencionada en el manual no existía. Ahora está disponible, pero se llama `rmode`.
  • Se han mejorado los mensajes de error de varias funciones.
  • Limpieza del espacio de nombres: Funciones renombradas o cambiadas:
  • Las funciones de la biblioteca base `register` y` loadclib` se han movido a la librería `package`.
  • Las antiguas funciones de la biblioteca base `rdelete`,` rget`, `rinit`,` roinit`, `rmode`,` rset`, `remember` y` defaults` se han movido al nuevo paquete `rtable` .
  • Cambió el nombre de la tabla _Env global por `environ`, que ahora también contiene procedimientos para acceder al entorno.
  • Las antiguas variables globales de entorno `homedir` y` infolevel` han sido renombradas a `environ.homedir` y` environ.infolevel`, respectivamente.
  • Las siguientes funciones de la biblioteca base anterior se han movido al paquete `environ`:` anames`, `attrib`,` gc`, `getfenv`,` globals`, `isselfref`,` puntero`, `setfenv` , `used`,` userinfo`, `__RESTART`,` __DOTTYPRINT`.
  • `mapm.xtoNumber` ha sido renombrado a` mapm.xtonumber`, `mapm.xtoString` ha sido renombrado a` mapm.xtostring`. Para compatibilidad con versiones anteriores, los nombres de funciones anteriores aún se pueden usar ejecutando el archivo lib / compat.agn (primero lee el paquete `mapm` y luego carga el archivo compat.agn).
  • Funciones y variables obsoletas:
  • `strings.seek` ha quedado en desuso. Su funcionalidad se ha agregado al operador `instr`. Para desactivar el modo de coincidencia de patrones de `instr`, pase el inicio de la búsqueda como el tercero y 'verdadero' como el cuarto argumento. `instr` es alrededor de un 40% más rápido en el modo de emparejamiento sin patrón que` strings.seek`. Para compatibilidad con versiones anteriores, `strings.seek` se ha agregado al archivo lib / compat.agn.
  • La función de biblioteca base `concat` ha sido eliminada. Use `join` en su lugar. Para compatibilidad con versiones anteriores, la función anterior se ha agregado al archivo lib / compat.agn.
  • Las funciones `hasrtable` y` hasrotable` han sido eliminadas. Para compatibilidad con versiones anteriores, se han agregado al archivo lib / compat.agn.
  • La función `pcall` ha quedado en desuso. Use `protect` en su lugar. Para compatibilidad con versiones anteriores, la función se ha agregado al archivo lib / compat.agn.
  • La función `maptoset` ha quedado en desuso. Para compatibilidad con versiones anteriores, la función se ha agregado al archivo lib / compat.agn.
  • La función `os.alldirs` ha quedado obsoleta. Use las opciones 'dirs' y 'r' en una llamada a `os.list` en su lugar. Para compatibilidad con versiones anteriores, la función se ha agregado al archivo lib / compat.agn.
  • `os.isMac`,` os.isSolaris`, `os.isLinux`,` os.isWin`, `os.isOS2`,` os.isDOS`, `os.isHaiku` han quedado en desuso. Utilice las nuevas variables de entorno environ.Os y environ.Cpu, que también aceleran el código. Para compatibilidad con versiones anteriores, las funciones se han agregado al archivo lib / compat.agn.
  • La variable _VERSION no documentada se ha eliminado. Para compatibilidad con versiones anteriores, su asignación se ha agregado al archivo lib / compat.agn.
  • Otros cambios:
  • La función API de C lua_rawsetstringnumber mencionada en el manual no existía. Esto ha sido cambiado.
  • Optimizaciones de código para el analizador.
  • En algunos de los paquetes, accidentalmente algunas variables han sido implícitamente declaradas globales. Esto ha sido arreglado.
  • Archivos de muestra de inicialización corregidos y actualizados.
  • AgenaEdit se ha actualizado.
  • Los archivos de esquema de idioma se han actualizado.
  • Los instaladores de Linux ahora incluyen el paquete xBase.

Qué hay de nuevo en la versión 1.0.6:

  • Se han mejorado los mensajes de error de los operadores `join`,` copy` y `filled`, de las funciones` toset`, `toseq` y` totable` de las instrucciones `insert`,` delete`, `pop`, y de `for` loops.
  • Con las secuencias, Agena colapsó en la siguiente secuencia de eventos: 1) se había ejecutado una declaración `delete`, 2) la secuencia después había estado vacía, y 3) se había insertado un nuevo elemento de nuevo. Esto ha sido arreglado. (Internamente, la instrucción `delete` ya no reduce internamente el tamaño de las secuencias).
  • Con grandes cadenas, `concat` se colgó. Esto ha sido arreglado.
  • Con cadenas de 512 bytes o más, `join` y` replace` podrían bloquearse. Esto ha sido arreglado. Los dos operadores ahora también son mucho más rápidos que nunca.
  • `math.isprime` devolvió resultados incorrectos con argumentos & gt; 2 ^ 31 (mencionado vagamente en el manual). Esto se ha solucionado ampliando el rango del argumento a enteros con valores de hasta +/- 2 ^ 63.
  • `math.nextprime` y` math.prevprime` tenían el mismo problema con argumentos más grandes como `math.isprime`. Esto también ha sido cambiado. Con el argumento 2, `io.nextprime` devolvió falsamente 5 en lugar de 3. Esto también se ha solucionado.

Qué hay de nuevo en la versión 1.0.5:

  • 'join' podría bloquear a Agena y comportarse inesperadamente si la cadena resultante
  • excedió 512 bytes. Esto ha sido cambiado.
  • Si se ha llamado a `restart` después de que se haya emitido un error en el
  • anterior
  • declaración, Agena en raras ocasiones se colgó debido a la corrupción de la pila. Esto ha sido
  • arreglado.
  • Con las tablas recién creadas que contienen exactamente un elemento en la parte hash, `attrib`
  • ahora devuelve resultados correctos para la cantidad de ranuras hash asignadas (1 en lugar de 0).
  • Mensajes de error corregidos de `qsadd` y` sadd`.
  • Se han mejorado los mensajes de error de los operadores `join`,` copy` y `filled`, y de` insert`
  • y declaraciones 'delete'.
  • Se ha mejorado el tratamiento de errores de `leer`,` guardar` y `fractals.draw`.
  • Mejoras en los makefiles.
  • Los tamaños de búfer ahora se han estandarizado en las fuentes.

Qué hay de nuevo en la versión 1.0.4:

  • Debido a que se han notificado caídas raras durante la inicialización (en Windows XP SP 3 y OpenSolaris 134, en algunas circunstancias), la recolección de basura ahora está desactivada en la fase de inicialización. Estas raras fallas de segmentación se produjeron en OpenSolaris cuando se ejecutaba el binario Agena en su directorio protegido como raíz, y en XP cuando se hacía clic en el icono del escritorio Agena con derechos de administrador local.
  • Introdujo el parámetro -d en las opciones de la línea de comando para imprimir información durante la inicialización de Agena.
  • Introdujo el manejo correcto de errores si la memoria no se pudo asignar internamente a: `trim`,` upper`, `lower`,` os.curdir`, y `strings.rseek`.
  • Se eliminaron posibles pérdidas de memoria en las funciones de inicialización C agenaL_initialise y agenaL_setLibname, y en `io.write *` y `print`.

Qué hay de nuevo en la versión 1.0.3:

  • La nueva función `protect` llama a un procedimiento en modo protegido y detecta cualquier error posible para que el cálculo no se interrumpa. En caso de error, establece la cadena de error en la variable global `lasterror`. Está relacionado con `pcall`, pero no devuelve el código de estado como primer resultado.
  • `attrib` ahora devuelve resultados correctos con estructuras vacías. Con las estructuras vacías, la función contaba erróneamente un elemento hash asignado antes.
  • `attrib` ahora devuelve el número de bytes ocupados por tablas, conjuntos y secuencias junto con la nueva clave 'bytes'. El número de bytes devueltos se basa en información a veces contradictoria disponible en la red.
  • `replace` estrelló Agena si la cadena resultante excedió 512 bytes. Esto ha sido cambiado.
  • `assume` ahora devuelve 'Assumption failed'. en lugar de 'suposición falló'.
  • La nueva función de API de C lua_setglobal2 establece el valor en la parte superior de la pila en un nombre global. Contrariamente a lua_setglobal, el valor no aparece.
  • Código de limpieza de lobject.h (estructura de tabla) y lapi.c (macro actnodesize). Corrección de errores a la función de API C agn_deletertable en caso de que Agena se compile con lua_assert no válido. Cambie al valor de retorno de la función savestate que se usa durante la inicialización para evitar la (leve) posibilidad de corrupción de la pila.

Qué hay de nuevo en la versión 1.0.2:

  • El nuevo procedimiento `os.setenv` establece variables de entorno en el nivel del sistema operativo. La función ha sido escrita originalmente por Mark Edgar.
  • En Windows, `os.getenv` ahora llama a una función API nativa de Windows para obtener los valores de las variables de entorno. El código de Windows ha sido escrito por Mark Edgar.
  • La nueva función `os.environ` devuelve todas las variables de entorno asignadas en una tabla. La función ha sido escrita originalmente por Mark Edgar.
  • `io.open` ahora agrega el puntero ARCHIVO, el nombre y el modo de un archivo abierto correctamente en la nueva tabla` io.openfiles`. `io.close` borra la entrada de` io.openfiles` si el archivo se puede cerrar con éxito.
  • Cuando se llama sin argumentos, `io.read` ahora devuelve un error si se llama sin argumentos en AgenaEdit (en un intento de leer el teclado).
  • Si se llaman `io.anykey` y` io.getkey` en AgenaEdit, se muestra un mensaje de error adecuado.
  • Se modificó uno de los subprocedimientos de inicialización para evitar posibles daños en la pila (aunque nunca se produjeron problemas).
  • os.isMac ('ppc') ahora funciona en máquinas PowerPC.
  • Los capítulos 4 y 6 del Manual y la Referencia han sido revisados ​​y ampliados. Se ha agregado un índice y se han hecho muchos cosméticos también.
  • almacenó la información correcta de la versión en el ejecutable de Windows.

Qué hay de nuevo en la versión 1.0:

  • Estimados señoras y señores,
  • después de casi cuatro años de desarrollo, publiqué Agena 1.0, un lenguaje de programación procedural, derivado de fuentes de Lua C.
  • Mi comunidad en realidad es muy, muy pequeña, pero algunos usuarios me dijeron que estaba bien, era útil y estable.
  • Me sentiría muy feliz si revisara Agena y me informara sobre sus resultados. Si no lo encuentras útil, dímelo personalmente y dame la oportunidad de solucionar los problemas.

Qué hay de nuevo en la versión 0.34.1d:

  • Esta versión incluye una versión actualizada de GUI de AgenaEdit (vea el archivo ejecutable agenaedit).

Qué hay de nuevo en la versión 0.34.1:

  • AgenaEdit con resaltado de sintaxis y motor de tiempo de ejecución incorporado se ha lanzado con Agena 0.34.1.

Qué hay de nuevo en la versión 0.34.0:

  • AgenaEdit con resaltado de sintaxis y motor de tiempo de ejecución incorporado se ha lanzado con Agena 0.34.0.

Qué hay de nuevo en la versión 0.33.2:

  • Agena 0.33.2 con el soporte de archivos xBase ha sido lanzado.

Qué hay de nuevo en la versión 0.33.1:

  • Agena 0.33.1 con el soporte de archivos xBase ha sido lanzado.

Qué hay de nuevo en la versión 0.33.0:

  • El nuevo paquete `xbase` puede leer y escribir archivos xBase compatibles con el estándar dBASE III.
  • Los paquetes `binio` y` ads` ahora pueden manejar archivos de hasta 2 ^ 63 bytes. Antes solo podían manejar archivos con tamaños de hasta 2 ^ 31 bytes.
  • Las nuevas funciones `io.lock`,` io.unlock`, `binio.lock`,` binio.unlock`, `ads.lock` y` ads.unlock` bloquean un archivo desde el acceso de lectura y escritura por otro Agena
  • funciones o incluso otras aplicaciones siempre que estas últimas utilicen un protocolo de bloqueo.
  • La función `leer` de baselib ya no se puede sobrescribir con `with`.
  • El nuevo `package.checkClib` verifica si un paquete almacenado en una biblioteca dinámica de C se ha inicializado. De lo contrario, devuelve una advertencia impresa en la pantalla y crea una tabla de paquete vacía. De lo contrario, no hace nada.
  • El puerto de Haiku ahora admite bibliotecas de enlaces dinámicos.

Qué hay de nuevo en la versión 0.32.3:

  • Agena 0.32.3 con funciones de Cálculo nuevas y sintonizadas ha sido lanzado.
  • Los usuarios de Mac ya no necesitan instalar bibliotecas de dependencia adicionales.
  • Un puerto de Haiku ya está disponible.

Qué hay de nuevo en la versión 0.31.5:

  • Esta versión contiene gráficos incorporados, matemática de precisión arbitraria y características mejoradas.

Qué hay de nuevo en la versión 0.31.3:

  • Agregó el paquete de fractales para dibujar fácilmente fractales en Solaris, Mac, Linux y Windows.
  • En Solaris y Linux, `gdi.mouse` ahora devuelve valores estándar para los botones del mouse presionados (lo mismo que las ediciones de Mac y Windows).
  • Cuando se le da la opción -v, Agena ahora no ejecuta los archivos de inicialización por más tiempo.
  • En UNIX o Mac, los nombres de archivo de los archivos de inicialización siempre deben ser `.agenainit`, ya sea en / usr / agena / lib o en la carpeta personal.
  • La distribución binaria de Mac para las CPU de Intel se ejecuta alrededor de un 30% más rápido que las versiones anteriores.
  • La función `io.getkey` ya está disponible en la edición Mac OS X.
  • En Mac, `os.system` ahora devuelve información completa sobre el sistema operativo y el tipo de CPU. Tenga en cuenta que devuelve información sobre el kernel de Darwin, y que la primera entrada en la tabla resultante ahora es `Darwin` en lugar de` MacOSX`.
  • `os.memstate`,` os.freemem` y `os.beep` ahora son compatibles con Mac OS X.
  • `io.anykey` está disponible en todas las plataformas, pero devuelve` fail` en DOS y Mac. Por lo tanto, `gdi.draw` ya no arrojará errores en Mac cuando use la opción` mouse`.
  • `os.listcore` se ha extendido para devolver solo archivos, directorios o nombres de enlaces. ''. y '..' ahora nunca se devuelven.
  • `os.list` no reconoció ninguna opción y devolvió una lista vacía en su lugar. Esto ha sido arreglado. Además, las opciones ahora se pueden combinar. ''. y '..' ya que el primer argumento ahora se reconoce correctamente.
  • `os.curdir` ahora reemplaza automáticamente las barras invertidas en la ruta determinada con barras inclinadas.
  • `os.fstat` y` ads.attrib` colapsaron Agena si la fecha de un archivo excedió el martes, 19 de enero de 2038. Esto se ha solucionado al devolver una tabla vacía para la clave de fecha (os.fstat), o 0/0/01 00:00:00, (ads.attrib).
  • `utils.calendar` estrelló Agena si su argumento era vacío, negativo o demasiado grande. Esto ha sido cambiado. Además, si la fecha es posterior al martes 19 de enero de 2038, se devuelve la fecha correcta.
  • Las nuevas funciones `os.screensize` y` os.mousebuttons` devuelven la resolución de pantalla actual y el número de botones del mouse adjunto, respectivamente (solo Windows).
  • El archivo agena.ini.sample ha cambiado de nombre a .agenainit.sample en las distribuciones de UNIX / Mac.
  • Ahora se está enviando un nuevo archivo MAKE para Solaris con el enlace MAPM Agena para compilar completamente las fuentes MAPM originales escritas por Michael C. Ring.

Qué hay de nuevo en la versión 0.31.2:

  • El paquete mapm para la precisión matemática arbitray ahora también está disponible en la edición DOS de Agena.
  • El número de dígitos utilizados por el paquete mapm se inicializa a 17 dígitos en la puesta en marcha de Agena para DOS o OS / 2 Warp. Antes, el valor predeterminado era 1 dígito.
  • El código C para el enlace de MAPM se ha estandarizado. Antes, los archivos fuente de DOS y OS / 2 diferían de los de UNIX y Windows.
  • Pequeñas mejoras para los instaladores de Windows y Mac OS X.
  • En Mac, la documentación ahora está disponible en Library / Documentation / Agena en lugar de / Users / Share / Agena.
  • Las funciones sin, cos, arcsin, arccos y arctan devolvieron -0 en lugar de 0 como la unidad imaginaria, lo que condujo a resultados incorrectos si el retorno de estas funciones se hubiera aplicado a otras funciones como ln (es decir, el signo de la unidad imaginaria del resultado de estas otras funciones era incorrecta). Esto se ha solucionado estableciendo la unidad imaginaria -0 a 0 en el retorno de sin, cos, arcsin, arccos y arctan.
  • Las funciones arcsin y arccos arrojaron resultados incorrectos para los argumentos z, si abs (real ((z))) & lt; 1. Esto ha sido arreglado.
  • En OS / 2, la mayoría de las funciones aritméticas complejas no son definidas. Esto ha sido arreglado.
  • Tenga en cuenta que en OS / 2 y DOS, en el dominio complejo todavía hay problemas con los operadores arccos y arcsin que devuelven indefinido en ciertas situaciones.
  • Las versiones de Windows, i386 Solaris 10 y Linux ahora se han compilado con GCC 4.4.x (y sin xmath86.h), lo que redujo significativamente el número de errores en aritmética compleja. De hecho, los complejos casos de prueba de matemáticas devuelven cero errores. La versión de Sparc se ha compilado con GCC 4.3.3 para Sun Sparc y tiene menos errores en la aritmética de números complejos que la versión 0.31.1.
  • Se cambió el nombre de los siguientes archivos de inclusión: config.h - & gt; agncfg.h, chelpers.h - & gt; agnhlps.h, agnxlib.h - & gt; agnxlib.h.
  • En Mac, gdi.mouse ahora devuelve valores estándar para los botones del mouse presionados.

Qué hay de nuevo en la versión 0.31.1:

  • Agena 0.31 incluye todas las herramientas básicas para trazar puntos, líneas, círculos, elipses, rectángulos, arcos. etc., para controlar el tamaño de la imagen y los colores.

Qué hay de nuevo en la versión 0.31.0:

  • Se ha lanzado una versión de coherencia de idioma con una corrección de errores. Consulte el registro de cambios de lo que ha cambiado.

Qué hay de nuevo en la versión 0.30.4:

  • Agena ahora presenta gráficos incorporados. Esto le permitirá trazar gráficos, imágenes, etc. en ventanas X11 o Win32 o archivos GIF, PNG, JPEG, FIG o PostScript, tanto en Solaris, Linux y Windows. Agena se une a la biblioteca gráfica g2 escrita por Ljubomir Milanovic y Horst Wagner para proporcionar estas nuevas capacidades.
  • Agena 0.30 incluye todas las herramientas básicas para trazar puntos, líneas, círculos, elipses, rectángulos y arcos. etc., para controlar el tamaño de la imagen y los colores.
  • & gt; con 'gdi';
  • paquete gdi v0.1.4 al 20 de diciembre de 2009
  • arco, arcfilled, fondo, círculo, circlefilled, paleta clara, cerrar, dash, elipse, ellipsefilled, flush, fontsize, initpalette, tinta, lastaccessed, línea, newline, newpoint, abrir, trama, plotfn, punto, rectángulo, rectanglefilled , reset, resetpalette, setinfo, setoptions, structure, text, thickness, triangle, trianglefilled, useink
  • La función plotfn dibuja uno o más gráficos de funciones en un real, opcionalmente junto con los ejes trazados en un color definido por el usuario. El rango para el eje y también se puede dar, de lo contrario, Agena determina la mejor configuración. Hay varias otras opciones que se pueden configurar con la función de las setopciones y que se aplicarán a todos los gráficos producidos en una sesión: la resolución de la ventana, el mapa de color, el grosor de la línea y el color de fondo. Por supuesto, el usuario puede anular algunas o todas las opciones para un diagrama específico. Las singularidades se tratan adecuadamente.

Qué hay de nuevo en la versión 0.30.3:

  • Agena 0.30.3 con gráficos incorporados, matemática de precisión arbitraria y funciones mejoradas.

Qué hay de nuevo en la versión 0.30.2:

  • Agena ahora presenta gráficos incorporados. Esto le permitirá trazar gráficos, imágenes, etc. en ventanas X11 o Win32 o archivos GIF, PNG, JPEG, FIG o PostScript, tanto en Solaris, Linux y Windows. Agena se une a la biblioteca gráfica g2 escrita por Ljubomir Milanovic y Horst Wagner para proporcionar estas nuevas capacidades.
  • Agena 0.30 incluye todas las herramientas básicas para trazar puntos, líneas, círculos, elipses, rectángulos y arcos. etc., para controlar el tamaño de la imagen y los colores.
  • & gt; con 'gdi';
  • paquete gdi v0.1.4 al 20 de diciembre de 2009
  • arco, arcfilled, fondo, círculo, circlefilled, paleta clara, cerrar, dash, elipse, ellipsefilled, flush, fontsize, initpalette, tinta, lastaccessed, línea, newline, newpoint, abrir, trama, plotfn, punto, rectángulo, rectanglefilled , reset, resetpalette, setinfo, setoptions, structure, text, thickness, triangle, trianglefilled, useink
  • La función plotfn dibuja uno o más gráficos de funciones en un real, opcionalmente junto con los ejes trazados en un color definido por el usuario. El rango para el eje y también se puede dar, de lo contrario, Agena determina la mejor configuración. Hay varias otras opciones que se pueden configurar con la función de las setopciones y que se aplicarán a todos los gráficos producidos en una sesión: la resolución de la ventana, el mapa de color, el grosor de la línea y el color de fondo. Por supuesto, el usuario puede anular algunas o todas las opciones para un diagrama específico. Las singularidades se tratan adecuadamente.

Qué hay de nuevo en la versión 0.29.0:

  • Agena ahora presenta gráficos incorporados. Esto le permitirá trazar gráficos, imágenes, etc. en una ventana o en un archivo GIF, PNG, JPEG, FIG o PostScript en Solaris, Linux y Windows, incluyendo un enlace a la biblioteca gráfica g2 escrita por Ljubomir Milanovic y Horst Wagner.
  • Agena 0.29.0 presenta todas las herramientas básicas para trazar puntos, líneas, círculos, elipses, rectángulos, arcos. etc., para administrar el color y para crear archivos de imagen o abrir ventanas X11 o Win32.
  • En una de las próximas actualizaciones, una interfaz de usuario de alto nivel con las funciones gdi.plotfn y gdi.plot le permite trazar funciones univariadas y conjuntos de puntos sobre la marcha. Las dos funciones ya están incluidas en Agena 0.29.0, pero siguen siendo beta. Aquí hay una vista previa:
  • & gt; con 'gdi';
  • paquete gdi v0.1.0 desde el 24 de noviembre de 2009
  • arco, fondo, círculo, paleta clara, cerrar, guión, elipse, rellenoArc, filledCircle, filledEllipse, filledRectangle,
  • filledTriangle, flush, fontsize, initpalette, ink, lastaccessed, line, open, plot, plotfn, point, rectangle, reset,
  • resetpalette, setinfo, setoptions, structure, text, thickness, triangle, useink
  • La función plotfn dibuja el gráfico de una función en un real, opcionalmente junto con los ejes trazados en un color definido por el usuario. El rango para el eje y también se puede dar, de lo contrario, Agena intenta determinar la mejor configuración. Hay varias otras opciones que se pueden configurar con la función de las setopciones y que se aplicarán a todos los gráficos producidos en una sesión: la resolución de la ventana, el mapa de color, el grosor de la línea y el color de fondo. Por supuesto, el usuario puede anular algunas o todas las opciones para un diagrama específico. Las singularidades se tratan adecuadamente.
  • plotfn (sin (x) * x & gt; & gt ;, -5, 5, color ~ 'azul', color del eje ~ 'gris', res ~ 640: 480);

Qué hay de nuevo en la versión 0.27.2:

  • La nueva función baselib toSet convierte una cadena en un conjunto de sus caracteres, y una tabla o secuencia en un conjunto.
  • io.readlines ha sido parcheado para procesar líneas con más de 2048 caracteres. La función ahora también emite un error si falla la asignación de la memoria interna. El tamaño del búfer interno se ha reducido de 2048 bytes a 512 bytes. Puede cambiar esto asignando otro valor a AGN_IOREADLINES_MAXLINESIZE en el archivo agnconf.h.
  • io.readlines ahora también acepta manejadores de archivos. Al utilizar identificadores de archivo, a diferencia de los nombres de archivo, tenga en cuenta que debe cerrar el archivo manualmente después de usar io.readlines.
  • io.readlines ya no devuelve una tabla vacía si el archivo no existe. En cambio, emite un error.
  • toSeq ahora devuelve un error en lugar de error si no recibe una cadena, conjunto o tabla.
  • La función baselib utilizada se ha extendido y puede devolver el uso de memoria en bytes, kbytes y gbytes. Es una función C ahora.
  • La función gcinfo no documentada se ha eliminado. Su funcionalidad ha sido tomada por usado.
  • La nueva función API de C agn_usedbytes devuelve la cantidad de bytes utilizados por el sistema.
  • Corregido el mensaje de error incorrecto de toTable.
  • se renombró la función C AOI `agn_isioforcerror` a` agn_isioforceerror`.

Qué hay de nuevo en la versión 0.27.0:

  • Se agregó la función de error math.erf y la función de error complementario math.erfc.
  • Agregó la función Bessel del primer tipo math.besselj, y la función Bessel del segundo tipo math.bessely. La orden viene dada por el primer argumento, el argumento como el segundo argumento.
  • Si la nueva variable de entorno _EnvIoForceError se establece en un valor no nulo (valor predeterminado), io.open, io.readlines y las diversas funciones de binio se cierran con un error en lugar de simplemente regresar normalmente.
  • binio.readbytes y binio.readchar devolvieron una secuencia vacía en lugar de fallar en caso de que el archivo que se va a leer no existiera. Esto se ha cambiado: falla o ahora se devuelve un error.
  • arcsin y arccos son ahora operadores y, por lo tanto, un 40% más rápidos.
  • Se agregó el operador xor que realiza un O booleano exclusivo en valores que evalúan o son verdaderos, falsos, fallan y nulos.
  • Se agregó el operador de atendof que verifica si una palabra termina en una frase determinada y devuelve su posición como un número. El operador devuelve nulo si las cadenas tienen la misma longitud, al menos una de ellas es la cadena vacía, o la palabra no termina en el patrón dado.
  • hasrtable ahora solo devuelve verdadero, si tiene una tabla de recordar lectura-escritura (actualizada mediante la declaración de devolución).
  • La nueva función hasrotable determina si una función tiene una tabla de recuerdo de solo lectura (que no puede ser actualizada por la declaración de retorno) y devuelve verdadero o falso.
  • Los nuevos operadores gethigh y getlow recuperan los bytes superior e inferior de un número (es decir, C doble).
  • Los nuevos operadores sethigh y setlow establecen los bytes más altos y los inferiores en un número (es decir, C doble).
  • Los nuevos operadores banda, bor, bxor y bnot no realizan operaciones bit a bit y / o exclusivas y complementarias en los números.
  • La nueva función `kernel` configura los ajustes del kernel Agena. Actualmente puede cambiar la forma en que los operadores bit a bit trabajan internamente (uso de enteros con signo o sin signo) y cómo se imprimen los números.
  • Con números reales x, math.argument ahora devuelve Pi en lugar de 0 si x & lt; 0.
  • Debido a un error en las funciones subyacentes de la biblioteca ANSI C, arcsin y arccos produjeron resultados incorrectos con números complejos si su parte imaginaria era cero en los sistemas UNIX. Esto ha sido arreglado.
  • math.isPrime informó falso con el número 2. Esto ha sido corregido.
  • A diferencia del manual, los abdominales arrojaron 2 con falla. Ahora devuelve -1 como está documentado.
  • El paquete de bits se ha eliminado.
  • Agregó la nueva función API de C agn_isioforcerror que comprueba si _EnvIoForceError se ha establecido en un valor no nulo.
  • La nueva función C API agn_setbitwise determina si los operadores band, bor, bnot, bxor y shift calculan internamente con enteros con signo o sin signo.
  • La nueva función API de C agn_getbitwise devuelve el modo establecido por agn_setbitwise.
  • La nueva función C API agn_setdigits establece el número de dígitos utilizados para imprimir números.
  • La nueva función API de C agn_getdigits determina la cantidad de dígitos utilizados para imprimir números.
  • Interno: eliminó la entrada "REPL" en desuso de luaP_opnames.
  • El instalador de Windows se ha mejorado al comprobar ahora una versión de Agena previamente instalada, al evitar que el instalador se inicie si ya se está ejecutando otra instancia de este y con algunas otras pequeñas mejoras.

Requisitos :

  • Ncurses
  • GNU Readline

Programas parecidos

pyLisp-NG
pyLisp-NG

3 Jun 15

Python
Python

22 Jun 18

byacc
byacc

3 Jun 15

Comentarios a la Agena

Comentarios que no se encuentran
Añadir comentario
A su vez en las imágenes!