Agena

Software screenshot:
Agena
Software informatie:
Versie: 2.11.5 Bijgewerkt
Upload datum: 22 Jun 18
Ontwikkelaar: Alexander Walz
Licentie: Gratis
Populariteit: 73

Rating: 2.0/5 (Total Votes: 1)

Agena is een open source, gratis, multi-platform en gemakkelijk te leren procedurele programmeertaal die is ontworpen voor dagelijks gebruik. Het kan worden gebruikt in grafische, wetenschappelijke, taalkundige en educatieve omgevingen, maar ook in scriptingtoepassingen die alle reguliere besturingssystemen ondersteunen.


Biedt talrijke voorzieningen voor stroomregeling

De toepassing biedt talrijke voorzieningen voor stroomcontrole, zoals als, dan. elif, else conditions, case of and else conditions, is operator, numeriek voor, van, naar en door loops, gecombineerde numerieke voor en while loops, voor en in loops, while en do / as loops, een skip statement, een break verklaring, evenals datatype validatie.


Levert opsommingstoewijzingen

Naast andere functies kunnen we een willekeurige precisiewiskundige bibliotheek vermelden, eenvoudige configuratie van uw persoonlijke omgeving, een gebruiksvriendelijk pakketsysteem, inventarisatietoewijzingen, scoopcontrole via de epocs / scope-trefwoorden en vele andere aantrekkelijke functies.

Onder de motorkap en beschikbaarheid

Een snelle blik onder de motorkap laat ons zien dat het project is geschreven in de programmeertalen C, BASIC, Lua en ALGOL 68, wat betekent dat de syntaxis ervan overeenkomt met de syntaxis van deze projecten. Het werkt volledig in een console / terminalomgeving, wat betekent dat het geen grafische gebruikersinterface (GUI) bevat.


Wordt verzonden met een eenvoudige editor

Ondanks het feit dat de Agena-software een opdrachtregeltoepassing is, wordt deze geleverd met een eenvoudige editor grafische software, AgenaEdit genaamd, met een geïntegreerde Agena-omgeving en syntaxisaccentuering. Het is sterk geïnspireerd door een vergelijkbare editor ontwikkeld door Bill Spitzak voor de FLTK cross-platform C ++ GUI toolkit.


Werkt op Raspberry Pi

De grafische mogelijkheden van Agena worden ondersteund op de besturingssystemen GNU / Linux, Solaris, Mac OS X, Microsoft Windows, eComStation - OS / 2 en DOS. Het kan gemakkelijk worden geïmplementeerd op zowel 64-bits als 32-bits hardwareplatforms en is met succes getest op het ARM-gebaseerde Raspberry Pi-computerbord.

Wat is nieuw in deze release:

  • nieuwe functie Calculus en statistieken

Wat is nieuw in versie:

  • nieuwe functie Calculus en statistieken

Wat is nieuw in versie 2.9.4:

  • nieuwe functie Calculus en statistieken

Wat is nieuw in versie 2.8.5:

  • nieuwe functie Calculus en statistieken

Wat is nieuw in versie 2.8.2:

  • nieuwe functie Calculus en statistieken

Wat is nieuw in versie 2.6.1:

  • `stats.chauvenet` kan nu specifiek controleren op onderste of bovenste uitschieters door respectievelijk de optie `outlier = 'lower'` of' outlier = 'upper'` te gebruiken.
  • `bags.remove` heeft segmentatiefouten veroorzaakt. Dit is opgelost. Bovendien zijn alle `tassen'-functies die in C zijn geïmplementeerd, intern gewijzigd.
  • De (ongedocumenteerde) metamethoden voor `+`, `-` en` * `werkten niet als het pakket` bags` niet is aangeroepen met de `with` -functie of de` import / alias` -instructie. Dit is opgelost.

Wat is nieuw in versie 2.5.4:

  • `stats.chauvenet` kan nu specifiek op lagere of bovenste uitschieters controleren door respectievelijk de optie` outlier = 'lower'` of `outlier =' upper'` door te geven.
  • `bags.remove` heeft segmentatiefouten veroorzaakt. Dit is opgelost. Bovendien zijn alle `tassen'-functies die in C zijn geïmplementeerd, intern gewijzigd.
  • De (ongedocumenteerde) metamethoden voor `+`, `-` en` * `werkten niet als het pakket` bags` niet is aangeroepen met de `with` -functie of de` import / alias` -instructie. Dit is opgelost.

Wat is nieuw in versie 2.5.3:

  • `stats.chauvenet` kan nu specifiek controleren op onderste of bovenste uitschieters door respectievelijk de optie `outlier = 'lower'` of' outlier = 'upper'` te gebruiken.
  • `bags.remove` heeft segmentatiefouten veroorzaakt. Dit is opgelost. Bovendien zijn alle `tassen'-functies die in C zijn geïmplementeerd, intern gewijzigd.
  • De (ongedocumenteerde) metamethoden voor `+`, `-` en` * `werkten niet als het pakket` bags` niet is aangeroepen met de `with` -functie of de` import / alias` -instructie. Dit is opgelost.

Wat is nieuw in versie 2.4.2:

  • `stats.chauvenet` kan nu specifiek op lagere of bovenste uitschieters controleren door respectievelijk de optie` outlier = 'lower'` of' outlier = 'upper'` door te geven.
  • `bags.remove` heeft segmentatiefouten veroorzaakt. Dit is opgelost. Bovendien zijn alle `tassen'-functies die in C zijn geïmplementeerd, intern gewijzigd.
  • De (ongedocumenteerde) metamethoden voor `+`, `-` en` * `werkten niet als het pakket` bags` niet is aangeroepen met de `with` -functie of de` import / alias` -instructie. Dit is opgelost.

Wat is nieuw in versie 2.3.0 RC1:

  • Numerieke `for` loops ondersteunen nu het` downto'-sleutelwoord zodat u kunt aftellen zonder een verplichte negatieve `by` stapgrootte te gebruiken. In de `downto'-context moet de stapgrootte 'bij' altijd positief zijn. `from 'start en` to' stop-waarden zijn verplicht bij gebruik van het `downto'-zoekwoord.
  • De metamethoden '__finite', '__entier' en '__sqrt' worden niet langer ondersteund. In plaats daarvan zijn drie nieuwe metathoden toegevoegd voor bewerkingen op structuren: '__union' voor union-operaties, '__intersect' om kruispunten te bepalen en '__minus' voor verschillen. Zo ondersteunt het pakket `bags` nu ook deze drie bewerkingen.
  • De `` integer division-operator ondersteunde zijn metamethode niet en gebruikte in plaats daarvan de ene voor float-divisie (`/` -operator). Dit is opgelost.
  • De nieuwe functie `stats.gini` bepaalt de Gini-coëfficiënt, een maat voor (on) gelijkheid.
  • De nieuwe functie `stats.zscore` retourneert een functie die de z-score (standaardscore) van een steekproef berekent - het aantal standaardafwijkingen dat het monster boven of onder het gemiddelde van een verdeling ligt.
  • `stats.sorted` gebruikt standaard het Introsort-algoritme in plaats van Quicksort. Dit kan de rekentijd sneller versnellen in slecht-geconditioneerde situaties (waarbij QuickSort O (n ^ 2) bewerkingen nodig zou hebben), terwijl de prestaties niet worden opgeofferd in gewone situaties. Introsort gebruikt standaard Quicksort en schakelt vervolgens automatisch naar Heapsort als de recursie-diepte 2 * log (n, 2) bereikt, waarbij n het aantal elementen in een structuur is.
  • U kunt deze logica overschrijven door de nieuwe optie 'quicksort' door te geven die uitsluitend de traditionele recursieve methode Quicksort gebruikt om getallen te sorteren. Ook kan `stats.sorted` nu ook alleen het Heapsort-algoritme gebruiken als de nieuwe optie 'heapsort' wordt doorgegeven, en een niet-recursief Quicksort-algoritme bedacht door Niklaus Wirth met de nieuwe optie 'nrquicksort'.
  • De nieuwe functie `stats.meanmed` retourneert zowel het rekenkundig gemiddelde als de mediaan van een verdeling, of als alternatief het quotiënt van de gemiddelde en de mediaan, waardoor de berekeningstijden worden versneld wanneer deze waarden met ongeveer 20 procent nodig zijn.
  • Verbeterde foutmelding van de `size`-operator.

