Agena

Software screenshot:
Agena
Dettagli del software:
Versione: 2.11.5 Aggiornato
Data di caricamento: 22 Jun 18
Sviluppatore: Alexander Walz
Licenza: Libero
Popolarità: 23

Rating: nan/5 (Total Votes: 0)

Agena è un linguaggio di programmazione procedurale open source, gratuito, multipiattaforma e facile da apprendere progettato per l'uso quotidiano. Può essere utilizzato in ambienti grafici, scientifici, linguistici ed educativi, nonché in applicazioni di scripting, supportando tutti i sistemi operativi tradizionali.


Offre numerose strutture per il controllo del flusso

L'applicazione offre numerose funzioni di controllo del flusso, come se, quindi. elif, altrimenti condizioni, caso di e altre condizioni, è operatore, numerico per, da, a, e per cicli, cicli numerici combinati per e while, per e in loop, while e do / as loops, una istruzione skip, una pausa dichiarazione, così come la convalida del tipo di dati.


Fornisce assegnazioni di enumerazione

Tra le altre caratteristiche, possiamo menzionare una libreria matematica di precisione arbitraria, una facile configurazione del tuo ambiente personale, un sistema di pacchetti facile da usare, assegnazioni di enumerazione, controllo dell'ambito tramite le parole chiave epocs / scope e molte altre interessanti funzionalità.

Sotto il cofano e la disponibilità

Un rapido sguardo sotto la cappa ci mostrerà che il progetto è scritto nei linguaggi di programmazione C, BASIC, Lua e ALGOL 68, il che significa che la sua sintassi assomiglia alla sintassi di questi progetti. Funziona interamente in un ambiente console / terminale, il che significa che non ha interfaccia grafica (GUI).


Spedisce con un semplice editor

Nonostante il software Agena sia un'applicazione da riga di comando, viene fornito con un semplice software grafico di editor, chiamato AgenaEdit, che presenta un ambiente Agena integrato e funzionalità di evidenziazione della sintassi. È fortemente ispirato da un editor simile sviluppato da Bill Spitzak per il toolkit C ++ GUI multipiattaforma FLTK.


Funziona su Raspberry Pi

Le funzionalità grafiche di Agena sono supportate nei sistemi operativi GNU / Linux, Solaris, Mac OS X, Microsoft Windows, eComStation - OS / 2 e DOS. Può essere facilmente implementato su piattaforme hardware sia a 64 bit che a 32 bit ed è stato testato con successo sulla scheda computer Raspberry Pi basata su ARM.

Novità in questa versione:

  • nuova funzione Calcolo e statistiche

Novità della versione nella versione:

  • nuova funzione Calcolo e statistiche

Novità nella versione 2.9.4:

  • nuova funzione Calcolo e statistiche

Novità nella versione 2.8.5:

  • nuova funzione Calcolo e statistiche

Novità nella versione 2.8.2:

  • nuova funzione Calcolo e statistiche

Cosa c'è di nuovo nella versione 2.6.1:

  • `stats.chauvenet` ora può controllare specificamente per valori anomali inferiori o superiori passando rispettivamente l'opzione `outlier = 'lower'` o` outlier =' upper'`.
  • `bags.remove` ha causato errori di segmentazione. Questo è stato risolto. Inoltre, tutte le funzioni `bags` implementate in C sono state modificate internamente.
  • I metametodi (non documentati) per `+`, `-` e` * `non hanno funzionato se il pacchetto` bags` non è stato richiamato con la funzione `with` o` import / alias`. Questo è stato corretto.

Novità nella versione 2.5.4:

  • `stats.chauvenet` ora può controllare specificamente per valori anomali inferiori o superiori passando rispettivamente l'opzione` outlier = 'lower'` o `outlier =' upper'`.
  • `bags.remove` ha causato errori di segmentazione. Questo è stato risolto. Inoltre, tutte le funzioni `bags` implementate in C sono state modificate internamente.
  • I metametodi (non documentati) per `+`, `-` e` * `non hanno funzionato se il pacchetto` bags` non è stato richiamato con la funzione `with` o` import / alias`. Questo è stato corretto.

Cosa c'è di nuovo nella versione 2.5.3:

  • `stats.chauvenet` ora può controllare specificamente per valori anomali inferiori o superiori passando rispettivamente l'opzione `outlier = 'lower'` o` outlier =' upper'`.
  • `bags.remove` ha causato errori di segmentazione. Questo è stato risolto. Inoltre, tutte le funzioni `bags` implementate in C sono state modificate internamente.
  • I metametodi (non documentati) per `+`, `-` e` * `non hanno funzionato se il pacchetto` bags` non è stato richiamato con la funzione `with` o` import / alias`. Questo è stato corretto.

Novità della versione nella versione 2.4.2:

  • `stats.chauvenet` ora può controllare specificamente per valori anomali inferiori o superiori passando rispettivamente l'opzione` outlier = 'lower'` o `outlier =' upper'`.
  • `bags.remove` ha causato errori di segmentazione. Questo è stato risolto. Inoltre, tutte le funzioni `bags` implementate in C sono state modificate internamente.
  • I metametodi (non documentati) per `+`, `-` e` * `non hanno funzionato se il pacchetto` bags` non è stato richiamato con la funzione `with` o` import / alias`. Questo è stato corretto.