Wat is nieuw in versie 2.1.1:

  • Nieuwe functies en patches:
  • `try / catch`: expliciete specificatie van een foutvariabele direct achter het` catch`-token is nu optioneel. Als er geen foutvariabele wordt gegeven, wordt de foutmelding automatisch opgeslagen in de lokale `lasterror` variabele, en het` then` sleutelwoord moet worden weggelaten:
  • & gt; probeer dan
  • & gt; fout ('oeps!')
  • & gt; vangen
  • & gt; afdruk (LaatsteFout)
  • & gt; YRT;
  • oeps!
  • De `try / catch` -instructie werkte soms niet in procedures (niet-toegewezen foutvariabele). Dit is opgelost.
  • De nieuwe `net.wget`-functie downloadt HTML-pagina's van het web.
  • 'Skycrane.counter' met 10% afgestemd. De functie past nu optioneel de Kahan-Ozawa toe in plaats van het oorspronkelijke Kahan-sommatiealgoritme als het nieuwe derde argument de tekenreeks 'ozawa' is. De bijbehorende C-bronnen zijn gewijzigd om compilatie-optimalisatie te voorkomen, waardoor de optimalisaties ook kunnen worden geannuleerd.
  • `argerror` drukt nu de door de gebruiker gedefinieerde typenaam af van een waarde die is ontvangen in het foutbericht. Als een waarde geen door de gebruiker gedefinieerd type heeft, wordt het basistype uitgegeven.
  • De nieuwe 'a' optie om `debug.getinfo` geeft het aantal argumenten dat verwacht wordt door een procedure, dankzij Rob Hoelz 'LuaPowerPatch.
  • Verbeterd `index buiten bereik 'foutbericht voor strings.
  • Gewijzigde de `stats.agn`,` linalg.agn`, `library.agn`, en` ansi.agn` bestanden met betrekking tot hun foutafhandeling.

Wat is nieuw in versie 2.1.0:

  • Voor een nieuw soort foutafhandeling is de nieuwe `try / catch` -instructie geïntroduceerd. Het is bedacht en geschreven door Hu Qiwei voor Lua 5.1 in 2008.
  • Over het algemeen kunnen uitspraken waarbij een uitzondering verwacht mag worden, in een `try`-clausule worden geplaatst. Als er een fout optreedt, gegenereerd door een expliciete aanroep van de `error` -functie of een andere uitdrukking, functie of verklaring, springt de besturing onmiddellijk naar de corresponderende` catch'-clausule, indien aanwezig of tot het einde van de `try / yrt `statement als er geen` catch`-clausule is gegeven, waarbij eventuele andere opeenvolgende statements in de `try`-clausule worden genegeerd.
  • De `protect / lasterror` foutmeldingsfaciliteiten worden nog steeds en zullen altijd worden ondersteund. De nieuwe besturingsinstructie werkt ook perfect met de `break`,` skip`, `redo` en` return` statements.
  • De nieuwe `herhaal'-instructie start de huidige iteratie van een` voor / naar` en `voor / in`-lus vanaf het begin opnieuw.
  • De nieuwe `recip`-operator retourneert de inverse van een getal x. Het komt overeen met de uitdrukking 1 / x, maar sneller.
  • De nieuwe `stats.ema` -functie berekent het exponentiële voortschrijdend gemiddelde van een verdeling. De nieuwe functie `stats.gema` retourneert een iteratorfunctie die het respectieve exponentiële voortschrijdend gemiddelde van een verdeling retourneert.
  • `*%`, `+%` en `-%` return `undefined` in plaats van een correct resultaat als hun rechter operand nul was. Dit is opgelost.
  • Er is een foutmelding gerepareerd in `net.survey`.
  • Verbeterde foutmeldingen voor indexering van paren en reeksen buiten het bereik
  • In de ANSI-, Solaris- en DOS-versies is de `int`-operator afgesteld.
  • De nieuwe API-functie `agn_arraytoseq` converteert een numerieke array in een reeks en duwt deze nieuwe reeks boven op de stapel.
  • De handleiding bijgewerkt.

Wat is nieuw in versie 2.1.0 RC:

  • De nieuwe `herhaalde'-instructie start de huidige iteratie van een` voor / naar` en `voor / in`-lus vanaf het begin opnieuw. Bijvoorbeeld:
  • & gt; vlag: = waar; & Gt; voor j in [10, 11, 12] do & gt; print ('voor', j, vlag); & Gt; indien vlag en j = 11 dan & gt; duidelijke vlag; & Gt; afdrukken ('- & gt;', j, vlag, 'terugspringen') & gt; opnieuw & gt; fi; & Gt; afdrukken ('na', j, markering) & gt; tot j & gt; 12; vóór 10 waar na 10 waar vóór 11 waar - & gt; 11 false jump back before 11 false na 11 false before 12 false after 12 false
  • De nieuwe `recip`-operator retourneert de inverse van een getal x. Het komt overeen met de uitdrukking 1 / x, maar sneller.
  • De nieuwe `stats.ema` -functie berekent het exponentiële voortschrijdend gemiddelde van een verdeling. De nieuwe functie `stats.gema` retourneert een iteratorfunctie die het respectieve exponentiële voortschrijdend gemiddelde van een verdeling retourneert. Kijk voor het gebruik in het bronbestand src / stats.c, C-functies * ema.
  • `*%`, `+%` en `-%` return `undefined` in plaats van een correct resultaat als hun rechter operand nul was. Dit is opgelost.
  • Er is een foutmelding gerepareerd in `net.survey`.
  • De nieuwe API-functie `agn_arraytoseq` converteert een numerieke array in een reeks en duwt deze nieuwe reeks boven op de stapel.

Wat is nieuw in versie 2.0.0:

  • Nieuwe verklaringen en functies:
  • Agena 2.0 is naar beneden compatibel met Agena 1.12, behalve dat de tokens `import`,` alias`, `until` en` onsuccess` nu trefwoorden zijn en niet langer als variabelen kunnen worden gebruikt. Momenteel zijn er Solaris-, Debian- (x86, PowerPC, Raspberry Pi), Windows-, Mac- en DOS-installatieprogramma's beschikbaar voor 2.0, inclusief een bijgewerkte primer en referentie waarin alle nieuwe functies in detail worden uitgelegd.
  • De nieuwe lusvarianten `for / as` en` for / until` controleren een voorwaarde aan het einde van de huidige iteratie en beginnen de volgende iteratie of verlaten de lus. Dit werkt met zowel `voor / naar`, als` voor / in` loops. Beide varianten voeren ten minste één keer een lus uit totdat de opgegeven voorwaarde wordt gecontroleerd.
  • Voorbeelden:
  • & gt; voor i tot 5 doen
  • & gt; afdruk (i)
  • & gt; als ik & lt; 3
  • & gt; voor i in [1, 2, 3, 4, 5] doen
  • & gt; afdruk (i)
  • & gt; tot ik & gt; = 3
  • De nieuwe `do / until` lus itereert totdat aan een bepaalde voorwaarde is voldaan:
  • & gt; c: = 0;
  • & gt; do
  • & gt; inc c;
  • & gt; afdruk (c)
  • & gt; tot c & gt; = 3
  • In numerieke `voor` lussen wordt de` to` -clausule mogelijk niet langer gegeven. In plaats daarvan wordt de lus herhaald als de `to` -clausule wordt weggelaten totdat het grootste nummer dat kan worden weergegeven op uw platform, in C HUGE_VAL, is bereikt:
  • & gt; voor ik doe
  • & gt; afdruk (i)
  • & gt; od
  • De nieuwe `onsuccess`-clausule in` if` en `case` -instructies voert een blok uit als ten minste een van de voorwaarden waar is. Voorbeelden:
  • & gt; vlag: = false;
  • & gt; als 1 = 0 en
  • & gt; afdruk (0)
  • & gt; elif 1 = 1 dan
  • & gt; letter (1)
  • & gt; onsuccess
  • & gt; flag: = true
  • & gt; anders
  • & gt; druk (-1)
  • & gt; fi;
  • & gt; afdruk (vlag);
  • true
  • & gt; vlag: = false;
  • & gt; als 1 = 0 en
  • & gt; afdruk (0)
  • & gt; elif 1 = 0 then
  • & gt; letter (1)
  • & gt; onsuccess
  • & gt; flag: = true
  • & gt; anders
  • & gt; druk (-1)
  • & gt; fi;
  • & gt; afdruk (vlag);
  • false
  • & gt; vlag: = false;
  • & gt; a: = 2;
  • & gt; case a
  • & gt; van 1 dan
  • & gt; letter (1)
  • & gt; van 2 dan
  • & gt; afdruk (2)
  • & gt; onsuccess
  • & gt; flag: = true
  • & gt; anders
  • & gt; druk (-1)
  • & gt; esac;
  • & gt; afdruk (vlag);
  • true
  • Met de nieuwe `import`-instructie kunnen één of meer bibliotheken worden geïmporteerd zonder dat hun namen in aanhalingstekens hoeven te worden gezet, bijvoorbeeld "import calc, stats" is gelijk aan "readlib ('calc', 'stats')".
  • De `alias` -optie voor de` import`-instructie wijst een of meer korte namen toe aan de bibliotheekinstellingen die zijn geïnitialiseerd, bijvoorbeeld "import calc alias xpdiff" is gelijk aan "with ('calc', 'xpdiff')" en "import calc alias" is gelijk aan "with ('calc')".
  • Met de nieuwe `..`-operator kunnen tabellen worden geïndexeerd, ook als de operand aan de linkerzijde 'null' is. In dit geval wordt `null` geretourneerd en wordt geen` poging om index ... (een nulwaarde) `fout te geven uitgegeven. Het is vergelijkbaar met de functie `getentry` maar is drie keer sneller. Voorbeelden:
  • & gt; maak een tabel a;
  • & gt; a.b:
  • null
  • & gt; a.b.c:
  • Fout in stdin, op regel 1:
  • poging om veld `b` (een null-waarde) te indexeren
  • & gt; a..b..c:
  • null
  • & gt; maak een tabel a;
  • & gt; a [1]:
  • null
  • & gt; a [1] [2]:
  • Fout in stdin, op regel 1:
  • poging om veld `?` te indexeren (een null-waarde)
  • & gt; a .. [1] .. [2]:
  • null
  • De nieuwe functie `drem` evalueert de rest van een gehele deling x / y, maar in tegenstelling tot` irem` rondt het interne quotiënt x / y af op het dichtstbijzijnde gehele getal in plaats van op nul.
  • De nieuwe functie `skycrane.todate` retourneert de huidige datum en tijd als een opgemaakte string.
  • De nieuwe functie `io.truncate` kapt een bestand af op de huidige positie van het bestand.
  • De nieuwe functie `io.move` verandert de positie van het bestand een bepaald aantal tekens naar links of rechts.
  • De nieuwe functie `io.filesize` retourneert het formaat van een bestand.
  • `readlib` accepteert nu alleen strings als zijn argumenten. Nummers worden niet langer toegestaan.
  • Als het laatste argument om `with` de Boolean` false` is, schrijft de functie geen toegewezen korte namen aan de console (stdout).
  • `strings.fields` accepteert nu ook een reeks indexnummers. Het accepteert de index `0 'echter niet langer.
  • Het Raspberry Pi Wheezy Debian-installatieprogramma bevat nu het `gdi` grafische pakket.
  • Het `change.log` bestand wordt nu correct weergegeven in Windows.

Wat is nieuw in versie 2.0.0 RC3:

  • De nieuwe lusvarianten `for / as` en` for / until` controleren een voorwaarde aan het einde van de huidige iteratie en beginnen de volgende iteratie of verlaten de lus. Dit werkt met zowel voor / tot, als voor / in loops.

Wat is nieuw in versie 2.0.0 RC2:

  • De nieuwe lusvarianten `for / as` en` for / until` controleren een voorwaarde aan het einde van de huidige iteratie en beginnen de volgende iteratie of laten een lus na. Dit werkt met zowel voor / tot, als voor / in loops.

Wat is nieuw in versie 2.0.0 RC1:

  • Met de nieuwe `import`-instructie kunnen één of meer bibliotheken worden geïmporteerd zonder dat hun namen in aanhalingstekens hoeven te worden gezet, bijvoorbeeld "import calc, stats" is gelijk aan "readlib ('calc', 'stats')".
  • De `alias` -optie voor de` import`-instructie wijst een of meer korte namen toe aan de bibliotheekinstellingen die zijn geïnitialiseerd, bijvoorbeeld "import calc alias xpdiff" is gelijk aan "with ('calc', 'xpdiff')" en "import calc alias" is gelijk aan "with ('calc')".
  • Met de nieuwe `..`-operator kunnen tabellen worden geïndexeerd, ook als de operand aan de linkerzijde 'null' is. In dit geval wordt `null` geretourneerd en wordt geen` poging om index ... (een nulwaarde) `fout te geven uitgegeven. Het is vergelijkbaar met de functie `getentry` maar is drie keer sneller.

Wat is nieuw in versie 1.12.9:

  • De nieuwe functies `io.getclip` en` io.putclip` wisselen teksten uit tussen Agena en het klembord (alleen Windows).
  • `stats.prange` is herschreven in C en is tot 60% sneller geworden.
  • `os.cpuinfo` retourneert nu correcte en meer informatie over ARM-gebaseerde systemen.
  • In DOS- en UNIX-systemen, waaronder Mac OS X en alleen in het complexe domein, retourneerde de machtsverheffing van de basis 0 naar de exponent 0 + r * I, met r een niet-nul float, `undefined` in plaats van 0. Dit is opgelost.
  • In DOS- en UNIX-systemen, waaronder Mac OS X en alleen in het complexe domein, heeft de machtsverheffing van de basis 0 tot de exponent r + 0 * I, met een positieve float, `undefined` geretourneerd in plaats van 0. Dit heeft vastgesteld.
  • `stats.obcount` en` stats.obpart` kunnen geen waarden opnemen in het meest rechtse subinterval. Dit is opgelost.
  • `calc.nakspline`,` calc.naksplinecoeffs`, `calc_clampedspline` en` calc_clampedsplinecoeffs` lokten segmentatiefouten uit als deze werden aangeroepen met een structuur die te weinig punten bevatte, d.w.z. paren. Dit is opgelost door in deze gevallen `fail 'terug te geven.
  • Mogelijke deallocatiefouten in het geheugen zijn verwijderd uit `calc.neville`,` calc.interp`, `calc.newtoncoeffs`,` calc.naksplinecoeffs`, `calc.clampedsplinecoeffs`,` calc.nakspline`, en `calc.clampedspline`.
  • De nieuwe API-functie `agn_checkinteger` controleert of een argument een getal en een geheel getal is en anders dan` luaL_checkinteger` een fout oplevert.