Cosa c'è di nuovo nella versione 2.3.0 RC1:

  • I cicli numerici `for` ora supportano la parola chiave` downto 'in modo che sia possibile eseguire il conto alla rovescia senza utilizzare una dimensione del passo `by` obbligatoria. Nel contesto "downto", la dimensione del passo "by" dovrebbe essere sempre positiva. `da 'start e` a' i valori di stop sono obbligatori quando si utilizza la parola chiave `downto '.
  • I metamethod '__finite', '__entier' e '__sqrt' non sono più supportati. Invece, sono stati aggiunti tre nuovi metadodi per le operazioni sulle strutture: "__union" per le operazioni sindacali, "__intersect" per determinare le intersezioni e "__minus" per le differenze. Pertanto, il pacchetto `bags` ora supporta anche queste tre operazioni.
  • L'operatore `` integer division non supportava il suo metamethod e usava invece quello per float divison (`/` operator). Questo è stato corretto.
  • La nuova funzione `stats.gini` determina il coefficiente di Gini, una misura di (in) uguaglianza.
  • La nuova funzione `stats.zscore` restituisce una funzione che calcola il punteggio z (punteggio standard) di un campione - il numero di deviazioni standard il campione è sopra o sotto la media di una distribuzione.
  • `stats.sorted` ora usa di default l'algoritmo di Introsort invece di Quicksort. Questo può accelerare il tempo di calcolo tre volte in situazioni mal condizionate (dove Quicksort avrebbe bisogno di operazioni O (n ^ 2)), senza sacrificare le prestazioni in situazioni normali. In realtà, Introsort utilizza Quicksort per impostazione predefinita e passa automaticamente a Heapsort se la profondità della ricorsione raggiunge 2 * log (n, 2), dove n è il numero di elementi in una struttura.
  • È possibile sovrascrivere questa logica passando la nuova opzione 'quicksort' che utilizza esclusivamente il tradizionale metodo ricorsivo Quicksort per ordinare i numeri. Inoltre, `stats.sorted` ora può anche usare l'algoritmo Heapsort esclusivamente se viene passata la nuova opzione 'heapsort' e un algoritmo Quicksort non ricorsivo ideato da Niklaus Wirth con la nuova opzione 'nrquicksort'.
  • La nuova funzione `stats.meanmed` restituisce sia la media aritmetica che la mediana di una distribuzione, o alternativamente il quoziente della media e della mediana, velocizzando i tempi di calcolo quando questi valori sono necessari di circa il 20 percento.
  • Migliorato il messaggio di errore dell'operatore `size`.

Novità della versione 2.1.1:

  • Nuove funzioni e patch:
  • `try / catch`: specifica esplicita di una variabile di errore subito dopo che il token` catch` è ora opzionale. Se non viene fornita alcuna variabile di errore, il messaggio di errore viene automaticamente memorizzato nella variabile locale `lasterror` e la parola chiave` then` deve essere esclusa:
  • & gt; provare
  • & gt; errore ('oops!')
  • & gt; cattura
  • & gt; stampa (UltimoErrore)
  • & gt; YRT;
  • oops!
  • L'istruzione `try / catch` a volte non ha funzionato nelle procedure (variabile di errore non assegnata). Questo è stato corretto.
  • La nuova funzione `net.wget` scarica pagine HTML dal Web.
  • Tuned `skycrane.counter` del 10%. La funzione ora applica opzionalmente il Kahan-Ozawa invece dell'algoritmo di sommatoria Kahan originale se il nuovo terzo argomento è la stringa 'ozawa'. Le sorgenti C corrispondenti sono state modificate per impedire l'ottimizzazione del compilatore, che potrebbe annullare anche le ottimizzazioni.
  • `argerror` ora stampa il nome del tipo definito dall'utente di un valore ricevuto nel suo messaggio di errore. Se un valore non ha un tipo definito dall'utente, viene emesso il suo tipo di base.
  • La nuova opzione 'a' di `debug.getinfo` restituisce il numero di argomenti previsti da una procedura, grazie a LuaPowerPatch di Rob Hoelz.
  • Messaggio di errore "indice out-of-range" migliorato per le stringhe.
  • Modificati i file `stats.agn`,` linalg.agn`, `library.agn` e` ansi.agn` rispetto alla gestione degli errori.

Novità della versione 2.1.0:

  • Per un nuovo tipo di gestione degli errori, è stata introdotta la nuova istruzione `try / catch`. È stato inventato e scritto da Hu Qiwei per Lua 5.1 nel 2008.
  • In generale, qualsiasi affermazione in cui un'eccezione potrebbe essere prevista può essere inserita in una clausola `try`. Se viene emesso un errore, generato da una chiamata esplicita alla funzione `error` oa qualsiasi altra espressione, funzione o istruzione, il controllo salta immediatamente alla clausola` catch` corrispondente se presente o alla fine del `try / yrt `dichiarazione se non è stata data alcuna clausola` catch`, ignorando qualsiasi altra istruzione successiva nella clausola `try`.
  • Le funzioni di gestione degli errori `protect / lasterror` sono ancora e saranno sempre supportate. La nuova istruzione di controllo funziona anche con le dichiarazioni `break`,` skip`, `redo` e` return` in modo impeccabile.
  • La nuova istruzione `redo` riavvia l'iterazione corrente di un ciclo` for / to` e `for / in` dall'inizio.
  • Il nuovo operatore `recip` restituisce l'inverso di un numero x. È equivalente all'espressione 1 / x, ma più veloce.
  • La nuova funzione `stats.ema` calcola la media mobile esponenziale di una distribuzione. La nuova funzione `stats.gema` restituisce una funzione iteratrice che restituisce la rispettiva media mobile esponenziale di una distribuzione.
  • `*%`, `+%`, e `-%` restituito `undefined` invece di un risultato corretto se il loro operando destro era zero. Questo è stato corretto.
  • Corretto un messaggio di errore in `net.survey`.
  • Messaggi di errore migliorati per l'indicizzazione fuori range di coppie e stringhe.
  • Nelle versioni ANSI, Solaris e DOS, l'operatore `int` è stato ottimizzato.
  • La nuova funzione API C `agn_arraytoseq` converte un array numerico in una sequenza e spinge questa nuova sequenza in cima allo stack.
  • Aggiornato il manuale.

Novità in nella versione 2.1.0 RC:

  • La nuova istruzione `redo` riavvia l'iterazione corrente di un ciclo` for / to` e `for / in` dall'inizio. Esempio:
  • & gt; flag: = true; & Gt; per j in [10, 11, 12] fai & gt; stampare ('prima', j, bandiera); & Gt; se flag e j = 11 allora & gt; bandiera chiara; & Gt; print ('- & gt;', j, flag, 'jump back') & gt; ripristina & gt; fi; & Gt; print ('after', j, flag) & gt; fino a j & gt; 12; prima di 10 true dopo 10 true before 11 true - & gt; 11 falso salto indietro prima di 11 falso dopo 11 falso prima di 12 falso dopo 12 falso
  • Il nuovo operatore `recip` restituisce l'inverso di un numero x. È equivalente all'espressione 1 / x, ma più veloce.
  • La nuova funzione `stats.ema` calcola la media mobile esponenziale di una distribuzione. La nuova funzione `stats.gema` restituisce una funzione iteratrice che restituisce la rispettiva media mobile esponenziale di una distribuzione. Per il suo utilizzo, si prega di dare un'occhiata al file sorgente src / stats.c, C funzioni * ema.
  • `*%`, `+%`, e `-%` restituito `undefined` invece di un risultato corretto se il loro operando destro era zero. Questo è stato corretto.
  • Corretto un messaggio di errore in `net.survey`.
  • La nuova funzione API C `agn_arraytoseq` converte un array numerico in una sequenza e spinge questa nuova sequenza in cima allo stack.

Novità nella versione 2.0.0:

  • Nuove affermazioni e funzioni:
  • Agena 2.0 è compatibile verso il basso con Agena 1.12, tranne per il fatto che i token `import`,` alias`, `until` e` onsuccess` ora sono parole chiave e non possono più essere usati come variabili. Attualmente, ci sono Solaris, Debian (x86, PowerPC, Raspberry Pi), Windows, Mac e DOS installer disponibili per 2.0, incluso un Primer e Reference aggiornato che spiega in dettaglio tutte le nuove funzionalità.
  • Le nuove varianti di ciclo `for / as` e` for / until` controllano una condizione alla fine dell'iterazione corrente e iniziano la successiva iterazione o lasciano il ciclo. Funziona sia con `for / to`, sia con` for / in` loops. In effetti, entrambe le varianti eseguono un ciclo almeno una volta fino a quando la condizione data viene controllata.
  • Esempi:
  • & gt; per i to 5 do
  • & gt; di stampa (i)
  • & gt; come io & lt; 3
  • & gt; perché io in [1, 2, 3, 4, 5] do
  • & gt; di stampa (i)
  • & gt; fino a quando non lo> = 3
  • Il nuovo ciclo `do / until` itera fino a quando non viene soddisfatta una determinata condizione:
  • & gt; c: = 0;
  • & gt; fare
  • & gt; inc c;
  • & gt; stampa (c)
  • & gt; fino a c & gt; = 3
  • Nei cicli numerici `for`, la clausola` to` non può essere più fornita. Invece, quando si omette la clausola `to`, il ciclo itera fino a che il numero più grande rappresentabile sulla piattaforma, in C HUGE_VAL, è stato raggiunto:
  • & gt; per me
  • & gt; di stampa (i)
  • & gt; od
  • La nuova clausola `onsuccess` nelle istruzioni` if` e `case` esegue un chunk se almeno una delle condizioni è vera. Esempi:
  • & gt; flag: = false;
  • & gt; se 1 = 0 allora
  • & gt; stampa (0)
  • & gt; elif 1 = 1 quindi
  • & gt; di stampa (1)
  • & gt; onSuccess
  • & gt; flag: = true
  • & gt; altro
  • & gt; stampa (-1)
  • & gt; fi;
  • & gt; stampa (bandiera);
  • true
  • & gt; flag: = false;
  • & gt; se 1 = 0 allora
  • & gt; stampa (0)
  • & gt; elif 1 = 0 quindi
  • & gt; di stampa (1)
  • & gt; onSuccess
  • & gt; flag: = true
  • & gt; altro
  • & gt; stampa (-1)
  • & gt; fi;
  • & gt; stampa (bandiera);
  • false
  • & gt; flag: = false;
  • & gt; a: = 2;
  • & gt; caso a
  • & gt; di 1 quindi
  • & gt; di stampa (1)
  • & gt; di 2 quindi
  • & gt; di stampa (2)
  • & gt; onSuccess
  • & gt; flag: = true
  • & gt; altro
  • & gt; stampa (-1)
  • & gt; esac;
  • & gt; stampa (bandiera);
  • true
  • La nuova istruzione `import` consente di importare una o più librerie senza mettere i loro nomi tra virgolette, ad es. "import calc, stats" è equivalente a "readlib ('calc', 'stats')".
  • L'opzione `alias` dell'istruzione` import` assegna uno o più nomi brevi alle funzioni di libreria inizializzate, ad es. "import calc alias xpdiff" equivale a "con ('calc', 'xpdiff')" e "import calc alias" equivale a "with ('calc')".
  • Il nuovo operatore `..` consente di indicizzare tabelle anche se il suo operando a sinistra vale come` null`. In questo caso, viene restituito `null` e non viene emesso alcun errore` `tentativo di indicizzare il campo ... (un valore nullo)`. È simile alla funzione `getentry`, ma è tre volte più veloce. Esempi:
  • & gt; crea una tabella a;
  • & gt; a.b:
  • nullo
  • & gt; a.b.c:
  • Errore in stdin, alla riga 1:
  • tenta di indicizzare il campo `b` (un valore nullo)
  • & gt; a..b..c:
  • nullo
  • & gt; crea una tabella a;
  • & gt; un [1]:
  • nullo
  • & gt; un [1] [2]:
  • Errore in stdin, alla riga 1:
  • tenta di indicizzare il campo `?` (un valore nullo)
  • & gt; a .. [1] .. [2]:
  • nullo
  • La nuova funzione `drem` valuta il resto di una divisione intera x / y, ma contrariamente a` irem`, arrotonda il quoziente interno x / y all'intero più vicino invece che verso zero.
  • La nuova funzione `skycrane.todate` restituisce la data e l'ora correnti come una stringa formattata.
  • La nuova funzione `io.truncate` tronca un file nella posizione corrente del file.
  • La nuova funzione `io.move` cambia la posizione del file di un dato numero di caratteri a sinistra oa destra.
  • La nuova funzione `io.filesize` restituisce la dimensione di un file.
  • `readlib` ora accetta le stringhe come argomenti, solo. I numeri non sono più consentiti.
  • Se l'ultimo argomento di `with` è Boolean` false`, la funzione non scrive nomi abbreviati assegnati alla console (stdout).
  • `strings.fields` ora accetta anche una sequenza di numeri indice. Tuttavia, non accetta più l'indice `0`.
  • L'installer Debian Raspberry Pi Wheezy ora include il pacchetto grafico `gdi`.
  • Il file `change.log` è ora correttamente visualizzato in Windows.

Cosa c'è di nuovo nella versione 2.0.0 RC3:

  • Le nuove varianti di ciclo `for / as` e` for / until` controllano una condizione alla fine dell'iterazione corrente e iniziano la successiva iterazione o lasciano il ciclo. Funziona sia con / per, sia con / in loop.

Novità della versione 2.0.0 di RC2:

  • Le nuove varianti di ciclo `for / as` e` for / until` controllano una condizione alla fine della corrente iterazione e iniziano la successiva iterazione o lasciano un ciclo. Funziona sia con / per, sia con / in loop.