Wat is nieuw in versie 1.9.0:

  • De nieuwe functie `alternate` retourneert het eerste argument als het tweede argument` null` is. Anders geeft het zijn tweede argument terug.
  • De schakeloptie -b naar het uitvoerbare bestand van Agena is verwijderd omdat de uitvoer ervan hetzelfde was als de optie -v.
  • De Windows- en UNIX / Mac-versies van `strings.utf8size` bevatten een potentieel geheugenlek; dit is veranderd.
  • Alle binaire DLL's / SO's van de plusbibliotheken bevatten niet langer ongebruikte code, waardoor hun grootten met maximaal 10 procent worden verkleind, afhankelijk van het besturingssysteem. De makefile en de bronnen die voorheen ongebruikte header-bestanden importeerden, zijn gewijzigd. Dit vermindert bijvoorbeeld de grootte van de Windows-binaries met 55 kBytes.
  • De testsuite uitgebreid.
  • De schemabestanden bijgewerkt.

Wat is nieuw in versie 1.6.0:

  • Nieuwe functies en functies:
  • De nieuwe functie `checktype` bepaalt of alle waarden in een structuur van een bepaald type zijn.
  • De nieuwe functie `isint` controleert of alle argumenten gehele getallen zijn.
  • De nieuwe functie `strings.dleven` retourneert de Damerau-Levenshtein-afstand van twee strings.
  • De nieuwe functie `stats.ad` bepaalt de absolute afwijking van alle waarden in een structuur.
  • De nieuwe functie `stats.countentries` telt het aantal voorkomen van alle elementen in een structuur.
  • De nieuwe functie `stats.deltalist` retourneert een structuur van de delta's van de respectieve naburige elementen.
  • De nieuwe functie `stats.gmean` retourneert het geometrische gemiddelde van een structuur.
  • De nieuwe functie `stats.hmean` retourneert het harmonische gemiddelde van een structuur.
  • De nieuwe functie `stats.ios` retourneert een beproefde indicator voor de stabiliteit in een distributie.
  • De nieuwe functie `stats.iqr` retourneert het interkwartielbereik.
  • De nieuwe functie `stats.issorted` controleert of alle getallen in een structuur in oplopende volgorde zijn gesorteerd.
  • De nieuwe functie `stats.moment` berekent het moment van de gegeven gegevens over een herkomst.
  • De nieuwe functie `stats.numbperm` retourneert het aantal permutaties.
  • De nieuwe functie `stats.percentile` bepaalt percentielen.
  • De nieuwe functie `stats.skewness` retourneert de skewness, een indicator van de symmetrie van een kansverdeling.
  • De nieuwe functie `stats.sumdata` vat alle bevoegdheden van een structuur over een herkomst samen.
  • `stats.tovals` is nu een C-bibliotheekfunctie en is dus tot 40 procent sneller.
  • Met een lege tabel of reeks, `stats.qmean`,` stats.mean`, `stats.gmean`,` stats.sd`, `stats.median`,
  • `stats.var` retourneren nu mislukt.
  • De maximale lengte voor een invoerregel in de zelfstandige tolk is gewijzigd van 512 naar 2048 tekens.
  • De nieuwe omgevingsvariabele `environ.maxpathlength` slaat het maximale aantal tekens voor een bestandspad op (met uitzondering van het karakter van C).
  • De nieuwe omgevingsvariabelen `environ.minnumber` en` environ.maxnumber` bevatten de minimum- en maximumwaarde die een Agena-nummer (momenteel een ANSI-C-dubbel) kan opslaan.
  • De nieuwe omgevingsvariabele `environ.umaxlong` bevat de maximale integrale waarde van het C-type unsigned long op 32 + bit-systemen en unsigned long op 16bit-machines.
  • C API:
  • 100% compatibiliteit van de Agena C API met Lua's C API is hersteld door Lua's * dump-functies te introduceren. U kunt nu dus functies in een binaire weergave opslaan, bijvoorbeeld door `strings.dump` of lua_dump op het C-niveau te gebruiken.
  • Introduceerde de nieuwe `agnL_optboolean`-functie om te controleren op optionele Booleaanse argumenten en deze terug te sturen in geval van succes.
  • Bugfixes:
  • `environ.globals` is altijd gestopt met een fout, dit is opgelost.
  • `aannemen 'is onwaar geretourneerd waarbij beide argumenten zijn of zijn geëvalueerd naar' undefined '. Het geeft nu in dit geval waar terug.
  • Agena is gecrasht bij het passeren van een lege tabel en een scheidingsteken voor 'join' - dit is opgelost.
  • De `kleur` optie wordt niet langer genegeerd door` gdi.plot`.
  • Bij tabellen heeft `stats.minmax` voor het minimum een ​​verkeerde waarde geretourneerd. Het werkt nu correct.
  • Met een lege tabel retourneert `stats.median` 0, nu retourneert het mislukken.
  • In tegenstelling tot de documentatie retourneerde `strings.isending` 'waar' met beide tekenreeksen gelijk. Dit is opgelost.
  • `run` retourneerde` kon bestand niet openen` als een bestaand Agena-script een syntaxisfout bevatte. Dit is opgelost door de functie volledig te herschrijven.
  • Lua 5.1.4 patch 9 toegevoegd: "Verkeerde code generatie voor sommige specifieke [bijv. complex] boolean expressies."
  • Lua 5.1.4 patch 11 toegevoegd: "Parser kan een prototype verzamelen tijdens het bouwen."
  • * Info: toevoeging van Lua 5.1.4 patch 10, "[__write / __ nieuw] index metamethod werkt mogelijk niet als metatable zijn eigen metatable is", voor Agena is dit niet nodig, want Agena werkt in dit geval al correct.
  • Het ongebruikte sleutelwoord `default`.
  • verwijderd
  • Enige verharding van functies en functies.
  • Verbeteringen:
  • Een _experimental_-versie van `io.anykey` toegevoegd aan de Mac-versie. Echter, in ieder geval op Lion, wordt de ingedrukte toets soms weergegeven op de shell.
  • `utils.readcsv` kan nu optioneel alle waarden in een CSV-bestand in een platte reeks retourneren.
  • Het `clock`-pakket ondersteunt nu de divisie-operator` / `door het aan de metatable van de` tm`-operator toe te voegen.
  • Het gedrag van `met` is gewijzigd omdat het geen korte namen voor veel bibliotheekfuncties kon toewijzen: als er functies in de .aux-tabel zijn geplaatst, wijs dan geen korte namen toe voor deze functienamen; anders toewijzen van korte namen voor _all_ andere pakketfuncties. Dus: `package.register` om alle bibliotheekfuncties te registreren voor` met` om korte namen toe te wijzen, is niet langer nodig. Het wordt gedeprecieerd in een van de volgende releases.
  • De testsuite verbeterd
  • Manual:
  • De handleiding en de index verbeterd.
  • Consistentie:
  • Voor alle volgende hernamingen worden de volgende oude variabelenamen nog steeds ondersteund.
  • `environ.MinLong` is hernoemd naar` environ.minlong`.
  • `environ.MaxLong` is hernoemd naar` environ.maxlong`.
  • `environ.BufferSize` is hernoemd naar` environ.buffersize`.
  • `environ.PathSep` is hernoemd naar` environ.pathsep`.
  • `environ.More` has is hernoemd naar` environ.more`.
  • `environ.WithProtected` is hernoemd naar` environ.withprotected`.
  • `environ.Os` is hernoemd naar` environ.os`.
  • `environ.Cpu` is hernoemd naar` environ.cpu`.
  • `environ.Release` is hernoemd naar` environ.release`.
  • `environ.GdiDefaultOptions` is hernoemd naar` environ.gdidefaultoptions`.
  • In Windows retourneren `os.login` en` os.computername` nu 'mislukt' zoals de UNIX- of OS / 2-versies doen.
  • De `-DCOMPAT13`-switch is definitief verwijderd voor het compileren van een Agena 1.3.x complient-versie.
  • Overig:
  • Verouderde `calc.fseq` is verwijderd. Gebruik in plaats daarvan `nseq`.

Wat is nieuw in versie 1.5.1:

  • Patched `strings.fields` die helemaal niet werkte. Het is ook geconverteerd naar een C-bibliotheekfunctie en is dus 2,6 keer sneller.
  • `strings.words` accepteert nu een derde argument, indien ingesteld op` true`, worden volgende scheidingstekens genegeerd.
  • Verwijderd een mogelijk beveiligingslek van `io.write` en` io.writeline` en verbeterde de foutberichten.
  • Patched `binio.readchar` om problemen met bestanden groter dan 2 GBytes te voorkomen.
  • Gecorrigeerde foutmeldingen van functies `xbase.purge`,` xbase.readvalue`, `xbase.purge`,` ads.getvalues`, `binio.readshortstring`,` os.computername`, `os.login`, `os.fattrib`,` environ.kernel`, `package.register`.
  • Terabytes kunnen nu worden ingevoerd met de notatie T, waar is een geheel getal en T is het teken `T`. Evenzo geeft g miljarden en t biljoen aan. Zie pagina 48 van de handleiding voor meer informatie.
  • De handleiding bijgewerkt.
  • Meestal zijn alle achterwaartse compatibiliteitswissels in de C-broncode verwijderd om redenen van codesharing. Dit is alleen van invloed op degenen die proberen Agena 1.5 of hoger opnieuw te compileren met volledige achterwaartse compatibiliteit met Agena 1.3 en 1.4, en met de meeste achterwaartse compatibiliteit met Lua 5.0 (behalve de oude Lua 5.0-bibliotheekafhandeling).

Wat is nieuw in versie 1.5.0:

  • `map` kan nu ook strings verwerken die als het tweede argument worden gegeven. De respectieve functie en de bijbehorende argumenten worden opeenvolgend toegepast op elk teken van links naar rechts en het resultaat wordt in een reeks geretourneerd.
  • `run`: als je code uit bestanden met een 'agn'-achtervoegsel wilt laden en uitvoeren, hoef je het achtervoegsel niet langer in het argument op te geven. Dus `run 'test'` en` run' test.agn'` zijn nu hetzelfde.
  • Het `is`-sleutelwoord is nu verplicht om procedures te definiëren. (Gebruik bij GCC de schakeloptie -DCOMPAT14 om een ​​versie van Agena te compileren waarbij het sleutelwoord `is` nog steeds optioneel is.)
  • De `try` -instructie is verouderd en wordt niet langer ondersteund. (Gebruik bij GCC de schakeloptie -DCOMPAT14 om een ​​versie van Agena te compileren die nog steeds deze verklaring bevat.)
  • De volgende `utils`-functies zijn verwijderd:` arraysize`, `getarray`,` getwholearray`, `newarray`,` searcharray`, `setarray`. Voor achterwaartse compatibiliteit zijn ze toegevoegd aan het bestand lib / compat.agn. (Gebruik bij GCC de schakeloptie -DCOMPAT14 om een ​​versie van Agena te compileren die nog steeds de oorspronkelijke utils-functies ondersteunt.)
  • `utils.singlesubs` is volledig herschreven. Er wordt nu een reeks getallen als het tweede argument verwacht in plaats van de vorige userata-structuur met stringarray. Het is 35% langzamer dan de vorige versie, maar het verwijderen van de stringarray-structuur was belangrijker.
  • `strings.include` crashte indien aangeroepen met 0 als het tweede argument. Dit is opgelost.
  • paste de patch van Michael G. Schwern op 10 mei 2011 toe op zijn `32-bit-Year 2038-Fix` datum-hulpfuncties die worden gebruikt door de pakketten` os` en `xbase` (` Make mktime64 () corrigeert de binnenkomende tm struct zoals ISO C vereist.)
  • Optimalisatie van interne code: enkele initialisatie van bibliotheken en laden van bestanden C-functies hebben de stapel gebruikt om pad- en bestandsnaamstrings te maken. De nieuwe C aux-functie `concat` geschreven door Solar Designer wordt nu in plaats daarvan in veel gevallen gebruikt.
  • De Agena C API is nu 100% compatibel met de Lua C API om C Lua-pakketten naar Agena te porten.
  • De volgende functies zijn dus hernoemd: lua_isnumber - & gt; agn_isnumber, lua_isstring - & gt; agn_isstring, luaL_optnumber - & gt; agnL_optnumber, luaL_checknumber - & gt; agnL_checknummer, luaL_optnumber - & gt; agnL_optnummer, luaL_checkinteger - & gt; agnL_checkinteger, luaL_optinteger - & gt; agnL_optinteger.
  • De volgende macro's zijn hernoemd: luaL_checkint - & gt; agnL_checkint, luaL_optint - & gt; agnL_optint.
  • In tegenstelling tot de eerdere Agena-implementatie, retourneert lua_tonumber nu 0 zoals in Lua in het geval dat een niet-nummer is doorgegeven, in plaats van HUGE_VAL te retourneren.
  • lua_setglobal2 is verwijderd. Gebruik in plaats hiervan lua_pushvalue en lua_setglobal.