Novità della versione 2.0.0 di RC1:

  • La nuova istruzione `import` consente di importare una o più librerie senza mettere i loro nomi tra virgolette, ad es. "import calc, stats" è equivalente a "readlib ('calc', 'stats')".
  • L'opzione `alias` dell'istruzione` import` assegna uno o più nomi brevi alle funzioni di libreria inizializzate, ad es. "import calc alias xpdiff" equivale a "con ('calc', 'xpdiff')" e "import calc alias" equivale a "with ('calc')".
  • Il nuovo operatore `..` consente di indicizzare tabelle anche se il suo operando a sinistra vale come` null`. In questo caso, viene restituito `null` e non viene emesso alcun errore` `tentativo di indicizzare il campo ... (un valore nullo)`. È simile alla funzione `getentry` ma è tre volte più veloce.

Novità nella versione 1.12.9:

  • Le nuove funzioni `io.getclip` e` io.putclip` si scambiano i testi tra Agena e gli appunti (solo per Windows).
  • `stats.prange` è stato riscritto in C ed è diventato fino al 60% più veloce.
  • `os.cpuinfo` ora restituisce informazioni corrette e maggiori sui sistemi basati su ARM.
  • Nei sistemi DOS e UNIX, incluso Mac OS X e solo nel dominio complesso, l'esponenziazione della base 0 all'esponente 0 + r * I, con r qualsiasi non uguale a zero, ha restituito "undefined" invece di 0. Questo è stato corretto.
  • Nei sistemi DOS e UNIX incluso Mac OS X e solo nel dominio complesso, l'esponenziazione della base 0 all'esponente r + 0 * I, con r qualsiasi float positivo, restituiva "undefined" invece di 0. Questo ha stato corretto.
  • `stats.obcount` e` stats.obpart` non possono includere valori nel subinterval più a destra. Questo è stato corretto.
  • `calc.nakspline`,` calc.naksplinecoeffs`, `calc_clampedspline` e` calc_clampedsplinecoeffs` provocavano errori di segmentazione se chiamati con una struttura che conteneva troppo pochi punti, cioè coppie. Questo è stato risolto restituendo `fail` in questi casi.
  • Potenziali errori di deallocazione della memoria sono stati rimossi da `calc.neville`,` calc.interp`, `calc.newtoncoeffs`,` calc.naksplinecoeffs`, `calc.clampedsplinecoeffs`,` calc.nakspline`, e `calc.clampedspline`.
  • La nuova funzione API C `agn_checkinteger` controlla se un argomento è un numero e un intero e - contrariamente a` luaL_checkinteger` - genera un errore altrimenti.

Novità in nella versione 1.9.0:

  • La nuova funzione `alternativa 'restituisce il primo argomento se il suo secondo argomento è` null`. Altrimenti restituisce il suo secondo argomento.
  • Il passaggio da -b all'eseguibile di Agena è stato rimosso poiché il suo output era lo stesso dell'opzione -v.
  • Le versioni Windows e UNIX / Mac di `strings.utf8size` contenevano una potenziale perdita di memoria; questo è stato cambiato.
  • Tutte le DLL / SOs binari delle librerie plus non contengono più codice inutilizzato, riducendone le dimensioni fino al 10 percento, a seconda del sistema operativo. Il makefile e le origini che importano in precedenza i file di intestazione non utilizzati sono stati modificati. Ad esempio, questo riduce la dimensione dei binari di Windows di 55 kByte.
  • Esteso la suite di test.
  • Aggiornato i file di schema.

Novità della versione 1.6.0

  • Nuove funzioni e caratteristiche:
  • La nuova funzione `checktype` determina se tutti i valori in una struttura sono di un determinato tipo.
  • La nuova funzione `isint` controlla se tutti i suoi argomenti sono numeri interi.
  • La nuova funzione `strings.dleven` restituisce la distanza di due stringhe di Damerau-Levenshtein.
  • La nuova funzione `stats.ad` determina la deviazione assoluta di tutti i valori in una struttura.
  • La nuova funzione `stats.countentries` conta il numero di occorrenze di tutti gli elementi in una struttura.
  • La nuova funzione `stats.deltalist` restituisce una struttura dei delta dei rispettivi elementi adiacenti.
  • La nuova funzione `stats.gmean` restituisce la media geometrica di una struttura.
  • La nuova funzione `stats.hmean` restituisce la media armonica di una struttura.
  • La nuova funzione `stats.ios` restituisce un indicatore comprovato sulla stabilità in una distribuzione.
  • La nuova funzione `stats.iqr` restituisce l'intervallo interquartile.
  • La nuova funzione `stats.issorted` controlla se tutti i numeri in una struttura sono ordinati in ordine crescente.
  • La nuova funzione `stats.moment` calcola il momento dei dati dati su un'origine.
  • La nuova funzione `stats.numbperm` restituisce il numero di permutazioni.
  • La nuova funzione `stats.percentile` determina percentili.
  • La nuova funzione `stats.skewness` restituisce l'asimmetria, un indicatore della simmetria di una distribuzione di probabilità.
  • La nuova funzione `stats.sumdata` riassume tutti i poteri di una struttura su un'origine.
  • `stats.tovals` ora è una funzione di libreria C e quindi è fino al 40 percento più veloce.
  • Con una tabella o sequenza vuota, `stats.qmean`,` stats.mean`, `stats.gmean`,` stats.sd`, `stats.median`,
  • `stats.var` ora restituisce un errore.
  • La lunghezza massima per una riga di input nell'interprete standalone è stata modificata da 512 a 2048 caratteri.
  • La nuova variabile d'ambiente `environ.maxpathlength` memorizza il numero massimo di caratteri per un percorso file (escluso il carattere di C).
  • Le nuove variabili di ambiente `environ.minnumber` e` environ.maxnumber` contengono il valore minimo e massimo di un numero di Agena (attualmente ANSI-C double) in grado di memorizzare.
  • La nuova variabile d'ambiente `environ.umaxlong` include il valore integrale massimo del tipo C senza segno lungo sui sistemi a 32 + bit e senza segno lungo su macchine a 16 bit.
  • API C:
  • La compatibilità al 100% dell'API di Agena C con l'API di Lua C è stata ristabilita introducendo le funzioni di dump di Lua *. Così ora puoi memorizzare le funzioni in una rappresentazione binaria, ad es. usando `strings.dump` o lua_dump al livello C.
  • Introdotta la nuova funzione `agnL_optboolean` per verificare gli argomenti booleani opzionali e restituirli in caso di successo.
  • Correzioni di bug:
  • `environ.globals` esce sempre con un errore, questo è stato corretto.
  • `assume` restituito false con entrambi i suoi argomenti essendo o valutando 'non definito'. Ora restituisce true in questo caso.
  • Agena si è arrestato in modo anomalo quando si passa un tavolo vuoto e un delimitatore di "join" - questo è stato corretto.
  • L'opzione `colour` non viene più ignorata da` gdi.plot`.
  • Con le tabelle, `stats.minmax` ha restituito un valore errato per il minimo. Ora funziona correttamente.
  • Con una tabella vuota, `stats.median` ha restituito 0, ora restituisce un errore.
  • Contrariamente alla documentazione, `strings.isending` ha restituito 'true' con entrambe le stringhe uguali. Questo è stato corretto.
  • `run` restituito` impossibile aprire il file` se uno script Agena esistente includeva un errore di sintassi. Questo è stato risolto cancellando completamente la funzione.
  • Aggiunta della patch 9 di Lua 5.1.4: "Generazione errata del codice per alcune espressioni booleane [ad esempio complesse]".
  • Aggiunta di Lua 5.1.4 patch 11: "Parser può raccogliere un prototipo mentre lo costruisce."
  • * Info: l'aggiunta di Lua 5.1.4 patch 10, "[__write / __ new] indice metamethod potrebbe non funzionare se metatable è la sua propria variabile", per Agena non è necessario, perché Agena già funziona correttamente in questo caso.
  • Rimossa la parola chiave non utilizzata `default`.
  • Un certo rafforzamento di funzioni e funzionalità.
  • Enhancements:
  • Aggiunta una versione _perimentale di `io.anykey` alla versione per Mac. Tuttavia, almeno su Lion, la chiave che viene premuta a volte viene echo sulla shell.
  • `utils.readcsv` ora può facoltativamente restituire tutti i valori in un file CSV in una sequenza piatta.
  • Il pacchetto `clock` ora supporta l'operatore di divisione` / `aggiungendolo alla sua metatable dell'operatore` tm`.
  • Il comportamento di `with` è stato modificato perché non è stato possibile assegnare nomi brevi per molte funzioni della libreria: Se le funzioni sono state inserite nella tabella .aux, non assegnare nomi brevi per questi nomi di funzioni; altrimenti assegna i nomi brevi per _all_ altre funzioni del pacchetto. Quindi: `package.register` per registrare tutte le funzioni della libreria per` with` per assegnare nomi brevi, non è più necessario. Sarà deprecato in una delle seguenti versioni.
  • Migliorata la suite di test.
  • Manuale:
  • Migliorato il manuale e l'indice.
  • Consistenza:
  • Per tutti i seguenti ridenominazioni, i seguenti vecchi nomi di variabili sono ancora supportati.
  • `environ.MinLong` è stato rinominato in` environ.minlong`.
  • `environ.MaxLong` è stato rinominato in` environ.maxlong`.
  • `environ.BufferSize` è stato rinominato in` environ.buffersize`.
  • `environ.PathSep` è stato rinominato in` environ.pathsep`.
  • `environ.More` è stato rinominato in` environ.more`.
  • `environ.WithProtected` è stato rinominato in` environ.withprotected`.
  • `environ.Os` è stato rinominato in` environ.os`.
  • `environ.Cpu` è stato rinominato in` environ.cpu`.
  • `environ.Release` è stato rinominato in` environ.release`.
  • `environ.GdiDefaultOptions` è stato rinominato in` environ.gdidefaultoptions`.
  • In Windows, `os.login` e 'os.computername` ora restituiscono' fail 'come fanno le versioni UNIX o OS / 2.
  • L'opzione `-DCOMPAT13` è stata finalmente rimossa per la compilazione di una versione complient di Agena 1.3.x.
  • Altro:
  • Deprecato `calc.fseq` è stato cancellato. Per favore usa `nseq` invece.