Wat is nieuw in versie 1.4.2:

  • Als in de parameterlijst van een procedure door de gebruiker gedefinieerde typen zijn opgegeven, in
  • procedureaanroepen er zijn geen fouten uitgegeven en de procedure is in plaats daarvan uitgevoerd in de volgende gevallen:
  • a) een tabel, set, reeks, paar of procedure - zonder dat deze door de gebruiker is gedefinieerd
  • type - is geslaagd,
  • b) er is geen enkele waarde doorgegeven voor de betreffende parameter.

Wat is nieuw in versie 1.4.1:

  • Korte namen voor `stats.quartiles` en` stats.mode` konden niet worden toegewezen door de `met` functie. Dit is opgelost.
  • Ten onrechte kan `met` geen korte naam toewijzen voor` gdi.settriangle`. Dit is gewijzigd.
  • Foutafhandeling van `calc.polygen` is verbeterd.
  • Verbeterde foutmelding van `fractals.draw` voor ontbrekende FRACTINT mapbestanden.
  • Afgekeurde `strings.rseek`-functie verwijderd. Voor achterwaartse compatibiliteit is `strings.seek` toegevoegd aan het bestand lib / compat.agn.
  • De schakeloptie -d toegevoegd om foutopsporingsinformatie af te drukken tijdens het opstarten van de interpreter.
  • De Windows-versie van Agena is nu gecompileerd met GCC 4.5.2.
  • Bijgewerkte taalschema-bestanden.
  • De handleiding is bijgewerkt.

Wat is nieuw in versie 1.4.0:

  • Semantische wijzigingen:
  • Loopbesturingsvariabelen van numerieke `voor / naar` lussen worden nu automatisch lokaal naar hun omringende blokken in plaats van hun (binnenste) lusstructuren. Als een lokale variabele met dezelfde naam als de regelingsvariabele van de lus is gedeclareerd en toegewezen vóór
  • het uitvoeren van een numerieke lus, wordt deze overschreven door de laatste iteratiewaarde van de lus. Als zodanig wordt de `externe` schakelaar in numerieke` voor` lussen niet langer geaccepteerd. (Gebruik bij GCC de schakeloptie -DCOMPAT13 om een ​​versie van Agena te compileren die nog steeds wordt herkend maar het `externe` zoekwoord negeert.)
  • Met de constante `fail`,` not` teruggegeven `true`, maar met` fail` toegewezen aan een variabele, `niet` geretourneerd false. Dit is gewijzigd, d.w.z. 'a: = mislukt; niet (a) 'geeft nu `waar`.
  • `stats.median` retourneert nu` fail` in plaats van 0 als de opgegeven structuur leeg is.
  • `utils.readcsv`: Als een enkele witte spatie wordt doorgegeven met de optie` delim` en als de optie `ignorespaces` niet is opgegeven, worden witruimten niet automatisch meer verwijderd voordat elke regel van het bestand wordt opgesplitst in zijn woorden.
  • De functie heeft ook twee nieuwe opties: `header` die de eerste regel in een bestand markeert, en` output` waarmee de inhoud van het bestand in een woordenboek kan worden opgeslagen met de veldnamen die worden gedefinieerd door de bestandskop.
  • De `$` substringnotatie wordt niet langer ondersteund. (Gebruik bij GCC de schakeloptie-DCOMPAT13 om een ​​versie van Agena te compileren die nog steeds de `$` -operator ondersteunt.)
  • Extensies
  • Oneindige do / od-lussen zijn toegevoegd. Dit soort lus itereert oneindig en kan alleen worden onderbroken met de `break` of` return` statements. Het zijn syntactische suikers voor `while true do ... od` loops.
  • Bij tabellen werkte `stats.minmax` voorheen alleen met arrays. Dit is veranderd, d.w.z. waarden met bijbehorende niet-positieve sleutels (bijvoorbeeld strings, niet-positieve gehele getallen, negatieve en positieve drijvers, etc.) worden nu correct herkend in de evaluatie.
  • `stats.mean`,` stats.qmean`, `stats.sd` en` stats.var` verwerken nu ook reeksen.
  • De nieuwe `stats.mode` functie retourneert alle waarden in een reeks of tabel met het grootste aantal occurrence, d.w.z. de hoogste frequentie.
  • De nieuwe functie `stats.quartiles` retourneert het eerste, tweede en derde kwartiel van een tabel of reeks met de naam _sorted.
  • Eerder zijn niet-gedocumenteerde kenmerken van `linalg.matrix` toegevoegd aan de handleiding en is de foutafhandeling verbeterd.
  • Verbeterde foutafhandeling van `linalg.hilbert`.
  • `gdi.setinfo` accepteert nu de` square` optie. Als `square = false`, dan hebben de x- en y-assen niet dezelfde schaal op plots die zijn gemaakt met` gdi.plot`.
  • De `gdi.plot` functie om afbeeldingen te tekenen is helaas niet gedocumenteerd. Dit is gewijzigd.
  • `gdi.plot` accepteert twee nieuwe opties: de 'x' optie specificeert het horizontale bereik waarover een plot wordt weergegeven, en de 'y' optie specificeert het verticale bereik.
  • Als een PLOT-structuur wordt doorgegeven aan `gdi.plot` die alleen POINT's, LINES, RECTANGLES, DRIEHOEKEN, CIRCLE's en ELLIPSE's bevat (inclusief hun * FILLED-varianten), bepaalt` gdi.plot 'automatisch de schalen (` gdi.setinfo` hoeft niet noodzakelijkerwijs te worden aangeroepen).
  • De OOP-functies die zijn overgenomen van Lua zijn nu gedocumenteerd in Bijlage A9. De auteur beveelt geen objectgeoriënteerd programmeren aan.
  • Tuning:
  • Tuned `filled`-operator met ongeveer 3%.
  • Tweaked `in`,` join`, `sadd`,` qsadd`, `replace`,` copy`, `unique`, en Cantor-operatoren op tabellen en zet een beetje.
  • Met tabellen zijn de operatoren `top` en` bottom` nu ongeveer 5% sneller.
  • De operator `size` is ten minste 8% sneller als een tabel geen null's bevat.
  • `linalg.mzip`,` linalg.mmul` en `linalg.transpose` zijn elk met ongeveer 3% getuned.
  • Numeriek voor / naar lussen met fractionele stapgroottes zijn geoptimaliseerd door het aantal van hun controlevariabelen met de helft te verminderen. Dit heeft echter geen snelheidsverhoging bereikt.
  • Patches:
  • Patched `linalg.ludecomp` om enkelvoudige matrices te detecteren. Ook kan de functie nu automatisch de volgorde van de gegeven matrix bepalen.
  • In tegenstelling tot de handleiding heeft `gdi.plot 'niet automatisch het horizontale en verticale bereik bepaald. Dit is opgelost.
  • `gdi.plot` negeert niet langer de` square` optie ingesteld door `gdi.setinfo`.
  • `gdi.setinfo` heeft instellingen toegevoegd aan INFO-structuren, zelfs als deze al aanwezig waren. Dit is gewijzigd.
  • Cirkels zijn niet correct geplot op `gdi.plot`. Dit is gewijzigd.
  • De functie `gdi.plot` negeerde in de meeste gevallen de individuele inkleuring van geometrische objecten. Dit is gewijzigd.
  • Het gdi-pakket heeft geen korte namen toegewezen gekregen voor `gdi.settriangle`,` gdi.settrianglefilled`, `gdi.setrectangle` en` gdi.setrectanglefilled`. Dit is gewijzigd.
  • Het fractals-pakket heeft geen korte namen toegewezen voor functies van het door de gebruiker gedefinieerde type 'esctime'. Dit is veranderd. Gecorrigeerd foutbericht van 'fractals.draw' als positioneringsargumenten geen getallen waren.
  • Overig:
  • De functionaliteit van `calc.fseq` is samengevoegd in` nseq`. Voor achterwaartse compatibiliteit maakt `calc.fseq` nog steeds deel uit van het calc-pakket, maar de functie verwijst eigenlijk naar de` nseq`-implementatie.
  • De variabele `environ.FractScreenUpdates` is toegevoegd aan het` fractals-pakket` om het aantal verticale lijnen (een niet-negatief geheel getal) aan te duiden waarna een fractal in een venster wordt bijgewerkt. De `environ.FractOptimised` variabele is verouderd.
  • Hulpgdi-functies zijn gehergroepeerd.

Wat is nieuw in versie 1.3.3:

  • Patches naar `instr`:
  • In de regex-modus heeft de operator een verkeerd resultaat geretourneerd als een startpositie is gegeven.
  • In de gewone zoekmodus retourneerde de operator een fout buiten het bereik als er geen startpositie is gegeven.
  • Als er geen overeenkomst is gevonden, behalve in de modus voor omgekeerd zoeken, is het eerste argument geretourneerd in plaats van `null`.
  • Gecorrigeerd foutbericht van de `create`-instructie met betrekking tot reeksen.
  • In AgenaEdit werden structuren niet volledig afgedrukt als de eerste structuur een __tostring-metamethode bevatte. Dit is gewijzigd.

Wat is nieuw in versie 1.3.2:

  • Deze release bevat bugfixes, uitbreidingen en een verbeterde handleiding:
  • `dimensie` heeft interessante resultaten opgeleverd als een structuur is doorgegeven als de
  • initialiser. Dit is gewijzigd: `dimensie 'maakt nu onafhankelijke kopieën van de
  • structuur bij het initialiseren van de tabel.
  • De functionaliteit van `strings.rseek` is toegevoegd aan de` instr`-operator.
  • Aldus is `strings.rseek` gedeprecieerd. Voor achterwaartse compatibiliteit,
  • `strings.rseek` is toegevoegd aan het bestand lib / compat.agn.
  • `strings.hits` ondersteunt nu reguliere expressies en captures. Dit gedrag
  • kan worden uitgeschakeld door een booleaanscript als een derde argument door te geven.
  • `strings.isabbrev` en` strings.isending` gebruiken nu automatisch een eenvoudige zoekopdracht
  • als er geen reguliere expressies of captures zijn doorgegeven als onderdeel van de tweede
  • argument.
  • Tweaked `strings.ismagic` en` strings.isfloat`.
  • De `log` -functie is nu 13% sneller.
  • Als u meer dan één structuur uitvoert met slechts één aanroep om `af te drukken`,
  • structuren zijn niet volledig afgedrukt als de eerste structuur een __tostring bevat
  • metamethod. Dit is gewijzigd.
  • Categorie-indeling van functies toegevoegd aan hoofdstuk 7 om het starten van nieuwe
  • te vergemakkelijken
  • gebruikers.

Wat is nieuw in versie 1.3.1:

  • Er zijn problemen geweest met geneste aanroepen naar de volgende binaire operatoren: `xor`,` atendof`, `& amp; & amp;`, `||`, `^^`, `::` en `: - `, en dus ook met de mooie printer die stopt met een fout bij het afdrukken van geneste structuren. Dit is opgelost.
  • Vier fixes voor `os.list`: als de 'r' optie is doorgegeven, is de huidige werkmap ten onrechte gewijzigd na het voltooien van het gesprek.
  • Als 'r' niet is doorgegeven als laatste argument, heeft de functie een fout gegenereerd.
  • `null` is niet geaccepteerd als eerste argument om de huidige werkdirectory aan te duiden.
  • In Windows 7 werkte het afdrukken van de inhoud van de hoofdmap niet, d.w.z. os.list ('c:') retourneerde de inhoud van de huidige werkdirectory.
  • Wanneer een tekenreeks is geïndexeerd met een niet-nummer, bijvoorbeeld "str [null]", Agena heeft `null` geretourneerd. Nu is er een fout opgetreden.
  • Als library.agn niet is gevonden, is het verkeerde pad tweemaal in de waarschuwing uitgevoerd. Dit is gewijzigd.

Wat is nieuw in versie 1.2:

  • De substringoperator is opnieuw ontworpen maar de oude versie blijft beschikbaar tot Agena 2.0: de nieuwe is: `str [van links naar rechts]`, de oude is: `str $ (links, rechts)` . Een voorbeeld: before: `str: = 'string'; afdrukken (str $ (2, 3)) `- & gt; 'tr' nu: `str: = 'string'; print (str [2 tot 3]) `- & gt; 'Tr'
  • U kunt nu sublijsten van tabelreeksen en -reeksen bepalen met de nieuwe syntaxis die hierboven is genoemd: `s [van links naar rechts]`. Een voorbeeld: nu: `a: = [10, 20, 30, 40]; afdrukken (a [2 tot 3]) `- & gt; [20, 30] nu: `a: = seq (10, 20, 30, 40); afdrukken (a [2 tot 3]) `- & gt; seq (20, 30)
  • Met de functie `ops` kunnen nu de terug te geven waarden worden opgegeven door een reeks van hun indexposities als eerste argument door te geven, bijvoorbeeld ops (seq (1, -1), 10, 20,
  • 30).
  • De nieuwe functie `strings.include` voegt een tekenreeks in een string in
  • op een bepaalde positie.
  • De volgende functies geven nu een foutmelding in plaats van alleen `fail` terug te geven in
  • geval van een storing: `os.remove`,` os.move`, `os.mkdir`,` os.rmdir`, `os.chdir`.
  • Verbeteringen voor de volgende operatoren die werken aan sets en sequenties betreffende garbage collection: `insert` statement,` union`, `kruising`,` minus`, `unique`,` copy`, `pop / top` en `pop / bottom` -instructies en toewijzingen instellen.
  • Verbeterde foutmelding van `fractals.draw` als FRACTINT-kleurkaartbestand niet
  • is
  • is niet gevonden.