Novità della versione 1.5.1:

  • Patched `strings.fields` che non ha funzionato affatto. Inoltre, è stato convertito in una funzione di libreria C e quindi è 2,6 volte più veloce.
  • `strings.words` ora accetta un terzo argomento, se impostato su` true`, i delimitatori successivi vengono ignorati.
  • Rimossa una possibile perdita di sicurezza da `io.write` e` io.writeline` e migliorato i suoi messaggi di errore.
  • Patched `binio.readchar` per evitare problemi con file di dimensioni superiori a 2 GB.
  • Messaggi di errore corretti delle funzioni `xbase.purge`,` xbase.readvalue`, `xbase.purge`,` ads.getvalues`, `binio.readshortstring`, 'os.computername`,` os.login`, `os.fattrib`,` environ.kernel`, `package.register`.
  • I terabyte possono ora essere inseriti con la notazione T, dove è un intero, e T è il carattere `T`. Allo stesso modo, g denota miliardi e t trilioni. Vedere pagina 48 del manuale per ulteriori informazioni.
  • Aggiornato il manuale.
  • Quasi tutti gli switch di compatibilità con le versioni precedenti del codice sorgente C sono stati rimossi per motivi di pulizia del codice. Ciò riguarda solo coloro che tentano di ricompilare Agena 1.5 o versione successiva con piena compatibilità all'indietro con Agena 1.3 e 1.4 e con la maggior parte della compatibilità con versioni precedenti a Lua 5.0 (eccetto la precedente gestione della libreria Lua 5.0).