Wat is nieuw in versie 1.1.0:

  • Deze versie bevat nieuwe functionaliteit en een gereinigde naamruimte.
  • Compatibiliteit met Agena 1.0:
  • Sommige functies zijn verwijderd uit Agena en sommige zijn geconverteerd naar pakketfuncties (zie hieronder). Als u ze nog steeds wilt gebruiken, geeft u readlib 'compat' op de opdrachtregel uit of plaatst u de instructie hierboven in uw initialisatiebestand als u achterwaartse compatibiliteit met Agena 1.0 verkiest.
  • Uitgebreide functionaliteit:
  • De `pop / top'- en` pop / bottom` -instructies en `bottom` en` top`-operatoren kunnen nu ook worden toegepast op tabelarrays.
  • Wanneer 'os.chdir' wordt aangeroepen met `null` of zonder argumenten, geeft het geen fout meer op, maar wordt de huidige werkmap geretourneerd. Zo is de voormalige functie `os.curdir` C vervangen door een functie die is geschreven in de Agena-taal.
  • `os.list` doorloopt nu recursief submappen als de nieuwe 'r' optie wordt gegeven.
  • De `join`-operator accepteert nu ook een optionele scheidingsteken en ondersteunt de optie om het eerste en het laatste element van de te concateneren structuur op te geven.
  • `instr` kan nu vanaf het rechteruiteinde van een string zoeken door een negatieve positie te passeren.
  • Als een tabel andere tabellen, sets, sequenties of paren bevat, weet `kopiëren` nu hoe deze verwijzingen juist moeten worden behandeld als ze meerdere keren voorkomen: als een ingebedde structuur n keer wordt opgenomen, wordt één echte kopie gemaakt en n-1 verwijzingen naar deze nieuw gemaakte structuur worden ingevoegd. Voordien zijn er n onafhankelijke kopieën gemaakt.
  • De nieuwe `isnonposint`-functie controleert of de gegeven getallen alle gehele getallen en niet-positieve waarden zijn.
  • `io.close` kan nu meerdere bestanden met slechts één oproep sluiten.
  • De functie `with` heeft geen korte namen toegewezen voor de volgende procedures van het` math`-pakket: `convertbase`,` fraction`, `zeroin`,` todecimal`, `lcm`,` gcd`, and ` ndigits`. Dit is gecorrigeerd.
  • De `rwritemode`-functie die in de handleiding wordt genoemd, bestond niet. Het is nu beschikbaar, maar wordt `rmode` genoemd.
  • Foutmeldingen van verschillende functies zijn verbeterd.
  • Namespace-opschoning: hernoemde of verplaatste functies:
  • De basisbibliotheekfuncties `register` en` loadclib` zijn verplaatst naar de bibliotheek `package`.
  • De voormalige `rdelete`,` rget`, `rinit`,` roinit`, `rmode`,` rset`, `remember`, en` standaard'-basisbibliotheekfuncties zijn verplaatst naar het nieuwe `rtable` pakket .
  • Hernoemde de globale _Env-tabel in `environ`, die nu ook procedures bevat voor toegang tot de omgeving.
  • De voormalige globale `homedir` en` infolevel` omgevingsvariabelen zijn hernoemd naar respectievelijk `environ.homedir` en` environ.infolevel`.
  • De volgende voormalige basisbibliotheekfuncties zijn verplaatst naar het `environ`-pakket:` anames`, `attrib`,` gc`, `getfenv`,` globals`, `isselfref`,` pointer`, `setfenv` , `used`,` userinfo`, `__RESTART`,` __DOTTYPRINT`.
  • `mapm.xtoNumber` is hernoemd naar` mapm.xtonumber`, `mapm.xtoString` is hernoemd naar` mapm.xtostring`. Voor achterwaartse compatibiliteit kunnen de oude functienamen nog steeds worden gebruikt door het bestand lib / compat.agn uit te voeren (lees eerst het pakket `mapm` en laad vervolgens het bestand compat.agn)
  • Verouderde functies en variabelen:
  • `strings.seek` is verouderd. De functionaliteit is toegevoegd aan de `instr`-operator. Om de patroonafstemmingsmodus van `instr` uit te schakelen, geeft u het begin van de zoekopdracht door als de derde en` ware 'als het vierde argument. `instr` is ongeveer 40% sneller in de modus voor niet-patroonovereenkomst dan` strings.seek`. Voor achterwaartse compatibiliteit is `strings.seek` toegevoegd aan het bestand lib / compat.agn.
  • De `concat` basisbibliotheekfunctie is verwijderd. Gebruik in plaats daarvan `join '. Voor achterwaartse compatibiliteit is de vorige functie toegevoegd aan het bestand lib / compat.agn.
  • De `hasrtable` en` hasrotable` functies zijn verwijderd. Voor achterwaartse compatibiliteit zijn ze toegevoegd aan het bestand lib / compat.agn.
  • De `pcall` -functie is verouderd. Gebruik in plaats daarvan `beschermen '. Voor compatibiliteit met oudere versies is de functie toegevoegd aan het bestand lib / compat.agn.
  • De `maptoset`-functie is verouderd. Voor compatibiliteit met oudere versies is de functie toegevoegd aan het bestand lib / compat.agn.
  • De functie `os.alldirs` is verouderd. Gebruik in plaats daarvan de opties 'dirs' en 'r' in een aanroep van `os.list`. Voor compatibiliteit met oudere versies is de functie toegevoegd aan het bestand lib / compat.agn.
  • `os.isMac`,` os.isSolaris`, `os.isLinux`,` os.isWin`, `os.isOS2`,` os.isDOS`, `os.isHaiku` zijn verouderd. Gebruik in plaats daarvan de nieuwe omgevingsvariabelen environ.Os en environ.Cpu, die ook de code versnellen. Voor achterwaartse compatibiliteit zijn de functies toegevoegd aan het bestand lib / compat.agn.
  • De ongedocumenteerde variabele _VERSION is verwijderd. Voor achterwaartse compatibiliteit is de toewijzing toegevoegd aan het bestand lib / compat.agn.
  • Andere wijzigingen:
  • De C API-functie lua_rawsetstringnumber vermeld in de handleiding bestond niet. Dit is gewijzigd.
  • Code-optimalisaties voor de parser.
  • In sommige pakketten zijn per ongeluk een paar variabelen impliciet globaal verklaard. Dit is opgelost.
  • Gecorrigeerde en bijgewerkte initialisatie voorbeeldbestanden.
  • AgenaEdit is bijgewerkt.
  • De taalschema-bestanden zijn bijgewerkt.
  • De Linux-installatieprogramma's bevatten nu het xBase-pakket.

Wat is nieuw in versie 1.0.6:

  • Verbeterde foutmeldingen van `join`,` copy` en `filled` operatoren, van` toset`, `toseq`, en` totable` functies, van `insert`,` delete`, `pop` statements, en van `voor` lussen.
  • Met reeksen crashte Agena in de volgende reeks gebeurtenissen: 1) een `delete`-statement was uitgevoerd, 2) de reeks daarachter was leeg en 3) een nieuw element was opnieuw ingevoegd. Dit is opgelost. (Intern verlaagt de `delete`-instructie intern niet langer de grootte van reeksen.)
  • Bij grote reeksen is `concat` gecrasht. Dit is opgelost.
  • Met reeksen van 512 en meer bytes kunnen 'join' en `replace` vastlopen. Dit is opgelost. De twee operatoren zijn nu ook veel sneller dan ooit tevoren.
  • `math.isprime` heeft verkeerde resultaten geretourneerd met argumenten & gt; 2 ^ 31 (vaag vermeld in de handleiding). Dit is opgelost door het argumentbereik uit te breiden naar gehele getallen met waarden tot +/- 2 ^ 63.
  • `math.nextprime` en` math.prevprime` hadden hetzelfde probleem met grotere argumenten zoals `math.isprime`. Dit is ook veranderd. Met argument 2 heeft `io.nextprime` ten onrechte 5 in plaats van 3 geretourneerd. Dit is ook opgelost.

Wat is nieuw in versie 1.0.5:

  • `join` kan Agena doen crashen en zich anders onverwacht gedragen als de resulterende string
  • heeft 512 bytes overschreden. Dit is gewijzigd.
  • Als `restart` is aangeroepen nadat een fout is gemaakt in de vorige
  • verklaring, Agena is in zeldzame gevallen gecrasht vanwege stack corruptie. Dit is
  • vast.
  • Met nieuw gemaakte tabellen die exact één element in het hashgedeelte bevatten, `attrib`
  • retourneert nu de juiste resultaten voor het aantal toegewezen hash-slots (1 in plaats van 0).
  • Gecorrigeerde foutmeldingen van `qsadd` en` sadd`.
  • Verbeterde foutmeldingen van `join`,` copy` en `filled` operators, en van` insert`
  • en `delete` -instructies.
  • Foutafhandeling van `lezen`,` opslaan` en `fractals.draw` is verbeterd.
  • Verbeteringen aan de makefiles.
  • Buffergroottes zijn nu gestandaardiseerd in de bronnen.

Wat is nieuw in versie 1.0.4:

  • Aangezien tijdens de initialisatie zeldzame crashes zijn gemeld (in Windows XP SP 3 en OpenSolaris 134, onder bepaalde omstandigheden), is garbage collection nu uitgeschakeld in de initialisatiefase. Deze zeldzame segmentatiefouten zijn opgetreden in OpenSolaris wanneer het Agena-binaire bestand als root in de hoofddirectory wordt uitgevoerd en in XP wanneer op het Agena-bureaubladpictogram met lokale beheerdersrechten wordt geklikt.
  • Introduceerde de -d switch naar de opdrachtregelopties om informatie af te drukken tijdens de initialisatie van Agena.
  • Introduceerde de juiste foutafhandeling als het geheugen niet intern toegewezen kon worden aan: `trim`,` upper`, `lower`,` os.curdir` en `strings.rseek`.
  • Potentiële geheugenlekken in de initialisatie C-functies agenaL_initialise en agenaL_setLibname en in `io.write *` en `print` verwijderd.

Wat is nieuw in versie 1.0.3:

  • De nieuwe functie `protect` roept een procedure op in de beveiligde modus en vangt elke mogelijke fout zodat de berekening niet wordt onderbroken. In het geval van een fout wordt de foutreeks ingesteld op de algemene variabele `lasterror`. Het is gerelateerd aan `pcall`, maar geeft de statuscode niet terug als het eerste resultaat.
  • `attrib` retourneert nu correcte resultaten met lege structuren. Bij lege structuren telt de functie ten onrechte een toegewezen hash-element eerder.
  • `attrib` retourneert nu het aantal bytes dat wordt ingenomen door tabellen, sets en reeksen, samen met de nieuwe bytes-toets. Het aantal geretourneerde bytes is gebaseerd op soms tegenstrijdige informatie die beschikbaar is op het net.
  • `replace` crashte Agena als de resulterende string 512 bytes overschreed. Dit is gewijzigd.
  • `aannemen` geeft nu 'Vermoedelijk mislukt'. in plaats van 'aanname mislukt.'
  • De nieuwe API-functie lua_setglobal2 stelt de waarde boven aan de stapel in op een algemene naam. In tegenstelling tot lua_setglobal, wordt de waarde niet weergegeven.
  • Code-opschoning van lobject.h (tabelstructuur) en lapi.c (macro met actueel wijzigen). Bugfix to C API-functie agn_deletertable in het geval dat Agena is gecompileerd met lua_assert zonder inhoud. Wijzig de retourwaarde van de savestate-functie die tijdens de initialisatie wordt gebruikt om de (geringe) kans op stapelbeschadiging te voorkomen.

Wat is nieuw in versie 1.0.2:

  • De nieuwe `os.setenv`-procedure stelt omgevingsvariabelen in op het niveau van het besturingssysteem. De functie is oorspronkelijk geschreven door Mark Edgar.
  • In Windows roept `os.getenv` nu een standaard Windows API-functie aan om de waarden van omgevingsvariabelen te krijgen. De Windows-code is geschreven door Mark Edgar.
  • De nieuwe functie `os.environ` retourneert alle toegewezen omgevingsvariabelen in een tabel. De functie is oorspronkelijk geschreven door Mark Edgar.
  • `io.open` voegt nu de BESTAND-aanwijzer, de naam en de modus van een succesvol geopend bestand toe aan de nieuwe tabel` io.openfiles`. `io.close` verwijdert het item uit` io.openfiles` als het bestand succesvol kan worden afgesloten.
  • Wanneer het wordt aangeroepen zonder argumenten, geeft `io.read` nu een fout als het wordt aangeroepen zonder argumenten in AgenaEdit (in een poging het toetsenbord te lezen).
  • Als `io.anykey` en` io.getkey` worden aangeroepen in AgenaEdit, wordt een correct foutbericht weergegeven.
  • Eén van de initialisatie-subprocedures is gewijzigd om mogelijke stackcorruptie te voorkomen (hoewel er zich nooit problemen hebben voorgedaan).
  • os.isMac ('ppc') werkt nu op PowerPC-machines.
  • Hoofdstukken 4 en 6 van de Primer en Referentie zijn herzien en uitgebreid. Er is een index toegevoegd en er zijn ook veel cosmetica gemaakt.
  • Informatie over de juiste versie opgeslagen in het Windows-uitvoerbare bestand.

Wat is nieuw in versie 1.0:

  • Beste dames en heren,
  • na bijna vier jaar ontwikkeling publiceerde ik Agena 1.0, een procedurele programmeertaal, afgeleid van Lua C-bronnen.
  • Mijn community is eigenlijk heel, heel klein, maar sommige gebruikers vertelden me dat het prima, nuttig en stabiel was.
  • Ik zou heel blij zijn als je Agena hebt beoordeeld en me hebt geïnformeerd over je resultaten. Als u het niet nuttig vindt, vertel het mij dan persoonlijk en geef mij een kans om de problemen op te lossen.

Wat is nieuw in versie 0.34.1d:

  • Deze versie bevat een bijgewerkte GUI-versie van AgenaEdit (zie uitvoerbaar bestand agenaedit).

Wat is nieuw in versie 0.34.1:

  • AgenaEdit met syntaxisaccentuering en ingebouwde runtime-engine is uitgebracht met Agena 0.34.1.

Wat is nieuw in versie 0.34.0:

  • AgenaEdit met syntaxisaccentuering en ingebouwde runtime-engine is uitgebracht met Agena 0.34.0.

Wat is nieuw in versie 0.33.2:

  • Agena 0.33.2 met ondersteuning voor xBase-bestanden is vrijgegeven.

Wat is nieuw in versie 0.33.1:

  • Agena 0.33.1 met ondersteuning voor xBase-bestanden is vrijgegeven.

Wat is nieuw in versie 0.33.0:

  • Het nieuwe `xbase`-pakket kan xBase-bestanden lezen en beschrijven die compatibel zijn met de dBASE III-standaard.
  • De pakketten `binio` en` ads` kunnen nu bestanden verwerken van maximaal 2 ^ 63 bytes. Voordat ze alleen bestanden konden verwerken met een grootte van maximaal 2 ^ 31 bytes.
  • De nieuwe functies `io.lock`,` io.unlock`, `binio.lock`,` binio.unlock`, `ads.lock` en` ads.unlock` vergrendelen een bestand van lezen en schrijven via andere Agena
  • functies of zelfs andere toepassingen op voorwaarde dat de laatste een vergrendelingsprotocol gebruikt.
  • De baselib-functie `read` kan niet langer worden overschreven door` with`.
  • De nieuwe `package.checkClib` controleert of een pakket dat in een C-dynamische bibliotheek is opgeslagen, is geïnitialiseerd. Als dit niet het geval is, wordt een waarschuwing op het scherm weergegeven en wordt een lege pakkettabel gemaakt. Anders doet het niets.
  • De Haiku-poort ondersteunt nu dynamische link-bibliotheken.

Wat is nieuw in versie 0.32.3:

  • Agena 0.32.3 met nieuwe en afgestemde functies voor calculatie is vrijgegeven.
  • Mac-gebruikers hoeven geen extra afhankelijkheidsbibliotheken meer te installeren.
  • Er is nu een Haiku-poort beschikbaar.

Wat is nieuw in versie 0.31.5:

  • Deze versie bevat ingebouwde grafische afbeeldingen, willekeurige precisiewiskunde en verbeterde functies.

Wat is nieuw in versie 0.31.3:

  • Het fractals-pakket toegevoegd om fractals eenvoudig te tekenen in Solaris, Mac, Linux en Windows.
  • Op 'Solaris and Linux' geeft `gdi.mouse` nu de standaardwaarden voor ingedrukte muisknoppen weer (hetzelfde als de Mac- en Windows-edities)
  • Als de optie -v wordt gegeven, voert Agena de initialisatiebestanden nu niet meer uit.
  • Op UNIX of Mac moeten de bestandsnamen van de initialisatiebestanden altijd `.agenainit` zijn, ongeacht of ze zich in / usr / agena / lib of de persoonlijke map bevinden.
  • De binaire Mac-distributie voor Intel CPU's is ongeveer 30% sneller dan eerdere releases.
  • De `io.getkey` -functie is nu beschikbaar in de Mac OS X-editie.
  • Op Mac retourneert `os.system` nu volledige informatie over het besturingssysteem en het CPU-type. Merk op dat het informatie teruggeeft over de Darwin kernel, en dat het eerste item in de resulterende tabel nu `Darwin` is in plaats van` MacOSX`.
  • `os.memstate`,` os.freemem` en `os.beep` ondersteunen nu Mac OS X.
  • `io.anykey` is beschikbaar op alle platforms, maar retourneert` fail` op DOS en Mac. Dus zal `gdi.draw` geen fouten meer op de Mac gooien bij gebruik van de optie` mouse`.
  • `os.listcore` is uitgebreid om alleen bestands-, directory- of linknamen te retourneren. '' en '..' worden nu nooit teruggestuurd.
  • `os.list` herkende geen opties en retourneerde in plaats daarvan een lege lijst. Dit is opgelost. Ook kunnen opties nu worden gecombineerd. '' en '..' omdat het eerste argument nu correct wordt herkend.
  • `os.curdir` vervangt nu automatisch backslashes in het pad dat is bepaald met slashes.
  • `os.fstat` en` ads.attrib` hebben Agena gecrasht als de datum van een bestand dinsdag 19 januari 2038 overschreden is. Dit is opgelost door een lege tabel voor de datum sleutel (os.fstat) te retourneren, of 0/0/01 00:00:00, (ads.attrib).
  • `utils.calendar` heeft Agena gecrasht als het argument ongeldig, negatief of te groot was. Dit is veranderd. Als een datum later is dan dinsdag 19 januari 2038, wordt de juiste datum geretourneerd.
  • De nieuwe functies `os.screensize` en` os.mousebuttons` retourneren respectievelijk de huidige schermresolutie en het aantal knoppen van de aangesloten muis (alleen Windows).
  • Het bestand agena.ini.sample is hernoemd naar .agenainit.sample in de UNIX / Mac-distributies.
  • Een nieuwe makefile voor Solaris wordt nu verzonden met de mapm Agena-binding om de originele MAPM-bronnen te compileren die zijn geschreven door Michael C. Ring.

Wat is nieuw in versie 0.31.2:

  • Het mapm-pakket voor arbitraire wiskundige precisie is nu ook beschikbaar in de DOS-editie van Agena.
  • Het aantal cijfers dat wordt gebruikt door het mapm-pakket wordt geïnitialiseerd naar 17 cijfers bij het opstarten van Agena voor DOS of OS / 2 Warp. Vroeger was de standaardinstelling 1 cijfer.
  • De C-code voor de MAPM-binding is gestandaardiseerd. Voorheen verschilden de DOS- en OS / 2-bronbestanden van die voor UNIX en Windows.
  • Kleine verbeteringen aan de Windows- en Mac OS X-installatieprogramma's
  • Op Mac is de documentatie nu beschikbaar in Bibliotheek / Documentatie / Agena in plaats van / Users / Share / Agena.
  • De functies sin, cos, arcsin, arccos en arctan retourneerden -0 in plaats van 0 als de imaginaire eenheid, wat leidde tot verkeerde resultaten als de terugkeer van deze functies was toegepast op andere functies zoals ln (dwz het teken van de imaginaire eenheid van het resultaat van deze andere functies was onjuist). Dit is opgelost door de imaginaire eenheid -0 op 0 te zetten in de terugkeer van sin, cos, arcsin, arccos en arctan.
  • De arcsin en arccos-functies retourneerden verkeerde resultaten voor argumenten z, als abs (real (())) & lt; 1. Dit is opgelost.
  • In OS / 2 zijn de meest complexe rekenkundige functies ongedefinieerd geretourneerd. Dit is opgelost.
  • Merk op dat in OS / 2 en DOS, in het complexe domein, er nog steeds problemen zijn met arccos en arcsin-operators die ongedefinieerd terugkeren in bepaalde situaties.
  • De versies Windows, i386 Solaris 10 en Linux zijn nu gecompileerd met GCC 4.4.x (en zonder xmath86.h) waardoor het aantal fouten in complexe rekenkundige bewerkingen aanzienlijk is verminderd. Uitgebreide ingewikkelde wiskundetestgevallen retourneren zelfs nulfouten. De Sparc-versie is gecompileerd met GCC 4.3.3 voor Sun Sparc en heeft minder bugs in complexe rekenkundige getallen dan de 0.31.1-release had.
  • Hernoemd tot het volgende omvat bestanden: config.h - & gt; agncfg.h, chelpers.h - & gt; agnhlps.h, agnxlib.h - & gt; agnxlib.h.
  • Op Mac geeft gdi.mouse nu standaardwaarden voor ingedrukte muisknoppen.

Wat is nieuw in versie 0.31.1:

  • Agena 0.31 bevat alle basisgereedschappen om punten, lijnen, cirkels, ellipsen, rechthoeken, bogen uit te zetten. enz., om de afbeeldingsgrootte en kleuren te regelen.

Wat is nieuw in versie 0.31.0:

  • Een taalconsistentie-release met een bugfix - is vrijgegeven. Bekijk het wijzigingslogboek voor wat er is veranderd.

Wat is nieuw in versie 0.30.4:

  • Agena heeft nu ingebouwde grafische afbeeldingen. Hiermee kunt u grafieken, afbeeldingen enz. Plotten in X11- of Win32-vensters of naar GIF-, PNG-, JPEG-, FIG- of PostScript-bestanden, zowel in Solaris, Linux als Windows. Agena bindt zich aan de g2 grafische bibliotheek geschreven door Ljubomir Milanovic en Horst Wagner, om deze nieuwe mogelijkheden te bieden.
  • Agena 0,30 bevat alle basisgereedschappen om punten, lijnen, cirkels, ellipsen, rechthoeken, bogen uit te zetten. enz., om de afbeeldingsgrootte en kleuren te regelen.
  • & gt; met 'gdi';
  • gdi-pakket v0.1.4 vanaf 20 december 2009
  • boog, ingevuld, achtergrond, cirkel, cirkelvulling, clearpalette, sluiten, streepje, ellips, ellipsefilled, flush, lettertype, initpalette, inkt, lastaccessed, regel, newline, newpoint, open, plot, plotfn, punt, rechthoek, rechthoekig gevuld , reset, resetpalette, setinfo, setoptions, structure, text, thickness, triangle, trianglefilled, useink
  • De plotfn-functie tekent een of meer grafieken van functies in één reële, optioneel samen met de assen uitgezet in een door de gebruiker gedefinieerde kleur. Het bereik voor de y-as kan ook worden gegeven, anders bepaalt Agena de beste instelling. Er zijn verschillende andere opties die kunnen worden ingesteld met de functie setoptions en die van toepassing zijn op alle grafieken die in een sessie worden geproduceerd: de vensterresolutie, de kleurkaart, de lijndikte en achtergrondkleur. Natuurlijk kan de gebruiker sommige of alle opties voor een specifieke plot opheffen. Singulariteiten worden op de juiste manier behandeld.

Wat is nieuw in versie 0.30.3:

  • Agena 0,30,3 met ingebouwde afbeeldingen, willekeurige precisiewiskunde en verbeterde functies zijn vrijgegeven.

Wat is nieuw in versie 0.30.2:

  • Agena heeft nu ingebouwde grafische afbeeldingen. Hiermee kunt u grafieken, afbeeldingen enz. Plotten in X11- of Win32-vensters of naar GIF-, PNG-, JPEG-, FIG- of PostScript-bestanden, zowel in Solaris, Linux als Windows. Agena bindt zich aan de g2 grafische bibliotheek geschreven door Ljubomir Milanovic en Horst Wagner, om deze nieuwe mogelijkheden te bieden.
  • Agena 0,30 bevat alle basisgereedschappen om punten, lijnen, cirkels, ellipsen, rechthoeken, bogen uit te zetten. enz., om de afbeeldingsgrootte en kleuren te regelen.
  • & gt; met 'gdi';
  • gdi-pakket v0.1.4 vanaf 20 december 2009
  • boog, ingevuld, achtergrond, cirkel, cirkelvulling, clearpalette, sluiten, streepje, ellips, ellipsefilled, flush, lettertype, initpalette, inkt, lastaccessed, regel, newline, newpoint, open, plot, plotfn, punt, rechthoek, rechthoekig gevuld , reset, resetpalette, setinfo, setoptions, structure, text, thickness, triangle, trianglefilled, useink
  • De plotfn-functie tekent een of meer grafieken van functies in één reële, optioneel samen met de assen uitgezet in een door de gebruiker gedefinieerde kleur. Het bereik voor de y-as kan ook worden gegeven, anders bepaalt Agena de beste instelling. Er zijn verschillende andere opties die kunnen worden ingesteld met de functie setoptions en die van toepassing zijn op alle grafieken die in een sessie worden geproduceerd: de vensterresolutie, de kleurkaart, de lijndikte en achtergrondkleur. Natuurlijk kan de gebruiker sommige of alle opties voor een specifieke plot opheffen. Singulariteiten worden op de juiste manier behandeld.

Wat is nieuw in versie 0.29.0:

  • Agena heeft nu ingebouwde grafische afbeeldingen. Hiermee kunt u grafieken, afbeeldingen enz. In een venster of in een GIF-, PNG-, JPEG-, FIG- of PostScript-bestand in Solaris, Linux en Windows plotten door een koppeling op te nemen in de g2 grafische bibliotheek geschreven door Ljubomir Milanovic en Horst Wagner.
  • Agena 0.29.0 biedt alle basisgereedschappen om punten, lijnen, cirkels, ellipsen, rechthoeken, bogen uit te zetten. enz., om kleur te beheren en om afbeeldingsbestanden te maken of X11- of Win32-vensters te openen.
  • In een van de komende updates biedt een gebruikersinterface op hoog niveau met de functies gdi.plotfn en gdi.plot de mogelijkheid om univariate functies en sets punten on-the-fly uit te zetten. De twee functies zijn al opgenomen in Agena 0.29.0, maar zijn nog steeds bèta. Hier is een voorbeeld:
  • & gt; met 'gdi';
  • gdi-pakket v0.1.0 vanaf 24 november 2009
  • boog, achtergrond, cirkel, clearpalette, sluiten, streepje, ellips, filledArc, filledCircle, filledEllipse, filledRectangle,
  • filledTriangle, flush, fontsize, initpalette, ink, lastaccessed, line, open, plot, plotfn, point, rectangle, reset,
  • resetpalette, setinfo, setoptions, structure, text, thickness, triangle, useink
  • De plotfn-functie tekent de grafiek van een functie in één reële waarde, optioneel samen met de assen uitgezet in een door de gebruiker gedefinieerde kleur. Het bereik voor de y-as kan ook worden gegeven, anders probeert Agena de beste instelling te bepalen. Er zijn verschillende andere opties die kunnen worden ingesteld met de functie setoptions en die van toepassing zijn op alle grafieken die in een sessie worden geproduceerd: de vensterresolutie, de kleurkaart, de lijndikte en achtergrondkleur. Natuurlijk kan de gebruiker sommige of alle opties voor een specifieke plot opheffen. Singulariteiten worden op de juiste manier behandeld.
  • plotfn (sin (x) * x & gt; & gt ;, -5, 5, kleur ~ 'blauw', axiskleur ~ 'grijs', res ~ 640: 480);

Wat is nieuw in versie 0.27.2:

  • De nieuwe baselib-functie toSet converteert een tekenreeks in een reeks tekens en een tabel of reeks in een set.
  • io.readlines is gepatcht om regels te verwerken met meer dan 2048 tekens. De functie geeft nu ook een foutmelding als de toewijzing van intern geheugen mislukt. Interne buffergrootte is verlaagd van 2048 bytes naar 512 bytes. U kunt dit wijzigen door een andere waarde toe te wijzen aan AGN_IOREADLINES_MAXLINESIZE in het bestand agnconf.h.
  • io.readlines accepteert nu ook bestandshandles. Wanneer u bestandshandvatten gebruikt, in tegenstelling tot bestandsnamen, moet u er rekening mee houden dat u het bestand handmatig moet sluiten na gebruik van io.readlines.
  • io.readlines retourneert niet langer een lege tabel als het bestand niet bestaat. In plaats daarvan geeft het een foutmelding.
  • toSeq retourneert nu een fout in plaats van fout als deze geen tekenreeks, set of tabel ontvangt.
  • De gebruikte baselib-functie is uitgebreid en kan geheugengebruik terugbrengen in bytes, kbytes en gbytes. Het is nu een C-functie.
  • De gcinfo-functie zonder documenten is verwijderd. De functionaliteit is overgenomen door gebruikt.
  • De nieuwe API-functie agn_usedbytes geeft het aantal bytes terug dat door het systeem wordt gebruikt.
  • Correct verkeerde foutmelding van toTable.
  • hernoemde C AOI-functie `agn_isioforcerror` naar` agn_isioforceerror`.

Wat is nieuw in versie 0.27.0:

  • De foutfunctie math.erf en de complementaire foutfunctie math.erfc.
  • toegevoegd
  • De Bessel-functie van de eerste soort math.besselj en de Bessel-functie van de tweede soort is wiskundig toegevoegd. De volgorde wordt gegeven door het eerste argument, het argument als het tweede argument.
  • Als de nieuwe omgevingsvariabele _EnvIoForceError is ingesteld op een niet-nulwaarde (de standaardwaarde), worden de io.open, io.readlines en de verschillende binio-functies afgesloten met een fout in plaats van alleen maar terug te keren.
  • binio.readbytes en binio.readchar gaven een lege reeks terug in plaats van mislukken voor het geval het bestand dat moest worden gelezen niet bestond. Dit is gewijzigd: mislukt of er is nu een fout geretourneerd.
  • arcsin en arccos zijn nu operatoren en dus ongeveer 40% sneller.
  • Toegevoegd de xor-operator die een Booleaanse exclusieve-OF uitvoert op waarden die evalueren of waar zijn, false, fail en null.
  • De atendof-operator toegevoegd die controleert of een woord in een bepaalde zin eindigt en zijn positie als een getal retourneert. De operator retourneert null als de tekenreeksen dezelfde lengte hebben, waarvan er ten minste één de lege tekenreeks is, of het woord eindigt niet in het opgegeven patroon.
  • itrtable retourneert nu alleen true als het een read-write-onthoudtabel heeft (bijgewerkt door de return-instructie).
  • De nieuwe functie hasrable bepaalt of een functie een alleen-lezen-herinnerings-tabel heeft (die niet kan worden bijgewerkt door de retourinstructie) en retourneert waar of niet waar.
  • De nieuwe operators worden hoog en getlow halen de hogere en de lagere bytes op uit een getal (d.w.z. C-dubbel).
  • De nieuwe operators sethigh en setlow stellen de hogere en de lagere bytes in op een getal (d.w.z. C double).
  • De nieuwe operatoren binden, bor, bxor en bnot niet bitgewijs en / of exclusief, of complementair op nummers.
  • De nieuwe `kernel` -functie configureert de instellingen van de Agena-kernel. Momenteel kan het de manier wijzigen waarop de bitwise-operators intern werken (gebruik van ondertekende of niet-ondertekende gehele getallen) en hoe getallen worden afgedrukt.
  • Met reële getallen x, geeft math.argument nu Pi in plaats van 0 als x & lt; 0.
  • Vanwege een fout in de onderliggende ANSI C-bibliotheekfuncties, produceerden arcsin en arccos verkeerde resultaten met complexe getallen als hun imaginaire deel nul was in UNIX-systemen. Dit is opgelost.
  • math.isPrime heeft een fout gemeld bij nummer 2. Dit is gecorrigeerd.
  • In tegenstelling tot de handleiding, gaven abs 2 terug met mislukking. Nu wordt -1 als gedocumenteerd geretourneerd.
  • Het bitspakket is verwijderd.
  • De nieuwe API-functie C agn_isioforcerror toegevoegd die controleert of _EnvIoForceError is ingesteld op een niet-nulwaarde.
  • De nieuwe API-functie C agn_setbitwise bepaalt of de operators band, bor, bnot, bxor en shift intern berekenen met ondertekende of niet-ondertekende gehele getallen.
  • De nieuwe API-functie C agn_getbitwise retourneert de modus die is ingesteld door agn_setbitwise.
  • De nieuwe API-functie van C agn_setdigits stelt het aantal cijfers in dat wordt gebruikt voor het afdrukken van getallen.
  • De nieuwe API-functie van C agn_getdigits bepaalt het aantal cijfers dat wordt gebruikt voor het afdrukken van getallen.
  • Intern: verwijderde verouderde "REPL" -invoer van luaP_opnames.
  • Het Windows-installatieprogramma is verbeterd door nu te controleren op een eerder geïnstalleerde versie van Agena, door te voorkomen dat het installatieprogramma wordt gestart als een ander exemplaar al wordt uitgevoerd en door enkele andere kleine verbeteringen.

Eisen

  • Ncurses
  • GNU-leesregel

Vergelijkbare software

Pre Make Kit
Pre Make Kit

3 Jun 15

GCC UPC
GCC UPC

11 May 15

Pharo
Pharo

20 Feb 15

Reacties op Agena

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!