Novità della versione 1.5.0:

  • `map` ora può anche elaborare stringhe date come secondo argomento. La rispettiva funzione e i suoi argomenti sono applicati consecutivamente a ciascun carattere da sinistra a destra, e il risultato viene restituito in una sequenza.
  • `run`: se vuoi caricare ed eseguire il codice da file con un suffisso 'agn', non devi più specificare il suffisso nell'argomento. Quindi `run 'test'` e` run' test.agn'` ora sono gli stessi.
  • La parola chiave `is` è ora obbligatoria per definire le procedure. (Con GCC, usa l'opzione -DCOMPAT14 per compilare una versione di Agena dove la parola chiave `is` è ancora facoltativa.)
  • L'istruzione `try` è stata deprecata e non è più supportata. (Con GCC, usa l'opzione -DCOMPAT14 per compilare una versione di Agena che presenta ancora questa istruzione.)
  • Le seguenti funzioni `utils` sono state rimosse:` arraysize`, `getarray`,` getwholearray`, `newarray`,` searcharray`, `setarray`. Per compatibilità con le versioni precedenti, sono stati aggiunti al file lib / compat.agn. (Con GCC, usa l'opzione -DCOMPAT14 per compilare una versione di Agena che ancora supporta le funzioni di utilità originali.)
  • `utils.singlesubs` è stato completamente riscritto. Ora si aspetta una sequenza di numeri come secondo argomento invece della precedente struttura userdata stringarray. È più lento del 35% rispetto alla precedente versione, ma la rimozione della struttura stringarray era più importante.
  • `strings.include` si blocca se viene chiamato con 0 come secondo argomento. Questo è stato corretto.
  • Applica la patch del 10 maggio 2011 di Michael G. Schwern alle sue funzioni ausiliarie di data `32-bit-Year 2038-Fix` usate dai pacchetti` os` e `xbase` (` Make mktime64 () corregge la struttura tm in arrivo come richiesto da ISO C.)
  • Ottimizzazione del codice interno: alcune funzioni di inizializzazione della libreria e caricamento del file C hanno utilizzato lo stack per creare stringhe di percorso e nome file. In molti casi, la nuova funzione C concat 'di A, scritta da Solar Designer, viene ora utilizzata.
  • L'API Agena C è ora compatibile al 100% con l'API Lua C per facilitare il porting dei pacchetti C Lua ad Agena.
  • Le seguenti funzioni sono state quindi ridenominate: 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.
  • Le seguenti macro sono state rinominate: luaL_checkint - & gt; agnL_checkint, luaL_optint - & gt; agnL_optint.
  • Contrariamente alla precedente implementazione di Agena, lua_tonumber ora restituisce 0 come in Lua nel caso in cui sia stato passato un non numero, invece di restituire HUGE_VAL.
  • lua_setglobal2 è stato rimosso. Usa invece lua_pushvalue e lua_setglobal.

Novità nella versione 1.4.2:

  • Se nella lista dei parametri di una procedura sono stati specificati i tipi definiti dall'utente, in
  • chiamate di procedura non sono stati emessi errori e la procedura è stata eseguita, nei seguenti casi:
  • a) una tabella, un insieme, una sequenza, una coppia o una procedura - senza essere definiti dall'utente
  • type - è stato passato,
  • b) non è stato superato alcun valore per il parametro in questione.

Novità della versione 1.4.1:

  • I nomi brevi per `stats.quartiles` e` stats.mode` non possono essere assegnati dalla funzione `with`. Questo è stato corretto.
  • Erroneamente, `with` non può assegnare un nome breve per` gdi.settriangle`. Questo è stato cambiato.
  • La gestione degli errori di `calc.polygen` è stata migliorata.
  • Messaggio di errore migliorato di `fractals.draw` per i file di mappe FRACTINT mancanti.
  • Rimossa la funzione `strings.rseek` deprecata. Per compatibilità con le versioni precedenti, `strings.seek` è stato aggiunto al file lib / compat.agn.
  • Aggiunta l'opzione -d per stampare le informazioni di debug durante l'avvio dell'interprete.
  • La versione per Windows di Agena è stata compilata con GCC 4.5.2.
  • File di schemi di linguaggio aggiornati.
  • Il manuale è stato aggiornato.

Novità della versione 1.4.0:

  • Modifiche semantiche:
  • Le variabili di controllo del ciclo dei cicli numerici `for / to` sono ora localmente localizzate sui blocchi circostanti invece che sui loro corpi del ciclo (interno). Se una variabile locale con lo stesso nome della variabile di controllo del ciclo è stata dichiarata e assegnata prima di
  • eseguendo un ciclo numerico, viene sovrascritto dall'ultimo valore di iterazione del ciclo. Pertanto, lo switch `external` nei cicli numerici` for` non è più accettato. (Con GCC, usa l'opzione -DCOMPAT13 per compilare una versione di Agena che riconosce ancora ma ignora la parola chiave `external`.)
  • Con la costante `fail`,` not` ha restituito `true`, ma con` fail` assegnato a una variabile, `not` ha restituito false. Questo è stato cambiato, ad esempio 'a: = fail; non (a) 'ora restituisce `true`.
  • `stats.median` ora restituisce` fail` invece di 0 se la struttura data è vuota.
  • `utils.readcsv`: Se viene passato un singolo spazio bianco con l'opzione` delim` e se l'opzione `ignorespaces` non è stata data, gli spazi bianchi non vengono automaticamente rimossi più a lungo prima di dividere ogni riga del file in le sue parole.
  • La funzione ha anche due nuove opzioni: `header` che segna la prima riga in un file e` output` che consente di memorizzare il contenuto del file in un dizionario con i relativi nomi di campo definiti dall'intestazione del file.
  • La notazione sottostringa `$` non è più supportata. (Con GCC, usa l'opzione-DCOMPAT13 per compilare una versione di Agena che suppende ancora l'operatore `$.)
  • Estensioni:
  • Sono stati aggiunti infiniti loop di do / od. Questo tipo di ciclo itera infinitamente e può essere interrotto solo con le istruzioni `break` o` return`. Sono zucchero sintattico per "mentre vero fanno ... anelli".
  • Con le tabelle, `stats.minmax` in precedenza funzionava solo con gli array. Questo è stato cambiato, cioè i valori con corrispondenti chiavi non positive (ad esempio stringhe, numeri interi non positivi, float negativi e positivi, ecc.) Sono ora correttamente riconosciuti nella valutazione.
  • `stats.mean`,` stats.qmean`, `stats.sd` e` stats.var` ora elaborano anche le sequenze.
  • La nuova funzione `stats.mode` restituisce tutti i valori in una sequenza o tabella con il maggior numero di occorrenze, ovvero la frequenza più alta.
  • La nuova funzione `stats.quartiles` restituisce il primo, il secondo e il terzo quartile di una tabella o di una sequenza _sorted_.
  • Le funzionalità precedentemente non documentate di `linalg.matrix` sono state aggiunte al manuale e la sua gestione degli errori è stata migliorata.
  • Gestione degli errori migliorata di `linalg.hilbert`.
  • `gdi.setinfo` ora accetta l'opzione` square`. Se `square = false`, allora gli assi xey non avranno la stessa scala sui grafici creati con` gdi.plot`.
  • La funzione `gdi.plot` per disegnare la grafica purtroppo non è stata documentata. Questo è stato cambiato.
  • `gdi.plot` accetta due nuove opzioni: l'opzione 'x' specifica l'intervallo orizzontale su cui viene visualizzato un grafico, e l'opzione 'y' specifica l'intervallo verticale.
  • Se una struttura PLOT viene passata a `gdi.plot` che contiene solo POINT, LINES, RECTANGLES, TRIANGLE, CIRCLE e ELLIPSE (incluse le loro varianti * FILLED), quindi` gdi.plot` determina automaticamente le scale (` gdi.setinfo` non deve necessariamente essere chiamato).
  • Le funzionalità OOP ereditate da Lua sono ora documentate nell'Appendice A9. L'autore non raccomanda la programmazione orientata agli oggetti.
  • sintonia:
  • Operatore "pieno" ottimizzato di circa il 3%.
  • Ottimizzato `in`,` join`, `sadd`,` qsadd`, `replace`,` copy`, `unique`, e Cantor imposta gli operatori sulle tabelle e imposta un po '.
  • Con le tabelle, gli operatori `top` e` bottom` ora sono circa il 5% più veloci.
  • L'operatore `size` è almeno l'8% più veloce se una tabella non include valori nulli.
  • `linalg.mzip`,` linalg.mmul` e `linalg.transpose` sono stati ottimizzati di circa il 3% ciascuno.
  • Il numero per i cicli / a con dimensioni di passo frazionarie è stato ottimizzato riducendo della metà il numero delle loro variabili di controllo. Questo, tuttavia, non ha raggiunto alcun aumento di velocità.
  • Patch:
  • Patched `linalg.ludecomp` per rilevare matrici singolari. Inoltre, la funzione ora può determinare automaticamente l'ordine della matrice data.
  • Diversamente dal manuale, `gdi.plot` non determinava automaticamente intervalli orizzontali e verticali. Questo è stato corretto.
  • `gdi.plot` non ignora più l'opzione` square` impostata da `gdi.setinfo`.
  • `gdi.setinfo` ha aggiunto le impostazioni alle strutture INFO anche se erano già presenti. Questo è stato cambiato.
  • I cerchi non sono stati tracciati correttamente da `gdi.plot`. Questo è stato cambiato.
  • La funzione `gdi.plot` nella maggior parte delle circostanze ignorava la colorazione individuale degli oggetti geometrici. Questo è stato cambiato.
  • Il pacchetto gdi non ha assegnato nomi brevi per `gdi.settriangle`,` gdi.settrianglefilled`, `gdi.setrectangle` e` gdi.setrectanglefilled`. Questo è stato cambiato.
  • Il pacchetto frattali non ha assegnato nomi brevi per le funzioni del tipo definito dall'utente 'esctime'. Questo è stato cambiato. Messaggio di errore corretto di `fractals.draw` se gli argomenti posizionali non erano numeri.
  • Varie:
  • La funzionalità di `calc.fseq` è stata unita a` nseq`. Per compatibilità con le versioni precedenti, `calc.fseq` fa ancora parte del pacchetto calc, ma la funzione si riferisce effettivamente all'implementazione` nseq`.
  • Aggiunta la variabile `environ.FractScreenUpdates` al` pacchetto frattali` per indicare il numero di linee verticali (un numero intero non negativo) dopo il quale un frattale verrà aggiornato in una finestra. La variabile `environ.FractOptimised` è stata deprecata.
  • Le funzioni ausiliarie di gdi sono state raggruppate.

Novità della versione 1.3.3:

  • Patch a `instr`:
  • In modalità regex, l'operatore ha restituito un risultato errato se è stata assegnata una posizione iniziale.
  • In modalità di ricerca semplice, l'operatore ha restituito un errore fuori intervallo se non è stata assegnata alcuna posizione iniziale.
  • Tranne che nella modalità di ricerca inversa, se non è stata trovata alcuna corrispondenza, è stato restituito il primo argomento invece di `null`.
  • Messaggio di errore corretto dell'istruzione `create` rispetto alle sequenze.
  • In AgenaEdit, quando si inviava più di una struttura con una sola chiamata a `stampa`, le strutture non venivano stampate in forma completa se la prima struttura disponeva di un metametodo __tostring. Questo è stato cambiato.

Novità della versione 1.3.2:

  • Questa versione include correzioni di bug, estensioni e un manuale migliorato:
  • `dimension` ha creato risultati interessanti se una struttura è stata passata come
  • initialiser. Questo è stato cambiato: `dimension` ora crea copie indipendenti di
  • struttura durante l'inizializzazione della tabella.
  • La funzionalità di `strings.rseek` è stata aggiunta all'operatore` instr`.
  • Quindi, `strings.rseek` è stato deprecato. Per compatibilità con le versioni precedenti,
  • `strings.rseek` è stato aggiunto al file lib / compat.agn.
  • `strings.hits` ora supporta espressioni regolari e acquisizioni. Questo comportamento
  • può essere disattivato passando un booleano come terzo argomento.
  • `strings.isabbrev` e` strings.isending` ora usano automaticamente una semplice ricerca
  • se non sono state passate espressioni o acquisizioni regolari come parte del secondo
  • argomento.
  • Ottimizzato `strings.ismagic` e` strings.isfloat`.
  • La funzione `log` ora è 13% più veloce.
  • Quando si stampa più di una struttura con una sola chiamata a `print`,

  • Le strutture
  • non sono state stampate in forma completa se la prima struttura presentava un __tostring
  • metamethod. Questo è stato cambiato.
  • Aggiunte le categorizzazioni di funzioni al Capitolo 7 per facilitare l'avvio per nuovo
  • utenti.

Novità della versione 1.3.1:

  • Ci sono stati problemi con le chiamate annidate ai seguenti operatori binari: `xor`,` atendof`, `& amp;`, `||`, `^^`, `::`, e `: - `, e quindi anche con la bella stampante che si chiude con un errore durante la stampa di strutture nidificate. Questo è stato corretto.
  • Quattro correzioni a `os.list`: se è stata passata l'opzione 'r', la directory di lavoro corrente è stata cambiata in modo errato dopo il completamento della chiamata.
  • Se 'r' non è stato passato come ultimo argomento, la funzione ha emesso un errore.
  • `null` non è stato accettato come primo argomento per indicare la directory di lavoro corrente.
  • In Windows 7, la stampa dei contenuti della directory root non funzionava, ad esempio os.list ('c:') restituiva il contenuto della directory di lavoro corrente.
  • Quando una stringa è stata indicizzata con un numero diverso, ad es. "str [null]", Agena ha restituito "null". Ora viene generato un errore.
  • Se non è stato trovato library.agn, il percorso sbagliato è stato emesso due volte nell'avviso. Questo è stato cambiato.

Novità in nella versione 1.2:

  • L'operatore di sottostringa è stato ridisegnato ma la versione precedente sarà ancora disponibile fino ad Agena 2.0: la nuova è: `str [da sinistra a destra]`, la vecchia è stata: `str $ (sinistra, destra)` . Un esempio: before: `str: = 'string'; print (str $ (2, 3)) `- & gt; 'tr' ora: `str: = 'stringa'; print (str [2 to 3]) `- & gt; 'Tr'
  • Ora puoi determinare sottoliste di matrici e sequenze di tabelle con la nuova sintassi sopra menzionata: `s [da sinistra a destra]`. Un esempio: ora: `a: = [10, 20, 30, 40]; print (a [2 to 3]) `- & gt; [20, 30] ora: `a: = seq (10, 20, 30, 40); print (a [2 to 3]) `- & gt; seq (20, 30)
  • La funzione `ops` ora consente di specificare i valori da restituire passando una sequenza delle loro posizioni di indice come primo argomento, ad es. ops (seq (1, -1), 10, 20,
  • 30).
  • La nuova funzione `strings.include` inserisce una sequenza di caratteri in una stringa
  • in una determinata posizione.
  • Le seguenti funzioni ora generano un errore invece di restituire `fail` in
  • caso di errore: `os.remove`, 'os.move`,' os.mkdir`,` os.rmdir`, `os.chdir`.
  • Miglioramenti ai seguenti operatori che lavorano su insiemi e sequenze riguardanti la garbage collection: istruzione `insert`,` union`, `intersezione`,` minus`, `unique`,` copy`, `pop / top` e le istruzioni `pop / bottom` e impostano i compiti.
  • Messaggio di errore migliorato di `fractals.draw` se il file della mappa dei colori FRACTINT non ha
  • non è stato trovato.

Novità della versione 1.1.0:

  • Questa versione presenta nuove funzionalità e uno spazio dei nomi pulito.
  • Compatibilità con Agena 1.0:
  • Alcune funzioni sono state rimosse da Agena e alcune sono state convertite in funzioni pacchetto (vedi sotto). Se vuoi ancora usarli, invia readlib "compat" sulla riga di comando o inserisci l'istruzione precedente nel tuo file di inizializzazione se preferisci la retrocompatibilità ad Agena 1.0.
  • Funzionalità estese:
  • Le istruzioni `pop / top` e` pop / bottom` e `bottom` e` top` possono ora essere applicate anche agli array di tabelle.
  • Quando viene chiamato con `null` o senza argomenti,` os.chdir` non genera più un errore ma restituisce la directory di lavoro corrente. Pertanto, la precedente funzione `os.curdir` C è stata sostituita da una scritta in linguaggio Agena.
  • `os.list` ora attraversa in modo ricorsivo le sottocartelle se viene fornita la nuova opzione 'r'.
  • L'operatore `join` ora accetta anche un delimitatore opzionale e supporta l'opzione per specificare il primo e l'ultimo elemento della struttura da concatenare.
  • `instr` ora può cercare dall'estremità destra di una stringa passando una posizione negativa.
  • Se una tabella include altre tabelle, insiemi, sequenze o coppie, `copy` ora sa come gestire correttamente questi riferimenti se si verificano più volte: se una struttura incorporata è inclusa n volte, viene eseguita una copia reale e vengono inseriti i riferimenti n-1 a questa struttura appena creata. Prima, sono state fatte n copie indipendenti.
  • La nuova funzione `isnonposint` controlla se i numeri dati sono tutti interi e non positivi.
  • `io.close` ora può chiudere più file con una sola chiamata.
  • La funzione `with` non ha assegnato nomi brevi per le seguenti procedure del pacchetto` math`: `convertbase`,` fraction`, `zeroin`,` todecimal`, `lcm`,` gcd`, e ` ndigits`. Questo è stato corretto.
  • La funzione `rwritemode` menzionata nel manuale non esisteva. È ora disponibile ma chiamato `rmode`.
  • Sono stati migliorati i messaggi di errore di varie funzioni.
  • Pulizia spazio nomi: funzioni rinominate o spostate:
  • Le funzioni di libreria di base `register` e` loadclib` sono state spostate nella libreria `package`.
  • Le precedenti funzioni `rdelete`,` rget`, `rinit`,` roinit`, `rmode`,` rset`, `remember` e` defaults` sono state spostate nel nuovo pacchetto `rtable` .
  • Rinominato la tabella _Env globale in `environ` che ora contiene anche le procedure per accedere all'ambiente.
  • Le precedenti variabili di ambiente globali `homedir` e` infolevel` sono state ridenominate rispettivamente `environ.homedir` e` environ.infolevel`.
  • Le seguenti precedenti funzioni della libreria di base sono state spostate nel pacchetto `environ`:` anames`, `attrib`,` gc`, `getfenv`,` globals`, `isselfref`,` pointer`, `setfenv` , `used`,` userinfo`, `__RESTART`,` __DOTTYPRINT`.
  • `mapm.xtoNumber` è stato rinominato in` mapm.xtonumber`, `mapm.xtoString` è stato rinominato in` mapm.xtostring`. Per compatibilità con le versioni precedenti, i vecchi nomi di funzioni possono ancora essere utilizzati eseguendo il file lib / compat.agn (prima leggere il pacchetto `mapm` e poi caricare il file compat.agn).
  • Funzioni e variabili obsolete:
  • `strings.seek` è stato deprecato. La sua funzionalità è stata aggiunta all'operatore `instr`. Per disattivare la modalità di corrispondenza del modello di `instr`, passare l'inizio della ricerca come terza e` true` come quarto argomento. `instr` è circa il 40% più veloce in modalità non-pattern matching di` strings.seek`. Per compatibilità con le versioni precedenti, `strings.seek` è stato aggiunto al file lib / compat.agn.
  • La funzione della libreria di base `concat` è stata rimossa. Usa invece `join`. Per compatibilità con le versioni precedenti, la funzione precedente è stata aggiunta al file lib / compat.agn.
  • Le funzioni `hasrtable` e` hasrotable` sono state rimosse. Per compatibilità con le versioni precedenti, sono stati aggiunti al file lib / compat.agn.
  • La funzione `pcall` è stata deprecata. Usa invece `protect`. Per compatibilità con le versioni precedenti, la funzione è stata aggiunta al file lib / compat.agn.
  • La funzione `maptoset` è stata deprecata. Per compatibilità con le versioni precedenti, la funzione è stata aggiunta al file lib / compat.agn.
  • La funzione `os.alldirs` è stata deprecata. Usa invece le opzioni 'dirs' e 'r' in una chiamata a `os.list`. Per compatibilità con le versioni precedenti, la funzione è stata aggiunta al file lib / compat.agn.
  • `os.isMac`,` os.isSolaris`, `os.isLinux`,` os.isWin`, `os.isOS2`,` os.isDOS`, `os.isHaiku` sono stati deprecati. Utilizzare invece le nuove variabili di ambiente environ.Os e environ.Cpu, che velocizzano anche il codice. Per compatibilità con le versioni precedenti, le funzioni sono state aggiunte al file lib / compat.agn.
  • La variabile _VERSION non documentata è stata rimossa. Per compatibilità con le versioni precedenti, il suo compito è stato aggiunto al file lib / compat.agn.
  • Altre modifiche:
  • La funzione API C lua_rawsetstringnumber menzionata nel manuale non esisteva. Questo è stato cambiato.
  • Ottimizzazione del codice per il parser.
  • In alcuni dei pacchetti, per inciso, alcune variabili sono state implicitamente dichiarate globali. Questo è stato corretto.
  • File di esempio di inizializzazione corretti e aggiornati.
  • AgenaEdit è stato aggiornato.
  • I file dello schema del linguaggio sono stati aggiornati.
  • Gli installer di Linux ora includono il pacchetto xBase.

Novità della versione 1.0.6:

  • Messaggi di errore migliorati degli operatori `join`,` copy` e `filled`, di` toset`, `toseq` e` totable`, di `insert`,` delete`, `pop`, e di `for` loops.
  • Con le sequenze, Agena si è bloccata nella seguente sequenza di eventi: 1) è stata eseguita un'istruzione `delete`, 2) la sequenza era stata vuota e 3) era stato inserito di nuovo un nuovo elemento. Questo è stato risolto. (Internamente, l'istruzione `delete` non riduce più internamente la dimensione delle sequenze.)
  • Con stringhe di grandi dimensioni, `concat` si è arrestato in modo anomalo. Questo è stato corretto.
  • Con stringhe di 512 e più byte, `join` e` replace` potrebbero bloccarsi. Questo è stato risolto. I due operatori ora sono anche molto più veloci che mai.
  • `math.isprime` ha restituito risultati errati con argomenti & gt; 2 ^ 31 (menzionato vagamente nel manuale). Questo problema è stato risolto estendendo l'intervallo dell'argomento a interi con valori fino a +/- 2 ^ 63.
  • `math.nextprime` e` math.prevprime` avevano lo stesso problema con argomenti più grandi come `math.isprime`. Anche questo è stato cambiato. Con l'argomento 2, `io.nextprime` ha restituito erroneamente 5 invece di 3. Anche questo è stato corretto.

Novità della versione 1.0.5:

  • `join` potrebbe bloccare Agena e comportarsi diversamente in modo imprevisto se la stringa risultante
  • ha superato 512 byte. Questo è stato cambiato.
  • Se `restart` è stato chiamato dopo che è stato emesso un errore nel precedente
  • dichiarazione, Agena in rare occasioni si è schiantato a causa della corruzione dello stack. Questo è stato
  • .
  • fisso
  • Con le nuove tabelle create che contengono esattamente un elemento nella parte hash, `attrib`
  • ora restituisce risultati corretti per il numero di slot hash allocati (1 invece di 0).
  • Messaggi di errore corretti di `qsadd` e` sadd`.
  • Messaggi di errore migliorati degli operatori `join`,` copy`, `filled` e` insert`
  • e istruzioni `delete`.
  • La gestione degli errori di `read`,` save` e `fractals.draw` è stata migliorata.
  • Miglioramenti ai makefile.
  • Le dimensioni dei buffer sono state ora standardizzate nei sorgenti.

Novità della versione 1.0.4:

  • Poiché durante l'inizializzazione sono stati segnalati arresti anomali (in Windows XP SP 3 e OpenSolaris 134, in alcune circostanze), la garbage collection è stata disattivata nella fase di inizializzazione. Questi rari errori di segmentazione si sono verificati in OpenSolaris durante l'esecuzione del binario di Agena nella sua directory di hosting come root e in XP quando si fa clic sull'icona del desktop Agena con i diritti di amministratore locale.
  • Introdotto l'opzione -d nelle opzioni della riga di comando per stampare le informazioni durante l'inizializzazione di Agena.
  • Introdotta corretta gestione degli errori se la memoria non poteva essere allocata internamente a: `trim`,` upper`, `lower`,` os.curdir` e `strings.rseek`.
  • Rimosse potenziali perdite di memoria nelle funzioni C di inizializzazione agenaL_initialise e agenaL_setLibname, e in `io.write *` e `print`.

Novità della versione 1.0.3:

  • La nuova funzione `protect` chiama una procedura in modalità protetta e rileva ogni possibile errore in modo che il calcolo non venga interrotto. In caso di errore, imposta la stringa di errore sulla variabile globale `lasterror`. È correlato a `pcall`, ma non restituisce il codice di stato come primo risultato.
  • `attrib` restituisce ora risultati corretti con strutture vuote. Con le strutture vuote, la funzione ha contato erroneamente un elemento hash assegnato in precedenza.
  • `attrib` restituisce ora il numero di byte occupati da tabelle, insiemi e sequenze insieme alla nuova chiave 'byte'. Il numero di byte restituiti si basa su informazioni talvolta contraddittorie disponibili in rete.
  • `replace` ha bloccato Agena se la stringa risultante ha superato i 512 byte. Questo è stato cambiato.
  • `assume` ora restituisce 'Assunzione fallita'. invece di "supposizione fallita."
  • La nuova funzione API C lua_setglobal2 imposta il valore nella parte superiore dello stack su un nome globale. Contrariamente a lua_setglobal, il valore non viene visualizzato.
  • Pulizia del codice di lobject.h (struttura tabella) e lapi.c (macro actnodesize). Bugfix alla funzione API C agn_deletertable nel caso in cui Agena sia compilata con lua_assert non vuoto. Passare al valore restituito della funzione savestate utilizzata durante l'inizializzazione per impedire la (leggera) possibilità di danneggiamento dello stack.

Novità nella versione 1.0.2:

  • La nuova procedura `os.setenv` imposta le variabili d'ambiente a livello di sistema operativo. La funzione è stata originariamente scritta da Mark Edgar.
  • In Windows, `os.getenv` chiama ora una funzione API di Windows nativa per ottenere i valori delle variabili di ambiente. Il codice di Windows è stato scritto da Mark Edgar.
  • La nuova funzione `os.environ` restituisce tutte le variabili di ambiente assegnate in una tabella. La funzione è stata originariamente scritta da Mark Edgar.
  • `io.open` ora aggiunge il puntatore FILE, il nome e la modalità di un file aperto con successo nella nuova tabella` io.openfiles`. `io.close` cancella la voce da` io.openfiles` se il file potrebbe essere chiuso con successo.
  • Se chiamato senza argomenti, `io.read` restituisce un errore se chiamato senza argomenti in AgenaEdit (nel tentativo di leggere la tastiera).
  • Se in io sono chiamati `io.anykey` e` io.getkey` in AgenaEdit, viene visualizzato un messaggio di errore appropriato.
  • È stata modificata una delle subprocedure di inizializzazione per evitare possibili danneggiamenti dello stack (sebbene non si siano mai verificati problemi).
  • os.isMac ('ppc') ora funziona su macchine PowerPC.
  • I capitoli 4 e 6 del Primer e del Reference sono stati revisionati ed ampliati. È stato aggiunto un indice e sono stati fatti molti cosmetici.
  • Memorizza le informazioni sulla versione corretta nell'eseguibile di Windows.

Novità in nella versione 1.0:

  • Gentili signore e signori,
  • dopo quasi quattro anni di sviluppo, ho pubblicato Agena 1.0, un linguaggio di programmazione procedurale derivato da fonti Lua C.
  • La mia community in realtà è molto, molto piccola, ma alcuni utenti mi hanno detto che era soddisfacente, utile e stabile.
  • Sarei molto felice se rivedessi Agena e mi avessi informato dei tuoi risultati. Se non lo trovi utile, per favore dimmelo personalmente e dammi la possibilità di risolvere i problemi.

Novità nella versione 0.34.1d:

  • Questa versione include una versione GUI aggiornata di AgenaEdit (vedi file eseguibile agenaedit).

Novità nella versione 0.34.1:

  • AgenaEdit con evidenziazione della sintassi e motore di runtime integrato è stato rilasciato con Agena 0.34.1.

Novità nella versione 0.34.0:

  • AgenaEdit con evidenziazione della sintassi e motore di runtime integrato è stato rilasciato con Agena 0.34.0.

Novità nella versione 0.33.2:

  • È stato rilasciato Agena 0.33.2 con il supporto dei file xBase.

Novità nella versione 0.33.1:

  • È stato rilasciato Agena 0.33.1 con il supporto dei file xBase.

Novità nella versione 0.33.0:

  • Il nuovo pacchetto `xbase` può leggere e scrivere file xBase compatibili con lo standard dBASE III.
  • I pacchetti `binio` e` ads` ora possono gestire file fino a 2 ^ 63 byte. Prima potevano gestire solo file con dimensioni fino a 2 ^ 31 byte.
  • Le nuove funzioni `io.lock`,` io.unlock`, `binio.lock`,` binio.unlock`, `ads.lock` e` ads.unlock` bloccano un file da accesso in lettura e scrittura altra Agena
  • funzioni o anche altre applicazioni a condizione che queste ultime utilizzino un protocollo di blocco.
  • La funzione baselib `read` non può più essere sovrascritta da` with`.
  • Il nuovo `package.checkClib` controlla se un pacchetto memorizzato in una libreria dinamica C è stato inizializzato. In caso contrario, restituisce un avviso stampato sullo schermo e crea una tabella di pacchetti vuota. Altrimenti non fa nulla.
  • La porta Haiku ora supporta librerie di collegamenti dinamici.

Novità della versione nella versione 0.32.3:

  • È stata rilasciata Agena 0.32.3 con funzioni di calcolo nuove e ottimizzate.
  • Gli utenti Mac non hanno più bisogno di installare ulteriori librerie di dipendenze.
  • È ora disponibile una porta Haiku.

Novità nella versione 0.31.5:

  • Questa versione contiene grafica incorporata, matematica di precisione arbitraria e funzioni migliorate.

Novità nella versione 0.31.3:

  • Aggiunto il pacchetto frattali per disegnare facilmente i frattali in Solaris, Mac, Linux e Windows.
  • Su Solaris e Linux, `gdi.mouse` restituisce ora i valori standard per i pulsanti del mouse premuti (come le edizioni Mac e Windows).
  • Quando viene fornita l'opzione -v, Agena ora non esegue più i file di inizializzazione.
  • Su UNIX o Mac, i nomi dei file di inizializzazione devono sempre essere `.agenainit`, sia che si trovino in / usr / agena / lib o nella cartella personale.
  • La distribuzione binaria di Mac per CPU Intel è più veloce del 30% rispetto alle versioni precedenti.
  • La funzione `io.getkey` è ora disponibile nella versione per Mac OS X.
  • Su Mac, `os.system` restituisce ora informazioni complete sul sistema operativo e sul tipo di CPU. Si noti che restituisce informazioni sul kernel Darwin e che la prima voce nella tabella risultante ora è `Darwin` invece di` MacOSX`.
  • `os.memstate`,` os.freemem` e `os.beep` ora supportano Mac OS X.
  • `io.anykey` è disponibile su tutte le piattaforme, ma restituisce` fail` su DOS e Mac. Pertanto, `gdi.draw` non getterà più errori su Mac quando si usa l'opzione` mouse`.
  • `os.listcore` è stato esteso per restituire solo i nomi di file, directory o collegamenti. '' e '..' ora non vengono mai restituiti.
  • `os.list` non ha riconosciuto alcuna opzione e ha invece restituito una lista vuota. Questo è stato risolto. Inoltre, le opzioni possono ora essere combinate. '' e '..' come il primo argomento ora è correttamente riconosciuto.
  • `os.curdir` ora sostituisce automaticamente i backslash nel percorso determinato con barre.
  • `os.fstat` e` ads.attrib` hanno bloccato Agena se la data di un file è stata superata martedì 19 gennaio 2038. Ciò è stato risolto restituendo una tabella vuota per la chiave della data (os.fstat), o 0/0/01 00:00:00, (ads.attrib).
  • `utils.calendar` si è schiantato contro Agena se il suo argomento era vuoto, negativo o troppo grande. Questo è stato cambiato. Inoltre, se una data è successiva a martedì 19 gennaio 2038, viene restituita la data corretta.
  • Le nuove funzioni `os.screensize` e` os.mousebuttons` restituiscono rispettivamente la risoluzione dello schermo corrente e il numero di pulsanti del mouse collegato (solo Windows).
  • Il file agena.ini.sample è stato rinominato in .agenainit.sample nelle distribuzioni UNIX / Mac.
  • Un nuovo makefile per Solaris viene ora distribuito con il collegamento MapM Agena per compilare completamente le origini MAPM originali scritte da Michael C. Ring.

Novità nella versione 0.31.2:

  • Il pacchetto mapm per la precisione matematica arbitray è ora disponibile anche nell'edizione DOS di Agena.
  • Il numero di cifre utilizzate dal pacchetto mapm è inizializzato a 17 cifre all'avvio di Agena per DOS o OS / 2 Warp. Prima, il valore predefinito era 1 cifra.
  • Il codice C per il binding MAPM è stato standardizzato. In precedenza, i file di origine DOS e OS / 2 differivano da quelli per UNIX e Windows.
  • Piccoli miglioramenti ai programmi di installazione di Windows e Mac OS X.
  • Su Mac, la documentazione è ora disponibile in Libreria / Documentazione / Agena anziché in / Users / Share / Agena.
  • Le funzioni sin, cos, arcsin, arccos e arctan hanno restituito -0 invece di 0 come unità immaginaria, che ha portato a risultati errati se il ritorno di queste funzioni era stato applicato ad altre funzioni come ln (cioè il segno dell'unità immaginaria del risultato di queste altre funzioni era errata). Questo è stato risolto impostando l'unità immaginaria da -0 a 0 nel ritorno di sin, cos, arcoseno, arcocos e arctan.
  • Le funzioni arcsin e arccos hanno restituito risultati errati per gli argomenti z, se abs (reale ((z))) & lt; 1. Questo problema è stato risolto.
  • In OS / 2, le funzioni aritmetiche più complesse sono tornate indefinite. Questo è stato corretto.
  • Si noti che in OS / 2 e DOS, nel dominio complesso ci sono ancora problemi con gli operatori arccos e arcsin che ritornano indefiniti in certe situazioni.
  • Le versioni Windows, i386 Solaris 10 e Linux sono ora state compilate con GCC 4.4.x (e senza xmath86.h) che ha ridotto significativamente il numero di errori nell'aritmetica complessa. In effetti, elaborati complessi test di matematica restituiscono zero errori. La versione Sparc è stata compilata con GCC 4.3.3 per Sun Sparc e ha meno bug nel numero complesso aritmetico rispetto alla versione 0.31.1.
  • Rinominato i seguenti file include: config.h - & gt; agncfg.h, chelpers.h - & gt; agnhlps.h, agnxlib.h - & gt; agnxlib.h.
  • Su Mac, gdi.mouse restituisce ora i valori standard per i pulsanti del mouse premuti.

Novità nella versione 0.31.1:

  • Agena 0.31 include tutti gli strumenti di base per tracciare punti, linee, cerchi, ellissi, rettangoli, archi. ecc., per controllare la dimensione e i colori dell'immagine.

Novità nella versione 0.31.0:

  • È stata rilasciata una versione di coerenza linguistica con una correzione di bug. Vedi il registro delle modifiche per ciò che è cambiato.

Novità della versione nella versione 0.30.4:

  • Agena ora presenta una grafica integrata. Ciò ti consentirà di tracciare grafici, immagini, ecc. In finestre X11 o Win32 o in file GIF, PNG, JPEG, FIG o PostScript, sia in Solaris che in Linux e Windows. Agena si lega alla libreria grafica g2 scritta da Ljubomir Milanovic e Horst Wagner, per fornire queste nuove funzionalità.
  • Agena 0.30 include tutti gli strumenti di base per tracciare punti, linee, cerchi, ellissi, rettangoli, archi. ecc., per controllare la dimensione e i colori dell'immagine.
  • & gt; con 'gdi';
  • pacchetto gdi v0.1.4 al 20 dicembre 2009
  • arco, arcfilled, sfondo, cerchio, circlefilled, clearpalette, chiudere, trattino, ellisse, ellipsefilled, a filo, fontsize, initpalette, inchiostro, lastaccessed, linea, newline, newpoint, aprire, trama, plotfn, punto, rettangolo, rettangolo riempito , reset, resetpalette, setinfo, setoptions, structure, text, thickness, triangle, trianglefilled, useink
  • La funzione plotfn disegna uno o più grafici di funzioni in un reale, opzionalmente insieme agli assi tracciati in un colore definito dall'utente. Può anche essere assegnato il range per l'asse y, altrimenti Agena determina l'impostazione migliore. Ci sono varie altre opzioni che possono essere impostate con la funzione setoptions e che si applicano a tutti i grafici prodotti in una sessione: la risoluzione della finestra, la mappa dei colori, lo spessore della linea e il colore dello sfondo. Ovviamente, l'utente può sovrascrivere alcune o tutte le opzioni per un grafico specifico. Le singolarità vengono trattate correttamente.

Novità della versione nella versione 0.30.3:

  • È stato rilasciato Agena 0.30.3 con grafica integrata, matematica di precisione arbitraria e funzionalità migliorate.

Novità della versione nella versione 0.30.2:

  • Agena ora presenta una grafica integrata. Ciò ti consentirà di tracciare grafici, immagini, ecc. In finestre X11 o Win32 o in file GIF, PNG, JPEG, FIG o PostScript, sia in Solaris che in Linux e Windows. Agena si lega alla libreria grafica g2 scritta da Ljubomir Milanovic e Horst Wagner, per fornire queste nuove funzionalità.
  • Agena 0.30 include tutti gli strumenti di base per tracciare punti, linee, cerchi, ellissi, rettangoli, archi. ecc., per controllare la dimensione e i colori dell'immagine.
  • & gt; con 'gdi';
  • pacchetto gdi v0.1.4 al 20 dicembre 2009
  • arco, arcfilled, sfondo, cerchio, circlefilled, clearpalette, chiudere, trattino, ellisse, ellipsefilled, a filo, fontsize, initpalette, inchiostro, lastaccessed, linea, newline, newpoint, aprire, trama, plotfn, punto, rettangolo, rettangolo riempito , reset, resetpalette, setinfo, setoptions, structure, text, thickness, triangle, trianglefilled, useink
  • La funzione plotfn disegna uno o più grafici di funzioni in un reale, opzionalmente insieme agli assi tracciati in un colore definito dall'utente. Può anche essere assegnato il range per l'asse y, altrimenti Agena determina l'impostazione migliore. Ci sono varie altre opzioni che possono essere impostate con la funzione setoptions e che si applicano a tutti i grafici prodotti in una sessione: la risoluzione della finestra, la mappa dei colori, lo spessore della linea e il colore dello sfondo. Ovviamente, l'utente può sovrascrivere alcune o tutte le opzioni per un grafico specifico. Le singolarità vengono trattate correttamente.

Novità nella versione 0.29.0:

  • Agena ora presenta una grafica integrata. Questo ti permetterà di tracciare grafici, immagini, ecc. In una finestra o in un file GIF, PNG, JPEG, FIG o PostScript in Solaris, Linux e Windows, includendo un binding alla libreria grafica g2 scritta da Ljubomir Milanovic e Horst Wagner.
  • Agena 0.29.0 presenta tutti gli strumenti di base per tracciare punti, linee, cerchi, ellissi, rettangoli, archi. ecc., per gestire il colore e per creare file di immagine o aprire finestre X11 o Win32.
  • In uno degli aggiornamenti in arrivo, un'interfaccia utente di alto livello con le funzioni gdi.plotfn e gdi.plot consente di tracciare funzioni univariate e set di punti al volo. Le due funzioni sono già incluse in Agena 0.29.0, ma sono ancora beta. Ecco un'anteprima:
  • & gt; con 'gdi';
  • pacchetto gdi v0.1.0 a partire dal 24 novembre 2009
  • arco, sfondo, cerchio, clearpalette, chiusura, trattino, ellisse, riempitoArc, riempitoCircolo, riempitoEllipse, riempitoRettangolo,
  • filledTriangle, flush, fontsize, initpalette, ink, lastaccessed, line, open, plot, plotfn, point, rectangle, reset,
  • resetpalette, setinfo, setoptions, struttura, testo, spessore, triangolo, useink
  • La funzione plotfn disegna il grafico di una funzione in un real, opzionalmente insieme agli assi tracciati in un colore definito dall'utente. Si può anche fornire l'intervallo per l'asse y, altrimenti Agena cerca di determinare l'impostazione migliore. Ci sono varie altre opzioni che possono essere impostate con la funzione setoptions e che si applicano a tutti i grafici prodotti in una sessione: la risoluzione della finestra, la mappa dei colori, lo spessore della linea e il colore dello sfondo. Ovviamente, l'utente può sovrascrivere alcune o tutte le opzioni per un grafico specifico. Le singolarità vengono trattate correttamente.
  • plotfn (sin (x) * x & gt; & gt ;, -5, 5, colore ~ ​​'blu', axiscolour ~ 'grigio', res ~ 640: 480);

Novità nella versione 0.27.2:

  • La nuova funzione toSet di baselib converte una stringa in un set di caratteri e una tabella o sequenza in un set.
  • io.readlines è stato corretto per elaborare righe con più di 2048 caratteri. La funzione ora genera anche un errore se l'allocazione della memoria interna fallisce. La dimensione del buffer interno è stata ridotta da 2048 byte a 512 byte. Puoi cambiare questo assegnando un altro valore a AGN_IOREADLINES_MAXLINESIZE nel file agnconf.h.
  • io.readlines ora accetta anche handle di file. Quando si utilizzano handle di file, a differenza dei nomi di file, si ricorda che è necessario chiudere manualmente il file dopo aver usato io.readlines.
  • io.readlines non restituisce più una tabella vuota se il file non esiste. Invece, genera un errore.
  • toSeq ora restituisce un errore invece di fallire se non riceve una stringa, un set o una tabella.
  • La funzione di baselib utilizzata è stata estesa e può restituire l'utilizzo della memoria in byte, kbyte e gbyte. Ora è una funzione C.
  • La funzione gcinfo non documentata è stata cancellata. Le sue funzionalità sono state prese da usato.
  • La nuova funzione API C agn_usedbytes restituisce il numero di byte utilizzati dal sistema.
  • Messaggio di errore errato corretto di toTable.
  • rinominata funzione C AOI `agn_isioforcerror` in` agn_isioforceerror`.

Novità nella versione 0.27.0:

  • Aggiunta la funzione di errore math.erf e la funzione di errore complementare math.erfc.
  • Aggiunta la funzione di Bessel del primo tipo math.besselj, e la funzione di Bessel del secondo tipo di matematica. L'ordine è dato dal primo argomento, l'argomento come secondo argomento.
  • Se la nuova variabile d'ambiente _EnvIoForceError è impostata su un valore non nullo (il valore predefinito), io.open, io.readlines e le varie funzioni binio si chiudono con un errore invece di tornare normalmente.
  • binio.readbytes e binio.readchar hanno restituito una sequenza vuota invece di fallire nel caso in cui il file da leggere non esistesse. Questo è stato cambiato: fallisce o viene restituito un errore.
  • arcsin e arccos ora sono operatori e quindi circa il 40% più veloci.
  • Aggiunto l'operatore xor che esegue un OR esclusivo booleano su valori che valutano o sono vere, false, non riuscite e null.
  • Aggiunto l'operatore atendof che controlla se una parola finisce in una determinata frase e restituisce la sua posizione come un numero. L'operatore restituisce null se le stringhe hanno la stessa lunghezza, almeno una di esse è la stringa vuota o la parola non termina nel modello specificato.
  • hasrtable ora restituisce solo true, se ha una tabella di memoria di lettura / scrittura (aggiornata dall'istruzione return).
  • La nuova funzione hasrotable determina se una funzione ha una tabella di sola lettura (che non può essere aggiornata dall'istruzione return) e restituisce true o false.
  • I nuovi operatori gethigh e getlow recuperano i byte superiore e inferiore da un numero (cioè doppio C).
  • I nuovi operatori sethigh e setlow impostano i byte superiore e inferiore su un numero (cioè doppio C).
  • I nuovi operatori band, bor, bxor e bnot eseguono operazioni bitwise e, o, esclusive o complementari sui numeri.
  • La nuova funzione `kernel` configura le impostazioni del kernel Agena. Attualmente può cambiare il modo in cui gli operatori bit a bit funzionano internamente (utilizzo di numeri interi firmati o non firmati) e come vengono stampati i numeri.
  • Con i numeri reali x, math.argument ora restituisce Pi invece di 0 se x & lt; 0.
  • A causa di un bug nelle funzioni della libreria C ANSI sottostante, arcsin e arccos hanno prodotto risultati errati con numeri complessi se la loro parte immaginaria era pari a zero nei sistemi UNIX. Questo è stato corretto.
  • math.isPrime ha segnalato false con il numero 2. Ciò è stato corretto.
  • Contrariamente al manuale, abs restituito 2 con esito negativo. Ora restituisce -1 come documentato.
  • Il pacchetto bit è stato rimosso.
  • Aggiunta la nuova funzione API C agn_isioforcerror che controlla se _EnvIoForceError è stato impostato su un valore non nullo.
  • La nuova funzione API C agn_setbitwise determina se gli operatori banda, bor, bnot, bxor e shift si calcolano internamente con interi firmati o non firmati.
  • La nuova funzione API C agn_getbitwise restituisce la modalità impostata da agn_setbitwise.
  • La nuova funzione API C agn_setdigits imposta il numero di cifre utilizzate per stampare i numeri.
  • La nuova funzione API C agn_getdigits determina il numero di cifre utilizzate per stampare i numeri.
  • Interno: rimossa la voce "REPL" deprecata da luaP_opnames.
  • Il programma di installazione di Windows è stato migliorato controllando una versione di Agena precedentemente installata, impedendo l'avvio del programma di installazione se è già in esecuzione un'altra istanza e alcuni altri piccoli miglioramenti.

Requisiti :

  • ncurses
  • Lettura GNU

Programmi simili

GromJS
GromJS

20 Feb 15

Hoc
Hoc

2 Jun 15

Ubucompilator
Ubucompilator

12 May 15

Android SDK
Android SDK

22 Jun 18

Commenti a Agena

I commenti non trovato
Aggiungi commento
Accendere le immagini!