Agena

Screenshot Software:
Agena
Szczegóły programowe:
Wersja: 2.11.5 Aktualizowane
Filmu: 22 Jun 18
Wywoływacz: Alexander Walz
Licencja: Wolny
Popularność: 23

Rating: nan/5 (Total Votes: 0)

Agena jest otwartym, bezpłatnym, wieloplatformowym i łatwym do opanowania językiem programowania proceduralnego przeznaczonym do codziennego użytku. Może być używany w środowisku graficznym, naukowym, językowym i edukacyjnym, a także w skryptach, obsługujących wszystkie popularne systemy operacyjne.


Oferuje liczne urządzenia do kontroli przepływu

Aplikacja oferuje wiele możliwości sterowania przepływem, np. jeśli. elif, else conditions, case of i else conditions, operator, numeryczne dla, od, do i przez pętle, połączone liczbowe pętle for i while, dla i w pętlach, while i do / as loops, a pominięcie, break oświadczenie, a także sprawdzanie typu danych.


Zapewnia przypisania wyliczeń

Wśród innych funkcji możemy wymienić dowolną precyzyjną bibliotekę matematyczną, łatwą konfigurację twojego osobistego środowiska, łatwy w użyciu system pakietów, przypisania wyliczeń, kontrolę zakresu za pomocą słów kluczowych epocs / scope i wiele innych atrakcyjnych funkcji.

Pod maską i dostępnością

Szybkie spojrzenie pod maską pokaże nam, że projekt jest napisany w językach programowania C, BASIC, Lua i ALGOL 68, co oznacza, że ​​jego składnia przypomina składnię tych projektów. Działa całkowicie w środowisku konsoli / terminala, co oznacza, że ​​nie zawiera graficznego interfejsu użytkownika (GUI).


Statki z prostym edytorem

Pomimo faktu, że oprogramowanie Agena jest aplikacją uruchamianą z wiersza poleceń, dostarczane jest z prostym edytorem graficznym o nazwie AgenaEdit, który zawiera zintegrowane środowisko Agena i funkcje podświetlania składni. Jest on inspirowany podobnym edytorem opracowanym przez Billa Spitzaka dla wieloplatformowego zestawu narzędzi interfejsu GUI dla FLTK.


Działa na Raspberry Pi

Funkcje graficzne Ageny są obsługiwane w systemach operacyjnych GNU / Linux, Solaris, Mac OS X, Microsoft Windows, eComStation - OS / 2 i DOS. Może być łatwo wdrożony na 64-bitowych i 32-bitowych platformach sprzętowych i został pomyślnie przetestowany na płycie Raspberry Pi opartej na ARM.

Co nowego w ta wersja:

  • nowa funkcja Rachunek i statystyki

Co nowego w wersji:

  • nowa funkcja Rachunek i statystyki

Co nowego w wersji 2.9.4:

  • nowa funkcja Rachunek i statystyki

Co nowego w wersji 2.8.5:

  • nowa funkcja Rachunek i statystyki

Co nowego w wersji 2.8.2:

  • nowa funkcja Rachunek i statystyki

Co nowego w wersji 2.6.1:

  • `stats.chauvenet` może teraz sprawdzić specjalnie dla dolne lub górne wartości odbiegające, odpowiednio poprzez przekazanie opcji "outlier =" lower "lub" outlier = "upper'".
  • `bags.remove` spowodował błędy segmentacji. Zostało to naprawione. Co więcej, wszystkie funkcje `torby` zaimplementowane w C zostały wewnętrznie zmienione.
  • Metodody (nieudokumentowane) dla `+ ',` -` i `*` nie działały, jeśli pakiet `bags` nie został wywołany funkcją` with` lub `import / alias`. Zostało to naprawione.

Co nowego w wersji 2.5.4:

  • `stats.chauvenet` może teraz sprawdzić specjalnie dla niższych lub górnych wartości odstających, odpowiednio przekazując opcję` outlier = 'lower'` lub `outlier =' upper'`.
  • `bags.remove` spowodował błędy segmentacji. Zostało to naprawione. Co więcej, wszystkie funkcje `torby` zaimplementowane w C zostały wewnętrznie zmienione.
  • Metodody (nieudokumentowane) dla `+ ',` -` i `*` nie działały, jeśli pakiet `bags` nie został wywołany funkcją` with` lub `import / alias`. Zostało to naprawione.

Co nowego w wersji 2.5.3:

  • `stats.chauvenet` może teraz sprawdzić specjalnie dla dolne lub górne wartości odbiegające, odpowiednio poprzez przekazanie opcji "outlier =" lower "lub" outlier = "upper'".
  • `bags.remove` spowodował błędy segmentacji. Zostało to naprawione. Co więcej, wszystkie funkcje `torby` zaimplementowane w C zostały wewnętrznie zmienione.
  • Metodody (nieudokumentowane) dla `+ ',` -` i `*` nie działały, jeśli pakiet `bags` nie został wywołany funkcją` with` lub `import / alias`. Zostało to naprawione.

Co nowego w wersji 2.4.2:

  • `stats.chauvenet` może teraz sprawdzić specjalnie dla niższych lub górnych wartości odstających, odpowiednio przekazując opcję` outlier = 'lower'` lub `outlier =' upper'`.
  • `bags.remove` spowodował błędy segmentacji. Zostało to naprawione. Co więcej, wszystkie funkcje `torby` zaimplementowane w C zostały wewnętrznie zmienione.
  • Metodody (nieudokumentowane) dla `+ ',` -` i `*` nie działały, jeśli pakiet `bags` nie został wywołany funkcją` with` lub `import / alias`. Zostało to naprawione.

Co nowego w wersji 2.3.0 RC1:

  • Numeryczne pętle `for` teraz obsługują słowo kluczowe" downto ", dzięki czemu możesz odliczać bez konieczności stosowania obowiązkowego ujemnego rozmiaru" o "kroku. W kontekście "downto" wielkość kroku "by" powinna zawsze być dodatnia. `od 'start i` do' stop wartości są obowiązkowe przy użyciu słowa kluczowego `downto '.
  • Metametody "_finish", "__entier" i "__sqrt" nie są już obsługiwane. Zamiast tego dodano trzy nowe metody dla operacji na strukturach: "__union" dla operacji związków, "__intersect" dla określenia skrzyżowań i "__minus" dla różnic. Dlatego też pakiet `bags` obsługuje teraz te trzy operacje.
  • Operator `` całkowitego podziału 'nie wspierał swojego metametodu i używał zamiast niego operatora divat float (`/` operator). Zostało to naprawione.
  • Nowa funkcja `stats.gini` określa współczynnik Giniego, miarę (in) równości.
  • Nowa funkcja `stats.zscore` zwraca funkcję obliczającą wynik z-z (wynik standardowy) próbki - liczbę odchyleń standardowych, którą próbka znajduje się powyżej lub poniżej średniej rozkładu.
  • `stats.sorted` teraz domyślnie używa algorytmu Introsort zamiast Quicksort. Może to przyspieszyć trzykrotnie czas obliczeń w źle sytuowanych sytuacjach (gdzie Quicksort potrzebuje operacji O (n ^ 2)), nie rezygnując przy tym z wydajności w zwykłych sytuacjach. W rzeczywistości Introsort domyślnie używa Quicksort, a następnie automatycznie przełącza się na Heapsort, jeśli głębokość rekursji osiągnie 2 * log (n, 2), gdzie n jest liczbą elementów w strukturze.
  • Możesz pominąć tę logikę, przekazując nową opcję "quicksort", która używa wyłącznie tradycyjnej rekurencyjnej metody Quicksort do sortowania liczb. Ponadto, `stats.sorted` teraz może również używać algorytmu Heapsort wyłącznie, jeśli nowa opcja 'heapsort' jest przekazywana, oraz nierekurencyjny algorytm Quicksort opracowany przez Niklausa Wirtha z nową opcją 'nrquicksort'.
  • Nowa funkcja `stats.meanmed` zwraca zarówno średnią arytmetyczną, jak i medianę rozkładu, lub alternatywnie iloraz średniej i mediany, przyśpieszając czasy obliczeń, gdy wartości te są potrzebne o około 20 procent.
  • Poprawiono komunikat o błędzie operatora `size`.

Co nowego w wersji 2.1.1:

  • Nowe funkcje i poprawki:
  • `try / catch`: jawna specyfikacja zmiennej błędu zaraz po tokenie` catch` jest teraz opcjonalna. Jeśli nie podano żadnej zmiennej błędu, komunikat o błędzie jest automatycznie zapisywany do lokalnej zmiennej `lasterror`, a słowo kluczowe` then` musi zostać pominięte:
  • & gt; spróbuj
  • & gt; błąd ("oops!")
  • & gt; złapać
  • & gt; print (lasterror)
  • & gt; yrt;
  • oops!
  • Instrukcja `try / catch` czasami nie działała w procedurach (nieprzypisana zmienna błędu). Zostało to naprawione.
  • Nowa funkcja `net.wget` pobiera strony HTML z sieci.
  • Dostrojone `skycrane.counter` o 10%. Funkcja teraz opcjonalnie stosuje Kahan-Ozawę zamiast oryginalnego algorytmu sumowania Kahana, jeśli nowy trzeci argument jest łańcuchem "ozawa". Odpowiednie źródła C zostały zmodyfikowane, aby zapobiec optymalizacji kompilatora, co również może anulować optymalizacje.
  • `argerror` wypisuje teraz nazwę typu zdefiniowaną przez użytkownika wartości otrzymanej w komunikacie o błędzie. Jeśli wartość nie ma typu zdefiniowanego przez użytkownika, jest wydawany jej podstawowy typ.
  • Nowa opcja "a" dla `debug.getinfo` zwraca liczbę argumentów oczekiwaną przez procedurę, dzięki Robowi Hoelzowi" LuaPowerPatch.
  • Poprawiono komunikat o błędzie "out-of-range" indeksu dla ciągów.
  • Zmodyfikowali pliki `stats.agn`,` linalg.agn`, `library.agn` i` ansi.agn` w odniesieniu do obsługi błędów.

Co nowego w wersji 2.1.0:

  • Dla nowego rodzaju obsługi błędów wprowadzono nową instrukcję "try / catch". Został on opracowany i napisany przez Hu Qiwei'a dla Lua 5.1 w 2008 roku.
  • Ogólnie, wszelkie instrukcje, w których można oczekiwać wyjątku, można umieścić w klauzuli "try". Jeśli zostanie wygenerowany błąd, generowany przez jawne wywołanie funkcji `error` lub do dowolnego innego wyrażenia, funkcji lub instrukcji, sterowanie natychmiastowo przeskakuje do odpowiedniej klauzuli" catch ", jeśli jest obecna lub do końca` try / yrt `instrukcja, jeśli nie podano żadnej klauzuli catch, ignorując jakiekolwiek inne kolejne instrukcje w klauzuli` try`.
  • Obiekty do obsługi błędów `protect / lasterror` są nadal i zawsze będą obsługiwane. Nowa instrukcja sterująca działa również bezbłędnie przy użyciu instrukcji `break`,` skip`, `redo` i` return`.
  • Nowa instrukcja `redo` uruchamia ponownie bieżącą iterację pętli` for / to` i `for / in` od początku.
  • Nowy operator `recip` zwraca odwrotność liczby x. Jest to odpowiednik wyrażenia 1 / x, ale szybszego.
  • Nowa funkcja `stats.ema` oblicza wykładniczą średnią ruchomą rozkładu. Nowa funkcja `stats.gema` zwraca funkcję iteratora zwracającą odpowiednią wykładniczą średnią ruchomą rozkładu.
  • `*%`, `+%` i `-%` zwróciły `niezdefiniowane` zamiast poprawnego wyniku, jeśli ich prawy operand wynosił zero. Zostało to naprawione.
  • Naprawiono komunikat o błędzie w `net.survey`.
  • Poprawiono komunikaty o błędach dotyczące indeksowania par i łańcuchów poza zasięgiem.
  • W wersjach ANSI, Solaris i DOS operator `int` został dostrojony.
  • Nowa funkcja API C `agn_arraytoseq` przekształca tablicę numeryczną w sekwencję i wypycha tę nową sekwencję na szczycie stosu.
  • Zaktualizowano podręcznik.

Co nowego w wersji 2.1.0 RC:

  • Nowa instrukcja `redo` uruchamia ponownie bieżącą iterację pętli` for / to` i `for / in` od początku. Przykład:
  • & gt; flaga: = true; & gt; dla j w [10, 11, 12] do> gt; print ("przed", j, flaga); & gt; jeśli flaga i j = 11 to & gt; wyczyść flagę; & gt; print ('- & gt;', j, flag, 'jump back') & gt; ponów & gt; fi; & gt; print ('after', j, flaga) & gt; do j & gt; 12; przed 10 prawda po 10 prawda przed 11 prawda - & gt; 11 false jump back before 11 false po 11 false before 12 false po 12 false
  • Nowy operator `recip` zwraca odwrotność liczby x. Jest to odpowiednik wyrażenia 1 / x, ale szybszego.
  • Nowa funkcja `stats.ema` oblicza wykładniczą średnią ruchomą rozkładu. Nowa funkcja `stats.gema` zwraca funkcję iteratora zwracającą odpowiednią wykładniczą średnią ruchomą rozkładu. Do jego wykorzystania, proszę spojrzeć na plik źródłowy src / stats.c, funkcje C * ema.
  • `*%`, `+%` i `-%` zwróciły `niezdefiniowane` zamiast poprawnego wyniku, jeśli ich prawy operand wynosił zero. Zostało to naprawione.
  • Naprawiono komunikat o błędzie w `net.survey`.
  • Nowa funkcja API C `agn_arraytoseq` przekształca tablicę numeryczną w sekwencję i wypycha tę nową sekwencję na szczycie stosu.

Co nowego w wersji 2.0.0:

  • Nowe instrukcje i funkcje:
  • Agena 2.0 jest kompatybilna w dół z Agena 1.12, z tym że tokeny `import`,` alias`, `until` i` onsuccess` są teraz słowami kluczowymi i nie mogą być już używane jako zmienne. Obecnie dostępne są wersje Solaris, Debian (x86, PowerPC, Raspberry Pi), Windows, Mac i DOS 2.0, w tym zaktualizowany Primer and Reference, który szczegółowo objaśnia wszystkie nowe funkcje.
  • Nowe warianty pętli `for / as` i` for / until` sprawdzają warunek na końcu bieżącej iteracji i albo rozpoczynają następną iterację, albo opuszczają pętlę. Działa to zarówno z pętlami `for / to`, jak i` for / in`. W efekcie oba warianty wykonują pętlę co najmniej raz, aż sprawdzany jest dany warunek.
  • Przykłady:
  • & gt; dla i do 5 rób
  • & gt; drukuj (i)
  • & gt; jak i < 3
  • & gt; dla i w [1, 2, 3, 4, 5] czy
  • & gt; drukuj (i)
  • & gt; aż do & gt; = 3
  • Nowa pętla `do / until` iteruje aż do spełnienia określonego warunku:
  • & gt; c: = 0;
  • & gt; zrób
  • & gt; inc c;
  • & gt; print (c)
  • & gt; do c> gt 3
  • W liczbowych pętlach `for`, klauzula` to` nie może być podawana dłużej. Zamiast tego, kiedy pominiesz klauzulę "to", pętla iteruje aż do osiągnięcia największej liczby reprezentowanej na twojej platformie, w C HUGE_VAL:
  • & gt; bo robię
  • & gt; drukuj (i)
  • & gt; od
  • Nowa klauzula onsuccess w instrukcjach `if` i` case` wykonuje porcję, jeśli przynajmniej jeden z warunków jest prawdziwy. Przykłady:
  • & gt; flag: = false;
  • & gt; jeśli 1 = 0 to
  • & gt; print (0)
  • & gt; elif 1 = 1, a następnie
  • & gt; print (1)
  • & gt; onsuccess
  • & gt; flag: = true
  • & gt; inaczej
  • & gt; print (-1)
  • & gt; fi;
  • & gt; print (flaga);
  • true
  • & gt; flag: = false;
  • & gt; jeśli 1 = 0 to
  • & gt; print (0)
  • & gt; elif 1 = 0, a następnie
  • & gt; print (1)
  • & gt; onsuccess
  • & gt; flag: = true
  • & gt; inaczej
  • & gt; print (-1)
  • & gt; fi;
  • & gt; print (flaga);
  • false
  • & gt; flag: = false;
  • & gt; a: = 2;
  • & gt; case a
  • & gt; z 1, a następnie
  • & gt; print (1)
  • & gt; z 2, a następnie
  • & gt; print (2)
  • & gt; onsuccess
  • & gt; flag: = true
  • & gt; inaczej
  • & gt; print (-1)
  • & gt; esac;
  • & gt; print (flaga);
  • true
  • Nowa instrukcja `import` pozwala zaimportować jedną lub więcej bibliotek bez umieszczania ich nazw w cudzysłowach, np. "import calc, stats" jest równoważne "readlib (" calc "," stats ")".
  • Opcja `alias` do instrukcji` import` przypisuje jedną lub więcej krótkich nazw do zainicjowanych funkcji bibliotecznych, np. "import calc alias xpdiff" jest równoważne "with ('calc', 'xpdiff')", a "import calc alias" jest równoważne "with ('calc')".
  • Nowy operator `..` pozwala na indeksowanie tabel, nawet jeśli jego lewy operand ma wartość` null`. W tym przypadku zwracana jest wartość `null` i nie jest wysyłana` próba wywołania pola ... (wartość pusta) `. Jest podobny do funkcji `getentry`, ale jest trzy razy szybszy. Przykłady:
  • & gt; utwórz tabelę a;
  • & gt; a.b:
  • null
  • & gt; a.b.c:
  • Błąd na stdin, w linii 1:
  • spróbuj zaindeksować pole `b` (wartość pusta)
  • & gt; a..b..c:
  • null
  • & gt; utwórz tabelę a;
  • & gt; a [1]:
  • null
  • & gt; a [1] [2]:
  • Błąd na stdin, w linii 1:
  • próba indeksowania pola `?` (wartość pusta)
  • & gt; a .. [1] .. [2]:
  • null
  • Nowa funkcja `drem` ocenia resztę dzielenia liczby całkowitej x / y, ale w przeciwieństwie do` irem` zaokrągla iloraz wewnętrzny x / y do najbliższej liczby całkowitej zamiast do zera.
  • Nowa funkcja `skycrane.todate` zwraca bieżącą datę i godzinę jako sformatowany ciąg znaków.
  • Nowa funkcja `io.truncate` obcina plik w bieżącej pozycji pliku.
  • Nowa funkcja `io.move` zmienia pozycję pliku o określoną liczbę znaków w lewo lub w prawo.
  • Nowa funkcja `io.filesize` zwraca rozmiar pliku.
  • `readlib` akceptuje teraz tylko łańcuchy jako swoje argumenty. Liczby są już niedozwolone.
  • Jeśli ostatnim argumentem dla `with` jest boolean` false`, to funkcja nie zapisuje przypisanych skrótów do konsoli (stdout).
  • `strings.fields` teraz akceptuje także sekwencję numerów indeksów. Nie akceptuje już jednak dłużej indeksu `0`.
  • Instalator Debian Raspberry Pi Wheezy zawiera teraz pakiet graficzny `gdi`.
  • Plik `change.log` jest teraz poprawnie wyświetlany w systemie Windows.

Co nowego w wersji 2.0.0 RC3:

  • Nowe warianty pętli `for / as` i` for / until` sprawdzają warunek na końcu bieżącej iteracji i albo rozpoczynają następną iterację, albo opuszczają pętlę. Działa to zarówno dla pętli / do, jak i dla pętli /.

Co nowego w wersji 2.0.0 RC2:

  • Nowe warianty pętli `for / as` i` for / until` sprawdzają warunek na końcu bieżącej iteracji i rozpoczynają następną iterację lub kończą pętlę. Działa to zarówno dla pętli / do, jak i dla pętli /.

Co nowego w wersji 2.0.0 RC1:

  • Nowa instrukcja `import` pozwala zaimportować jedną lub więcej bibliotek bez umieszczania ich nazw w cudzysłowach, np. "import calc, stats" jest równoważne "readlib (" calc "," stats ")".
  • Opcja `alias` do instrukcji` import` przypisuje jedną lub więcej krótkich nazw do zainicjowanych funkcji bibliotecznych, np. "import calc alias xpdiff" jest równoważne "with ('calc', 'xpdiff')", a "import calc alias" jest równoważne "with ('calc')".
  • Nowy operator `..` pozwala na indeksowanie tabel, nawet jeśli jego lewy operand ma wartość` null`. W tym przypadku zwracana jest wartość `null` i nie jest wysyłana` próba wywołania pola ... (wartość pusta) `. Jest podobny do funkcji `getentry`, ale jest trzy razy szybszy.

Co nowego w wersji 1.12.9:

  • Nowe funkcje `io.getclip` i` io.putclip` wymieniają teksty pomiędzy Agena i schowkiem (tylko Windows).
  • `stats.prange` został przepisany w C i stał się nawet o 60% szybszy.
  • `os.cpuinfo` teraz zwraca poprawne i więcej informacji na temat systemów opartych na ARM.
  • W systemach DOS i UNIX, w tym Mac OS X i tylko w domenie złożonej, potęgowanie podstawy 0 do wykładnika 0 + r * I, przy r dowolnym niezerowym float, zwróciło `undefined` zamiast 0. Zostało to naprawione.
  • W systemach DOS i UNIX, w tym w Mac OS X i tylko w domenie złożonej, potęgowanie podstawy 0 do wykładnika r + 0 * I, z r dowolną wartością dodatnią, zwróciło "niezdefiniowane" zamiast 0. To ma zostało naprawione.
  • `stats.obcount` i` stats.obpart` nie mogą zawierać wartości w skrajnym prawym podprzedziale. Zostało to naprawione.
  • `calc.nakspline`,` calc.naksplinecoeffs`, `calc_clampedspline` i` calc_clampedsplinecoeffs` wywołał usterki segmentacji, jeśli zostały wywołane ze strukturą zawierającą zbyt mało punktów, tj. par. Zostało to naprawione przez zwrócenie `fail` w tych przypadkach.
  • Błędy potencjalnej alokacji pamięci zostały usunięte z `calc.neville`,` calc.interp`, `calc.newtoncoeffs`,` calc.naksplinecoeffs`, `calc.clampedsplinecoeffs`,` calc.nakspline`, i `calc.clampedspline`.
  • Nowa funkcja API C `agn_checkinteger` sprawdza, czy argument jest liczbą i liczbą całkowitą, i - w przeciwieństwie do" luaL_checkinteger "- w innym przypadku powoduje błąd.

Co nowego w wersji 1.9.0:

  • Nowa funkcja `alternate` zwraca pierwszy argument, jeśli jej drugim argumentem jest` null`. W przeciwnym razie zwraca drugi argument.
  • Przełącznik -b do pliku wykonywalnego Agena został usunięty, ponieważ jego wyjście było takie samo jak opcja -v.
  • Wersje `strings.utf8size` w systemach Windows i UNIX / Mac zawierały potencjalny wyciek pamięci; to zostało zmienione.
  • Wszystkie binarne biblioteki DLL / SO bibliotek plus nie zawierają już nieużywanego kodu, odchudzając ich rozmiary nawet o 10 procent, w zależności od systemu operacyjnego. Plik makefile i źródła poprzednio importujące nieużywane pliki nagłówkowe zostały zmienione. Na przykład to w ogóle zmniejsza rozmiar plików binarnych systemu Windows o 55 KB.
  • Rozszerzyłem pakiet testów.
  • Zaktualizowano pliki schematów.

Co nowego w wersji 1.6.0:

  • Nowe funkcje i funkcje:
  • Nowa funkcja `checktype` określa, czy wszystkie wartości w strukturze są danego typu.
  • Nowa funkcja `isint` sprawdza, czy wszystkie jej argumenty są liczbami całkowitymi.
  • Nowa funkcja `strings.dleven` zwraca odległość Damerau-Levenshtein dwóch ciągów.
  • Nowa funkcja `stats.ad` określa bezwzględne odchylenie wszystkich wartości w strukturze.
  • Nowa funkcja `stats.countentries` zlicza liczbę wystąpień wszystkich elementów w strukturze.
  • Nowa funkcja `stats.deltalist` zwraca strukturę deltów odpowiednich sąsiednich elementów.
  • Nowa funkcja `stats.gmean` zwraca średnią geometryczną struktury.
  • Nowa funkcja `stats.hmean` zwraca średnią harmoniczną struktury.
  • Nowa funkcja `stats.ios` zwraca sprawdzony wskaźnik stabilności w dystrybucji.
  • Nowa funkcja `stats.iqr` zwraca zakres międzykwartylowy.
  • Nowa funkcja `stats.issorted` sprawdza, czy wszystkie liczby w strukturze są posortowane w porządku rosnącym.
  • Nowa funkcja `stats.moment` oblicza moment podanych danych o pochodzeniu.
  • Nowa funkcja `stats.numbperm` zwraca liczbę permutacji.
  • Nowa funkcja `stats.percentile` określa percentyle.
  • Nowa funkcja `stats.skewness` zwraca skośność, wskaźnik symetrii rozkładu prawdopodobieństwa.
  • Nowa funkcja `stats.sumdata` podsumowuje wszystkie moce struktury o pochodzeniu.
  • `stats.tovals` jest teraz funkcją biblioteki C i dlatego jest do 40 procent szybsza.
  • Przy pustej tabeli lub sekwencji, `stats.qmean`,` stats.mean`, `stats.gmean`,` stats.sd`, `stats.median`,
  • `stats.var` teraz zwraca błąd.
  • Maksymalna długość linii wejściowej w autonomicznym tłumaczu została zmieniona z 512 na 2048 znaków.
  • Nowa zmienna środowiskowa `environ.maxpathlength` przechowuje maksymalną liczbę znaków dla ścieżki pliku (bez znaku C).
  • Nowe zmienne środowiskowe `environ.minnumber` i` environ.maxnumber` zawierają minimalną i maksymalną wartość, jaką może przechowywać numer Agena (obecnie podwójny ANSI-C).
  • Nowa zmienna środowiskowa `environ.umaxlong` zawiera maksymalną całkowitą wartość typu C bez znaku w 32 + bitach i niepodpisaną długą na 16-bitowych maszynach.
  • C API:
  • 100% zgodność interfejsu API Agena C z interfejsem API Lua została przywrócona dzięki wprowadzeniu funkcji zrzutu Lua. W ten sposób można teraz przechowywać funkcje w postaci binarnej, np. za pomocą `strings.dump` lub lua_dump na poziomie C.
  • Wprowadzono nową funkcję `agnL_optboolean`, aby sprawdzić opcjonalne argumenty typu Boolean i zwrócić je w przypadku powodzenia.
  • Poprawione błędy:
  • `environ.globals` zawsze kończy się błędem, zostało to naprawione.
  • `assume` zwrócił false, gdy oba argumenty są lub są wartościami 'undefined'. Teraz w tym przypadku zwraca true.
  • Agena uległa awarii podczas przekazywania pustej tabeli i separatora do `join` - zostało to naprawione.
  • Opcja `colour` nie jest już ignorowana przez` gdi.plot`.
  • W przypadku tabel wartości `stats.minmax` zwróciły błędną wartość minimalną. Teraz działa poprawnie.
  • Przy pustej tabeli, `stats.median` zwróciło 0, teraz zwraca błąd.
  • W przeciwieństwie do dokumentacji, `strings.isending` zwróciło 'true', przy czym oba łańcuchy są równe. Zostało to naprawione.
  • `run` zwróciło` could not open file`, jeśli istniejący skrypt Ageny zawierał błąd składniowy. Zostało to naprawione przez całkowite przepisanie funkcji.
  • Dodano Lua 5.1.4, łatka 9: "Niepoprawne generowanie kodu dla niektórych konkretnych [np. złożonych] wyrażeń logicznych."
  • Dodano Lua 5.1.4, łatka 11: "Parser może zbierać prototyp podczas budowania."
  • * Informacje: Dodanie Lua 5.1.4, łatka 10, "indeks meta_od __write / __ new może nie działać, jeśli metatable jest jego własnym metatable", do Ageny nie jest konieczne, ponieważ Agena już działa poprawnie w tym przypadku.
  • Usunięto nieużywane słowo kluczowe `default`.
  • Pewne utwardzenie funkcji i funkcji.
  • Ulepszenia:
  • Dodano _experimental_ wersję `io.anykey` do wersji na Maca. Jednak przynajmniej na Lion, naciśnięty klawisz jest czasami odbijany na powłoce.
  • `utils.readcsv` może teraz opcjonalnie zwrócić wszystkie wartości w pliku CSV w płaskiej sekwencji.
  • Pakiet `clock` obsługuje teraz operatora podziału` / `, dodając go do metatable operatora` tm`.
  • Zachowanie `z` zostało zmienione, ponieważ nie mogło nadawać krótkich nazw dla wielu funkcji bibliotecznych: Jeśli funkcje zostały umieszczone w tabeli .aux, nie przypisuj krótkich nazw dla tych nazw funkcji; w przeciwnym razie przypisz krótkie nazwy dla _all_ innych funkcji pakietu. Zatem: `pakiet.register`, aby zarejestrować wszystkie funkcje biblioteki dla` z`, aby przypisać krótkie nazwy, nie jest już potrzebny. Zostanie wycofany w jednej z następujących wersji.
  • Poprawiono pakiet testów.
  • Manual:
  • Poprawiono podręcznik i indeks.
  • Spójność:
  • W przypadku wszystkich ponownej zmiany nazwy nadal używane są stare nazwy zmiennych.

  • Nazwa `environ.MinLong` została zmieniona na` environ.minlong`.
    Nazwa `environ.MaxLong` została zmieniona na` environ.maxlong`.
    Nazwa `environ.BufferSize` została zmieniona na` environ.buffersize`.
    Nazwa `environ.PathSep` została zmieniona na` environ.pathsep`.
  • `environ.More` został przemianowany na` environ.more`.

  • Nazwa `environ.WithProtected` została zmieniona na` environ.withprotected`.
    Nazwa `environ.Os` została zmieniona na` environ.os`.
    Nazwa `environ.Cpu` została zmieniona na` environ.cpu`.
    Zmieniono nazwę
  • `environ.Release` na` environ.release`.
  • Zmieniono nazwę

  • `environ.GdiDefaultOptions` na` environ.gdidefaultoptions`.
  • W Windows, `os.login` i` os.computername` teraz zwracają 'fail', tak jak robią to wersje UNIX lub OS / 2.
  • Przełącznik `-DCOMPAT13` został ostatecznie usunięty w celu skompilowania wersji zgodnej z Agena 1.3.x.
  • Inne:
  • Przestarzałe polecenie `calc.fseq` zostało usunięte. Zamiast tego użyj `nseq`.

Co nowego w wersji 1.5.1:

  • Poprawiono `strings.fields`, które w ogóle nie działało. Ponadto został przekonwertowany na funkcję biblioteki C, a zatem jest 2,6 razy szybszy.
  • `strings.words` akceptuje teraz trzeci argument, jeśli ustawione na" true ", kolejne ograniczniki są ignorowane.
  • Usunięto potencjalny wyciek bezpieczeństwa z `io.write` i` io.writeline` i poprawiono komunikaty o błędach.
  • Poprawiono "binio.readchar", aby uniknąć problemów z plikami o rozmiarze większym niż 2 GB.
  • Poprawiono komunikaty o błędach funkcji `xbase.purge`,` xbase.readvalue`, `xbase.purge`,` ads.getvalues`, `binio.readshortstring`,` os.computername`, `os.login`, `os.fattrib`,` environ.kernel`, `pakiet.register`.
  • Terabajty można teraz wprowadzić z notacją T, gdzie jest liczbą całkowitą, a T jest znakiem `T`. Podobnie g oznacza miliardy i biliony. Aby uzyskać więcej informacji, patrz strona 48 instrukcji.
  • Zaktualizowano podręcznik.
  • Zasadniczo wszystkie przełączniki zgodności wstecznej w kodzie źródłowym C zostały usunięte ze względów oczyszczenia kodu. Dotyczy to tylko tych, którzy próbują rekompilować Agena w wersji 1.5 lub wyższej z pełną kompatybilnością wsteczną z Agena 1.3 i 1.4 oraz z większością kompatybilności wstecznej z Lua 5.0 (z wyjątkiem starej biblioteki Lua 5.0).

Co nowego w wersji 1.5.0:

  • `map` teraz może również przetwarzać łańcuchy podane jako drugi argument. Odpowiednia funkcja i jej argumenty są kolejno stosowane do każdego znaku od lewej do prawej, a wynik jest zwracany w sekwencji.
  • `run`: Jeśli chcesz załadować i uruchomić kod z plików z sufiksem" agn ", nie musisz już określać sufiksu w argumencie. Więc `run 'test'` i` run' test.agn'` są teraz takie same.
  • Słowo kluczowe `is` jest teraz obowiązkowe w celu zdefiniowania procedur. (W GCC użyj przełącznika -DCOMPAT14, aby skompilować wersję Ageny, w której słowo kluczowe `is` jest opcjonalne.)
  • Instrukcja "try" została uznana za przestarzałą i nie jest już obsługiwana. (W GCC użyj przełącznika -DCOMPAT14, aby skompilować wersję Ageny, która nadal zawiera tę instrukcję.)
  • Następujące funkcje `utils` zostały usunięte:` arraysize`, `getarray`,` getwholearray`, `newarray`,` searcharray`, `setarray`. Ze względu na kompatybilność wsteczną zostały one dodane do pliku lib / compat.agn. (W GCC użyj przełącznika -DCOMPAT14, aby skompilować wersję Ageny, która nadal obsługuje oryginalne funkcje utils.)
  • `utils.singlesubs` został całkowicie przepisany. Teraz oczekuje sekwencji liczb jako drugiego argumentu zamiast poprzedniej struktury ciągów danych. Jest o 35% wolniejsza od poprzedniej wersji, ale ważniejsze jest usunięcie struktury stringarray.
  • `strings.include` uległo awarii, jeśli zostanie wywołane z 0 jako drugim argumentem. Zostało to naprawione.
  • Zastosowałem łatkę Michaela G. Schwera z 10 maja 2011 do jego funkcji pomocniczych datujących 32-bitowe lata 2038-Fix, używanych przez pakiety `os` i` xbase` (Make mktime64 () poprawi przychodzącą strukturę tm jak wymaga ISO. ")
  • Optymalizacja kodu wewnętrznego: inicjalizacja biblioteki i ładowanie plików. Funkcje C używały stosu do budowania ścieżek i łańcuchów nazw plików. Nowa funkcja C aux "concat" napisana przez Solar Designer jest obecnie używana w wielu przypadkach.
  • API Agena C jest teraz w 100% kompatybilne z API Lua C, aby ułatwić przenoszenie pakietów C Lua do Ageny.
  • Zmieniono nazwy następujących funkcji: lua_isnumber - & gt; agn_isnumber, lua_isstring - & gt; agn_isstring, luaL_optnumber - & gt; agnL_optnumber, luaL_check numer - & gt; agnL_check numer, luaL_optnumber - & gt; agnL_optnumber, luaL_checkinteger - & gt; agnL_checkinteger, luaL_optinteger - & gt; agnL_optinteger.
  • Zmieniono nazwy następujących makr: luaL_checkint - & gt; agnL_checkint, luaL_optint - & gt; agnL_optint.
  • W przeciwieństwie do poprzedniej implementacji Agena, lua_tonumber teraz zwraca 0 jak w Lua na wypadek, gdyby liczba została przekazana, zamiast zwracania HUGE_VAL.
  • lua_setglobal2 został usunięty. Zamiast tego użyj lua_pushvalue i lua_setglobal.

Co nowego w wersji 1.4.2:

  • Jeśli w liście parametrów procedury zdefiniowano typy zdefiniowane przez użytkownika, w
  • wywołanie procedur nie spowodowało błędów, a procedura została wykonana zamiast tego w następujących przypadkach:
  • a) tabela, zestaw, sekwencja, para lub procedura - bez definiowania przez użytkownika
  • type - minął,
  • b) dla danego parametru nie przekazano żadnej wartości.

Co nowego w wersji 1.4.1:

  • Skrócone nazwy dla `stats.quartiles` i` stats.mode` nie mogły być przypisane przez funkcję `with`. Zostało to naprawione.
  • Błędnie, `with` nie może przypisać krótkiej nazwy dla` gdi.settriangle`. To zostało zmienione.
  • Poprawiono obsługę błędów `calc.polygen`.
  • Poprawiono komunikat o błędzie "fractals.draw" dla brakujących plików map FRACTINT.
  • Usunięto przestarzałą funkcję `strings.rseek`. W celu zapewnienia zgodności z poprzednimi wersjami plik "strings.seek" został dodany do pliku lib / compat.agn.
  • Dodano przełącznik -d, aby wydrukować informacje dotyczące debugowania podczas uruchamiania interpretera.
  • Wersja Agena dla systemu Windows została skompilowana z GCC 4.5.2.
  • Zaktualizowane pliki schematów językowych.
  • Podręcznik został zaktualizowany.

Co nowego w wersji 1.4.0:

  • Zmiany semantyczne:
  • Zmienne sterujące pętli numerycznych pętli `for / to` są teraz automatycznie lokalne dla ich bloków otaczających zamiast ich (wewnętrznych) brył pętli. Jeśli lokalna zmienna o takiej samej nazwie jak zmienna sterująca pętli została zadeklarowana i przypisana przed
  • wykonanie pętli numerycznej jest nadpisywane przez ostatnią wartość iteracji pętli. Jako taki, przełącznik `external` w numerycznych pętlach` for` nie jest już akceptowany. (W GCC użyj przełącznika -DCOMPAT13, aby skompilować wersję Ageny, która nadal rozpoznaje słowo kluczowe "external".)
  • Przy stałym `fail`,` not` zwrócił `true`, ale z` fail` przypisanym do zmiennej, `not` zwrócił false. Zostało to zmienione, tj. "A: = fail; not (a) "teraz zwraca` true`.
  • `stats.median` zwraca teraz` fail` zamiast 0, jeśli dana struktura jest pusta.
  • `utils.readcsv`: Jeśli pojedyncze białe pole zostanie przekazane z opcją` delim` i jeśli nie zostanie podana opcja `ignorespaces`, przestrzenie białe nie zostaną automatycznie usunięte przed rozdzieleniem każdej linii pliku na jego słowa.
  • Funkcja ma również dwie nowe opcje: `header`, która oznacza pierwszą linię w pliku, oraz` output`, która pozwala na zapisanie zawartości pliku do słownika z nazwami pól zdefiniowanymi przez nagłówek pliku.
  • Notacja podłańcuchowa `$` nie jest już obsługiwana. (W GCC użyj przełącznika-DCOMPAT13, aby skompilować wersję Ageny, która nadal obsługuje operatora `$`.)
  • Rozszerzenia:
  • Dodano nieskończone pętle do / od. Ten rodzaj pętli iteruje w nieskończoność i może być przerywany tylko za pomocą instrukcji `break` lub` return`. Są to cukier syntaktyczny dla pętli `while true do ...'`.
  • W tabelach `stats.minmax` poprzednio działało tylko z tablicami. Zostało to zmienione, tj. Wartości z odpowiednimi kluczami dodatnimi (na przykład łańcuchy, dodatnie liczby całkowite, ujemne i dodatnie zmienne itd.) Są teraz prawidłowo rozpoznawane w procesie oceny.
  • `stats.mean`,` stats.qmean`, `stats.sd` i` stats.var` teraz także przetwarza sekwencje.
  • Nowa funkcja `stats.mode` zwraca wszystkie wartości w sekwencji lub tabeli o największej liczbie wystąpień, tj. o najwyższej częstotliwości.
  • Nowa funkcja `stats.quartiles` zwraca pierwszy, drugi i trzeci kwartyl_sortowanej tabeli lub sekwencji.
  • Wcześniej nieudokumentowane funkcje `linalg.matrix` zostały dodane do podręcznika, a obsługa błędów została poprawiona.
  • Poprawiona obsługa błędów w `linalg.hilbert`.
  • `gdi.setinfo` akceptuje teraz opcję` square`. Jeśli `square = false`, wówczas osie x i y nie będą miały tej samej skali na działkach utworzonych za pomocą` gdi.plot`.
  • Niestety, funkcja `gdi.plot` do rysowania grafiki nie została udokumentowana. To zostało zmienione.
  • `gdi.plot` akceptuje dwie nowe opcje: Opcja 'x' określa poziomy zakres, w którym wyświetlany jest wykres, a opcja" y "określa zakres pionowy.
  • Jeśli struktura PLOT zostanie przekazana do `gdi.plot`, która zawiera tylko POINT, LINIE, PROSTY, TRÓJKĄTY, CIRCLE i ELLIPSE (łącznie z wariantami * FILLED), wówczas` gdi.plot` automatycznie określa skalę (` gdi.setinfo` niekoniecznie musi być wywołany).
  • Funkcje OOP odziedziczone po Lua są teraz udokumentowane w Dodatku A9. Autor nie zaleca programowania obiektowego.
  • Tuning:
  • Dostrajany operator "wypełniony" o około 3%.
  • Zmieniono `in`,` join`, `sadd`,` qsadd`, `replace`,` copy`, `unique` oraz operatory zbioru Cantora na tabelach i zestawy bitów.
  • W przypadku tabel operatory `top` i` bottom` są teraz około 5% szybsze.
  • Operator `size` jest co najmniej o 8% szybszy, jeśli tabela nie zawiera wartości null.
  • `linalg.mzip`,` linalg.mmul` oraz `linalg.transpose` zostały dostrojone o około 3%.
  • Numeryczne pętle / / z ułamkowymi rozmiarami kroku zostały zoptymalizowane poprzez zmniejszenie liczby zmiennych sterujących o połowę. To jednak nie zwiększyło prędkości.
  • Łaty:
  • Poprawiono `linalg.ludecomp`, aby wykryć pojedyncze macierze. Funkcja może teraz automatycznie określać kolejność danej macierzy.
  • W przeciwieństwie do instrukcji, `gdi.plot` nie określa automatycznie zakresów poziomych i pionowych. Zostało to naprawione.
  • `gdi.plot` nie ignoruje już opcji` square` określonej przez `gdi.setinfo`.
  • `gdi.setinfo` dodał ustawienia do struktur INFO, nawet jeśli były już obecne. To zostało zmienione.
  • Okręgi nie zostały poprawnie wydrukowane przez `gdi.plot`. To zostało zmienione.
  • Funkcja `gdi.plot` w większości przypadków ignorowała indywidualny kolor obiektów geometrycznych. To zostało zmienione.
  • Pakiet gdi nie przypisywał krótkich nazw dla `gdi.settriangle`,` gdi.settrianglefilled`, `gdi.setrectangle` oraz` gdi.setrectanglefilled`. To zostało zmienione.
  • Pakiet fractals nie przypisywał krótkich nazw dla funkcji typu "esctime" zdefiniowanego przez użytkownika. To zostało zmienione. Poprawiono komunikat o błędzie "fractals.draw", jeśli argumenty pozycyjne nie były liczbami.
  • Różne:
  • Funkcjonalność `calc.fseq` została scalona z` nseq`. Ze względu na kompatybilność wstecz, `calc.fseq` nadal jest częścią pakietu calc, ale funkcja faktycznie odnosi się do implementacji` nseq`.
  • Dodano zmienną `environ.FractScreenUpdates` do` pakietu fraktali` w celu oznaczenia liczby pionowych linii (nieujemnej liczby całkowitej), po których fraktal zostanie zaktualizowany w oknie. Zmienna `environ.FractOptimised` jest przestarzała.
  • Pomocnicze funkcje gdi zostały przegrupowane.

Co nowego w wersji 1.3.3:

  • Łaty na `instr`:
  • W trybie regex operator zwrócił zły wynik, jeśli podano pozycję początkową.
  • W trybie wyszukiwania zwykłego operator zwrócił błąd poza zakresem, jeśli nie podano pozycji początkowej.
  • Z wyjątkiem odwrotnego trybu wyszukiwania, jeśli nie znaleziono żadnego dopasowania, pierwszy argument został zwrócony zamiast `null`.
  • Poprawiono komunikat o błędzie instrukcji "create" w odniesieniu do sekwencji.
  • W AgenaEdit, gdy wypisywano więcej niż jedną strukturę z jednym wywołaniem `print`, struktury nie były drukowane w pełnej formie, jeśli pierwsza struktura zawierała __tostring metamethod. To zostało zmienione.

Co nowego w wersji 1.3.2:

  • To wydanie zawiera poprawki błędów, rozszerzenia i ulepszoną instrukcję:
  • `wymiar` stworzył interesujące wyniki, jeśli struktura została przekazana jako
  • inicjator. Zostało to zmienione: `dimension` tworzy teraz niezależne kopie
  • struktura podczas inicjowania tabeli.
  • Funkcjonalność `strings.rseek` została dodana do operatora` instr`.
  • Tak więc, `strings.rseek` jest przestarzałe. Ze względu na kompatybilność wsteczną,
  • `strings.rseek` został dodany do pliku lib / compat.agn.
  • `struny.hits` obsługuje teraz wyrażenia regularne i przechwytuje. To zachowanie
  • można wyłączyć, przekazując wartość logiczną jako trzeci argument.
  • `strings.isabbrev` i` strings.isending` teraz automatycznie używają zwykłego wyszukiwania
  • jeśli żadne wyrażenia regularne lub przechwycone nie zostały przekazane jako część drugiego
  • argument.
  • Zmodyfikowaliśmy `strings.ismagic` i` strings.isfloat`.
  • Funkcja `log` jest teraz o 13% szybsza.
  • Podczas wysyłania więcej niż jednej struktury za pomocą tylko jednego wywołania `print`,
  • Struktury nie zostały wydrukowane w pełnej formie, jeśli pierwsza struktura zawierała __tostring
  • metamethod. To zostało zmienione.
  • Dodano kategoryzację funkcji do rozdziału 7, aby ułatwić rozpoczęcie nowego
  • użytkowników.

Co nowego w wersji 1.3.1:

  • Wystąpiły problemy z zagnieżdżonymi wywołaniami następujących operatorów binarnych: `xor`,` atendof`, `& amp;` `` || `,` ^^ `,` :: `i`: - `, a więc także z ładną drukarką, która zakończyła się błędem podczas drukowania struktur zagnieżdżonych. Zostało to naprawione.
  • Cztery poprawki do `os.list`: Jeśli opcja" r "została przekazana, bieżący katalog roboczy został błędnie zmieniony po zakończeniu połączenia.
  • Jeśli "r" nie został przekazany jako ostatni argument, funkcja wygenerowała błąd.
  • `null` nie został zaakceptowany jako pierwszy argument oznaczający bieżący katalog roboczy.
  • W systemie Windows 7 drukowanie zawartości katalogu głównego nie działało, tzn. os.list ("c:") zwrócił zawartość bieżącego katalogu roboczego.
  • Kiedy łańcuch został zaindeksowany przy użyciu nieliczba, np. "str [null]", Agena zwróciła `null`. Teraz powstaje błąd.
  • Jeśli nie znaleziono biblioteki library.agn, w ostrzeżeniu została wypisana podwójna ścieżka. To zostało zmienione.

Co nowego w wersji 1.2:

  • Operator podciągu został przeprojektowany, ale stara wersja będzie nadal dostępna do Agena 2.0: nowa to: `str [left to right]`, poprzednia to: `str $ (left, right)` . Przykład: before: `str: = 'string'; print (str $ (2, 3)) `- & gt; "tr" now: `str: = 'string'; print (str [2 do 3]) `- & gt; "tr"
  • Teraz możesz określać podlisty tablic tablicowych i sekwencji z nową składnią wymienioną powyżej: `s [od lewej do prawej]`. Przykład: teraz: `a: = [10, 20, 30, 40]; print (a [2 to 3]) `- & gt; [20, 30] teraz: "a: = seq (10, 20, 30, 40); print (a [2 to 3]) `- & gt; seq (20, 30)
  • Funkcja `ops` pozwala teraz określić zwracane wartości, przekazując sekwencję ich pozycji indeksowych jako swój pierwszy argument, np. ops (seq (1, -1), 10, 20,
  • 30).
  • Nowa funkcja `strings.include` wstawia sekwencję znaków do łańcucha
  • na określonej pozycji.
  • Następujące funkcje powodują teraz błąd zamiast po prostu zwracać `fail` w
  • przypadek awarii: `os.remove`,` os.move`, `os.mkdir`,` os.rmdir`, `os.chdir`.
  • Ulepszenia następujących operatorów operujących na zestawach i sekwencjach dotyczących usuwania śmieci: instrukcja `insert`,` union`, `intersection`,` minus`, `unique`,` copy`, `pop / top` i `pop / bottom` oraz ustaw przypisania.
  • Poprawiony komunikat o błędzie "fractals.draw", jeśli plik mapy kolorów FRACTINT nie ma
  • nie znaleziono.

Co nowego w wersji 1.1.0:

  • To wydanie zawiera nową funkcjonalność i oczyszczoną przestrzeń nazw.
  • Zgodność z Agena 1.0:
  • Niektóre funkcje zostały usunięte z Ageny, a niektóre zostały przekształcone w funkcje pakietowe (patrz poniżej). Jeśli nadal chcesz z nich korzystać, wydaj polecenie readlib 'compat' w wierszu poleceń lub umieść powyższą instrukcję w pliku inicjalizacyjnym, jeśli wolisz kompatybilność wsteczną z Agena 1.0.
  • Rozszerzona funkcjonalność:
  • Polecenia `pop / top` i` pop / bottom` oraz `bottom` i` top` mogą być teraz zastosowane do tablic tablicowych.
  • W przypadku wywołania z `null` lub bez argumentów,` os.chdir` nie powoduje już błędu, ale zwraca bieżący katalog roboczy. Tak więc poprzednia funkcja `os.curdir` została zastąpiona jedną z wersji napisanej w języku Agena.
  • `os.list` teraz rekursywnie przechwytuje podfoldery, jeśli podano nową opcję" r ".
  • Operator `join` teraz akceptuje również opcjonalny separator i obsługuje opcję określenia pierwszego i ostatniego elementu łączonej struktury.
  • `instr` może teraz wyszukiwać z prawego końca łańcucha, przekazując ujemną pozycję.
  • Jeśli tabela zawiera inne tabele, zestawy, sekwencje lub pary, `copy` teraz wie, jak poprawnie obsłużyć te odniesienia, jeśli występują one wiele razy: jeśli wbudowana struktura jest zawarta n razy, wówczas tworzona jest jedna prawdziwa kopia i n-1 dodaje się odniesienia do tej nowo utworzonej struktury. Wcześniej wykonano niezależne kopie.
  • Nowa funkcja `isnonposint` sprawdza, czy podane liczby są liczbami całkowitymi i nie są dodatnie.
  • `io.close` może teraz zamykać wiele plików tylko jednym połączeniem.
  • Funkcja `with` nie przypisywała krótkich nazw dla następujących procedur pakietu` matematyka`: `convertbase`,` fraction`, `zeroin`,` todecimal`, `lcm`,` gcd` oraz ` ndigits`. To zostało poprawione.
  • Funkcja `rwritemode` wspomniana w instrukcji nie istnieje. Jest teraz dostępny, ale nazywa się `rmode`.
  • Poprawiono komunikaty o błędach różnych funkcji.
  • Oczyszczanie przestrzeni nazw: zmiana nazwy lub przeniesione funkcje:
  • Funkcje biblioteki "register` i` loadclib` zostały przeniesione do biblioteki `pakiet`.
  • Funkcje "rdelete`,` rget`, `rinit`,` roinit`, `rmode`,` rset`, `remember` oraz` defaults` zostały przeniesione do nowego pakietu `rtable` .
  • Zmienił nazwę globalnej tabeli _Env na `environ`, która teraz zawiera również procedury dostępu do środowiska.
  • Zmienne środowiskowe "homedir" i "infolevel" zostały zmienione odpowiednio na `environ.homedir` i` environ.infolevel`.
  • Następujące funkcje biblioteki podstawowej zostały przeniesione do pakietu `environ`:` anames`, `attrib`,` gc`, `getfenv`,` globals`, `isselfref`,` pointer`, `setfenv` , `used`,` userinfo`, `__RESTART`,` __DOTTYPRINT`.
  • Zmieniono nazwę `mapm.xtoNumber` na` mapm.xtonumber`, zmieniono nazwę `mapm.xtoString` na` mapm.xtostring`. Ze względu na kompatybilność wsteczną stare nazwy funkcji mogą być nadal używane przez wykonanie pliku lib / compat.agn (najpierw odczytaj pakiet `mapm`, a następnie załaduj plik compat.agn).
  • Przestarzałe funkcje i zmienne:
  • `strings.seek` jest przestarzałe. Jego funkcjonalność została dodana do operatora `instr`. Aby wyłączyć tryb dopasowywania wzorca `instr`, przekaż początek wyszukiwania jako trzeci i" prawdziwy "jako czwarty argument. `instr` jest około 40% szybszy w trybie dopasowania bez wzorca niż` strings.seek`. W celu zapewnienia zgodności z poprzednimi wersjami plik "strings.seek" został dodany do pliku lib / compat.agn.
  • Funkcja biblioteki bazowej `concat` została usunięta. Zamiast tego użyj `join`. W celu zapewnienia zgodności wstecznej poprzednia funkcja została dodana do pliku lib / compat.agn.
  • Funkcje `hasrtable` i` hasrotable` zostały usunięte. Ze względu na kompatybilność wsteczną zostały one dodane do pliku lib / compat.agn.
  • Funkcja `pcall` jest przestarzała. Zamiast tego użyj `protect`. W celu zapewnienia kompatybilności wstecz, funkcja została dodana do pliku lib / compat.agn.
  • Funkcja `maptoset` jest przestarzała. W celu zapewnienia kompatybilności wstecz, funkcja została dodana do pliku lib / compat.agn.
  • Funkcja `os.alldirs` jest przestarzała. Zamiast tego użyj opcji 'dirs' i 'r' w wywołaniu `os.list`. W celu zapewnienia kompatybilności wstecz, funkcja została dodana do pliku lib / compat.agn.
  • `os.isMac`,` os.isSolaris`, `os.isLinux`,` os.isWin`, `os.isOS2`,` os.isDOS`, `os.isHaiku` zostały przestarzałe. Proszę użyć nowych zmiennych środowiskowych environ.Os i environ.Cpu, które również przyspieszają kod. Ze względu na kompatybilność wsteczną funkcje zostały dodane do pliku lib / compat.agn.
  • Nieudokumentowana zmienna _VERSION została usunięta. W celu zapewnienia kompatybilności wstecz jego przypisanie zostało dodane do pliku lib / compat.agn.
  • Inne zmiany:
  • Funkcja interfejsu API lua_rawsetstringnumber wymieniona w instrukcji nie istnieje. To zostało zmienione.
  • Optymalizacje kodu do analizatora składni.
  • W niektórych pakietach przypadkowo kilka zmiennych zostało domyślnie uznanych za globalne. Zostało to naprawione.
  • Skorygowano i zaktualizowano przykładowe pliki inicjalizacyjne.
  • AgenaEdit został zaktualizowany.
  • Pliki schematów językowych zostały zaktualizowane.
  • Instalatorzy Linux zawierają teraz pakiet xBase.

Co nowego w wersji 1.0.6:

  • Poprawiono komunikaty o błędach operatorów `join`,` copy` i `filled`, funkcji` toset`, `toseq` i` totable`, instrukcji `insert`,` delete`, `pop`,` i pętli `for`.
  • W przypadku sekwencji Agena uległa awarii w następującej sekwencji zdarzeń: 1) wykonano instrukcję "delete", 2) pustą sekwencję i 3) ponownie wstawiono nowy element. Zostało to naprawione. (Wewnętrznie, instrukcja `delete` już nie wewnętrznie zmniejsza wielkość sekwencji dłużej.)
  • W przypadku dużych ciągów `concat` uległo awarii. Zostało to naprawione.
  • W przypadku ciągów o rozmiarze 512 i więcej bajtów, `join` i` replace` mogą ulec awarii. Zostało to naprawione. Dwóch operatorów jest teraz znacznie szybszych niż kiedykolwiek wcześniej.
  • `math.isprime` zwrócił nieprawidłowe wyniki z argumentami & gt; 2 ^ 31 (wspomniano niejasno w podręczniku). Zostało to naprawione poprzez rozszerzenie zakresu argumentów na liczby całkowite z wartościami do +/- 2 ^ 63.
  • `math.nextprime` i` math.prevprime` miały ten sam problem z większymi argumentami, jak `math.isprime`. To również zostało zmienione. W przypadku argumentu 2, `io.nextprime` zwrócił błąd 5 zamiast 3. To również zostało naprawione.

Co nowego w wersji 1.0.5:

  • `join` może spowodować awarię Ageny i w inny sposób zachowywać się nieoczekiwanie, jeśli wynikowy ciąg
  • przekroczyło 512 bajtów. To zostało zmienione.
  • Jeśli `restart` został wywołany po wystąpieniu błędu w poprzednim
  • Oświadczenie, Agena w rzadkich okazjach uległa awarii z powodu uszkodzenia stosu. To było
  • naprawiono.
  • Z nowo utworzonymi tabelami zawierającymi dokładnie jeden element w części mieszającej, `attrib`
  • teraz zwraca poprawne wyniki dla liczby przydzielonych slotów skrótu (1 zamiast 0).
  • Poprawiono komunikaty o błędach `qsadd` i` sadd`.
  • Poprawiono komunikaty o błędach operatorów `join`,` copy` i `filled` oraz` insert`

  • Instrukcje
  • i `delete`.
  • Poprawiono obsługę błędów "read", `save` i` fractals.draw`.
  • Ulepszenia plików Makefile.
  • Rozmiary buforów zostały znormalizowane w źródłach.

Co nowego w wersji 1.0.4:

  • Ponieważ podczas inicjalizacji zgłoszono rzadkie awarie (w niektórych systemach Windows XP SP 3 i OpenSolaris 134), wyrzucanie elementów jest wyłączone w fazie inicjowania. Te rzadkie awarie segmentacji wystąpiły w OpenSolaris podczas uruchamiania pliku binarnego Agena w jego katalogu głównym jako root, a w XP po kliknięciu ikony pulpitu Agena z lokalnymi uprawnieniami administratora.
  • Wprowadzono opcję -d do opcji wiersza poleceń, aby wydrukować informacje podczas inicjalizacji Ageny.
  • Wprowadzono poprawną obsługę błędów, jeśli pamięć nie mogła być wewnętrznie przydzielona: `trim`,` upper`, `lower`,` os.curdir` oraz `strings.rseek`.
  • Usunięto potencjalne wycieki pamięci w inicjalizujących funkcjach C agenaL_initialise i agenaL_setLibname oraz w `io.write *` i `print`.

Co nowego w wersji 1.0.3:

  • Nowa funkcja `protect` wywołuje procedurę w trybie chronionym i wychwytuje każdy możliwy błąd, aby nie przerwać obliczeń. W przypadku błędu ustawia ciąg błędu na globalną zmienną `lasterror`. Jest związany z `pcall`, ale nie zwraca kodu statusu jako pierwszego wyniku.
  • `attrib` zwraca teraz prawidłowe wyniki z pustymi strukturami. W pustych strukturach funkcja błędnie liczyła jeden przypisany element hash.
  • `attrib` zwraca obecnie liczbę bajtów zajmowanych przez tabele, zestawy i sekwencje wraz z nowym kluczem" bajtów ". Liczba zwróconych bajtów jest oparta na czasami sprzecznych informacjach dostępnych w sieci.
  • `replace` spowodował awarię Ageny, jeśli wynikowy ciąg przekroczył 512 bajtów. To zostało zmienione.
  • `assume` teraz zwraca 'Assumption failed.' zamiast "założenie nie powiodło się".
  • Nowa funkcja API C lua_setglobal2 ustawia wartość na szczycie stosu na nazwę globalną. W przeciwieństwie do lua_setglobal, wartość nie jest wyświetlana.
  • Czyszczenie kodu lobject.h (struktura tabeli) i lapi.c (makro actnodesize). Bugfix do funkcji API C agn_deletertable w przypadku, gdy Agena jest skompilowana z non-void lua_assert. Zmień na wartość zwracaną funkcji savestate, która jest używana podczas inicjalizacji, aby zapobiec (niewielkiemu) prawdopodobieństwu uszkodzenia stosu.

Co nowego w wersji 1.0.2:

  • Nowa procedura `os.setenv` ustawia zmienne środowiskowe na poziomie systemu operacyjnego. Funkcja została pierwotnie napisana przez Marka Edgara.
  • W systemie Windows, `os.getenv` wywołuje teraz natywną funkcję Windows API, aby uzyskać wartości zmiennych środowiskowych. Kod systemu Windows został napisany przez Marka Edgara.
  • Nowa funkcja `os.environ` zwraca wszystkie przypisane zmienne środowiskowe w tabeli. Funkcja została pierwotnie napisana przez Marka Edgara.
  • `io.open` dodaje teraz wskaźnik PLIKU, nazwę i tryb pomyślnie otwartego pliku do nowej tabeli` io.openfiles`. `io.close` usuwa wpis z pliku` io.openfiles`, jeśli plik mógłby zostać pomyślnie zamknięty.
  • Wywołanie bez argumentów powoduje, że `io.read` zwraca błąd, jeśli zostanie wywołany bez argumentów w AgenaEdit (w celu odczytania klawiatury).
  • Jeśli w programie AgenaEdit zostaną wywołane `io.anykey` i` io.getkey`, wyświetlony zostanie odpowiedni komunikat o błędzie.
  • Zmieniono jeden z podprocedur inicjalizacyjnych, aby uniknąć możliwego uszkodzenia stosu (chociaż problemy nigdy nie wystąpiły).
  • os.isMac ("ppc") działa teraz na komputerach PowerPC.
  • Rozdziały 4 i 6 Primer and Reference zostały zmienione i rozszerzone. Dodano indeks i wiele kosmetyków zostało wykonanych.
  • Przechowywał poprawną wersję informacji do pliku wykonywalnego Windows.

Co nowego w wersji 1.0:

  • Drogie Panie i Panowie,
  • po prawie czterech latach rozwoju opublikowałem Agena 1.0, język programowania proceduralnego, pochodzący ze źródeł Lua C.
  • Moja społeczność jest bardzo, bardzo mała, ale niektórzy użytkownicy powiedzieli mi, że wszystko było w porządku, użyteczne i stabilne.
  • Byłbym bardzo szczęśliwy, jeśli przejrzałbyś Agenę i poinformował mnie o twoich wynikach. Jeśli nie uznasz tego za przydatne, proszę, powiedz mi osobiście i daj mi szansę rozwiązania problemów.

Co nowego w wersji 0.34.1d:

  • Ta wersja zawiera zaktualizowaną wersję GUI AgenaEdit (patrz plik wykonywalny agenaedit).

Co nowego w wersji 0.34.1:

  • AgenaEdit z podświetlaniem składni i wbudowanym mechanizmem uruchomieniowym został wydany z Agena 0.34.1.

Co nowego w wersji 0.34.0:

  • AgenaEdit z podświetlaniem składni i wbudowanym mechanizmem uruchomieniowym został wydany z Agena 0.34.0.

Co nowego w wersji 0.33.2:

  • Agena 0.33.2 z obsługą plików xBase została wydana.

Co nowego w wersji 0.33.1:

  • Agena 0.33.1 z obsługą plików xBase została wydana.

Co nowego w wersji 0.33.0:

  • Nowy pakiet `xbase` może odczytywać i zapisywać pliki xBase zgodne ze standardem dBASE III.
  • Pakiety `binio` i` ads` mogą teraz obsługiwać pliki o rozmiarze do 2 ^ 63 bajtów. Zanim mogli obsłużyć tylko pliki o rozmiarze do 2 ^ 31 bajtów.
  • Nowe funkcje `io.lock`,` io.unlock`, `binio.lock`,` binio.unlock`, `ads.lock` i` ads.unlock` blokują dostęp do odczytu i zapisu przez plik inna Agena
  • funkcje lub nawet inne aplikacje pod warunkiem, że te ostatnie używają protokołu blokowania.
  • Funkcja baselib "read" nie może już być nadpisana przez `with`.
  • Nowy pakiet `pakiet.checkClib` sprawdza, czy pakiet zapisany w bibliotece dynamicznej C został zainicjowany. Jeśli nie, zwraca ostrzeżenie wydrukowane na ekranie i tworzy pustą tabelę pakietów. W przeciwnym razie nic nie robi.
  • Port Haiku obsługuje teraz biblioteki dynamicznych linków.

Co nowego w wersji 0.32.3:

  • Agena 0.32.3 z nowymi i dostrojonymi funkcjami Calculusa została wydana.
  • Użytkownicy komputerów Mac nie muszą już instalować dodatkowych bibliotek zależności.
  • Port Haiku jest już dostępny.

Co nowego w wersji 0.31.5:

  • Ta wersja zawiera wbudowaną grafikę, dowolną precyzję matematyczną i ulepszone funkcje.

Co nowego w wersji 0.31.3:

  • Dodano pakiet fraktali do łatwego rysowania fraktali w systemach Solaris, Mac, Linux i Windows.
  • W systemach Solaris i Linux `gdi.mouse` zwraca teraz standardowe wartości przyciśniętych przycisków myszy (tak samo jak wersje Mac i Windows).
  • Po podaniu opcji -v Agena nie będzie już wykonywać plików inicjujących.
  • W systemach UNIX lub Mac, nazwy plików inicjujących zawsze muszą być ".agenainit", niezależnie od tego, czy znajdują się w katalogu / usr / agena / lib, czy w folderze osobistym.
  • Binarna dystrybucja Maców dla procesorów Intela działa o około 30% szybciej niż poprzednie wersje.
  • Funkcja `io.getkey` jest teraz dostępna w edycji Mac OS X.
  • Na komputerze Mac system `os.system` zwraca teraz pełne informacje o systemie operacyjnym i typie procesora. Zwróć uwagę, że zwraca on informacje o jądrze Darwina i że pierwszym wpisem w wynikowej tabeli jest teraz `Darwin` zamiast` MacOSX`.
  • `os.memstate`,` os.freemem` i `os.beep` obsługują teraz system Mac OS X.
  • `io.anykey` jest dostępny na wszystkich platformach, ale zwraca` fail` na DOS i Mac. W związku z tym `gdi.draw` nie będzie już wyświetlał błędów na Macu podczas używania opcji` mouse`.
  • `os.listcore` został rozszerzony, aby zwracać tylko nazwy pliku, katalogu lub łącza. "." i ".." teraz nigdy nie są zwracane.
  • `os.list` nie rozpoznał żadnych opcji i zamiast tego zwrócił pustą listę. Zostało to naprawione. Ponadto opcje można teraz łączyć. "." a ".." jako pierwszy argument jest teraz poprawnie rozpoznawany.
  • `os.curdir` teraz automatycznie zastępuje ukośniki odwrotne w ścieżce określonej za pomocą ukośników.
  • `os.fstat` i` ads.attrib` rozbił Agena, jeśli data pliku przekroczyła wtorek, 19 stycznia 2038. Zostało to naprawione przez zwrot pustej tabeli dla klucza daty (os.fstat), lub 0/0/01 00:00:00, (ads.attrib).
  • `utils.calendar` rozbił Agena, jeśli jego argument był nieważny, negatywny lub zbyt duży. To zostało zmienione. Ponadto, jeśli data jest większa niż wtorek, 19 stycznia 2038, zwracana jest poprawna data.
  • Nowe funkcje `os.scapesize` i` os.mousebuttons` zwracają odpowiednio bieżącą rozdzielczość ekranu i liczbę przycisków podłączonej myszy (tylko system Windows).
  • Plik agena.ini.sample został przemianowany na .agenainit.sample w dystrybucjach UNIX / Mac.
  • Nowy plik Makefile dla systemu Solaris jest teraz dostarczany wraz z mapm Agena binding, aby w pełni skompilować oryginalne źródła MAPM napisane przez Michaela C. Ring.

Co nowego w wersji 0.31.2:

  • Pakiet mapm dla precyzji matematycznej arbitra jest teraz również dostępny w edycji DOS Ageny.
  • Liczba cyfr użytych przez pakiet mapm została zainicjowana na 17 cyfr przy uruchomieniu Agena dla DOS lub OS / 2 Warp. Wcześniej ustawieniem domyślnym była 1 cyfra.
  • Kod C dla wiązania MAPM został ustandaryzowany. Wcześniej pliki źródłowe DOS i OS / 2 różniły się od tych dla systemów UNIX i Windows.
  • Małe ulepszenia instalatorów systemu Windows i Mac OS X.
  • Na komputerze Mac dokumentacja jest teraz dostępna w Bibliotece / Dokumentacji / Agena zamiast / Users / Share / Agena.
  • Funkcje sin, cos, arcsin, arccos i arctan zwróciły -0 zamiast 0 jako jednostki urojonej, co doprowadziło do błędnych wyników, jeśli zwrot tych funkcji został zastosowany do innych funkcji, takich jak ln (tj. znak wyimaginowanej jednostki wyniku tych innych funkcji było nieprawidłowe). Zostało to naprawione przez ustawienie wyimaginowanej jednostki -0 na 0 w zwrocie sin, cos, arcsin, arccos i arctan.
  • Funkcje arcsin i arccos zwracały błędne wyniki dla argumentów z, jeśli abs (rzeczywisty ((z))) & lt; 1. To zostało naprawione.
  • W OS / 2, większość złożonych funkcji arytmetycznych nie powiodła się. Zostało to naprawione.
  • Zauważ, że w systemach OS / 2 i DOS w domenie złożonej nadal występują problemy z operatorami arccos i arcsin, które w określonych sytuacjach zwracają wartość undefined.
  • Wersje systemu Windows, i386 Solaris 10 i Linux zostały skompilowane z GCC 4.4.x (i bez xmath86.h), co znacznie zmniejszyło liczbę błędów w arytmetyce złożonej. W rzeczywistości skomplikowane skomplikowane przypadki testowania matematycznego zwracają błędy zerowe. Wersja Sparc została skompilowana z GCC 4.3.3 dla Sun Sparc i ma mniej błędów w arytmetyce liczby zespolonej niż wersja 0.31.1.
  • Zmieniono nazwy następujących plików włączeń: config.h - & gt; agncfg.h, chelpers.h - & gt; agnhlps.h, agnxlib.h - & gt; agnxlib.h.
  • Na Macu, gdi.mouse zwraca teraz standardowe wartości dla wciśniętych przycisków myszy.

Co nowego w wersji 0.31.1:

  • Agena 0.31 zawiera wszystkie podstawowe narzędzia do rysowania punktów, linii, okręgów, elips, prostokątów, łuków. itp., aby kontrolować rozmiar obrazu i kolory.

Co nowego w wersji 0.31.0:

  • Opublikowano wersję o spójności językowej z poprawką - została wydana. Zobacz dziennik zmian, co się zmieniło.

Co nowego w wersji 0.30.4:

  • Agena ma teraz wbudowaną grafikę. Umożliwi to wykreślenie wykresów, obrazów itp. W oknach X11 lub Win32 lub plikach GIF, PNG, JPEG, FIG lub PostScript, zarówno w systemie Solaris, Linux i Windows. Agena wiąże bibliotekę graficzną g2 autorstwa Ljubomira Milanovica i Horsta Wagnera, aby zapewnić te nowe możliwości.
  • Agena 0.30 zawiera wszystkie podstawowe narzędzia do rysowania punktów, linii, okręgów, elips, prostokątów, łuków. itp., aby kontrolować rozmiar obrazu i kolory.
  • & gt; z "gdi";
  • Pakiet gdi v0.1.4 na dzień 20 grudnia 2009 r.
  • łuk, łuk, tło, koło, krąg wypełniony, wyczyść paleta, zamknij, kreska, elipsa, elipsa, flush, fontsize, initpalette, atrament, lastaccessed, linia, newline, newpoint, otwarty, działka, fabuła, punkt, prostokąt, prostokątny , reset, resetpalette, setinfo, setoptions, struktura, tekst, grubość, trójkąt, trójkąt wypełniony, useink
  • Funkcja plotfn rysuje jeden lub więcej wykresów funkcji w jednym rzeczywistym, opcjonalnie wraz z osiami wykreślonymi w kolorze zdefiniowanym przez użytkownika. Można również podać zakres osi y, w przeciwnym razie Agena określa najlepsze ustawienie. Istnieje wiele innych opcji, które można ustawić za pomocą funkcji setoptions i które będą stosowane do wszystkich wykresów generowanych w sesji: rozdzielczość okna, mapa kolorów, grubość linii i kolor tła. Oczywiście użytkownik może zastąpić niektóre lub wszystkie opcje dla określonego wykresu. Osobliwości są odpowiednio traktowane.

Co nowego w wersji 0.30.3:

  • Agena 0.30.3 z wbudowaną grafiką, dowolną precyzją matematyczną i udoskonalonymi funkcjami została wydana.

Co nowego w wersji 0.30.2:

  • Agena ma teraz wbudowaną grafikę. Umożliwi to wykreślenie wykresów, obrazów itp. W oknach X11 lub Win32 lub plikach GIF, PNG, JPEG, FIG lub PostScript, zarówno w systemie Solaris, Linux i Windows. Agena wiąże bibliotekę graficzną g2 autorstwa Ljubomira Milanovica i Horsta Wagnera, aby zapewnić te nowe możliwości.
  • Agena 0.30 zawiera wszystkie podstawowe narzędzia do rysowania punktów, linii, okręgów, elips, prostokątów, łuków. itp., aby kontrolować rozmiar obrazu i kolory.
  • & gt; z "gdi";
  • Pakiet gdi v0.1.4 na dzień 20 grudnia 2009 r.
  • łuk, łuk, tło, koło, krąg wypełniony, wyczyść paleta, zamknij, kreska, elipsa, elipsa, flush, fontsize, initpalette, atrament, lastaccessed, linia, newline, newpoint, otwarty, działka, fabuła, punkt, prostokąt, prostokątny , reset, resetpalette, setinfo, setoptions, struktura, tekst, grubość, trójkąt, trójkąt wypełniony, useink
  • Funkcja plotfn rysuje jeden lub więcej wykresów funkcji w jednym rzeczywistym, opcjonalnie wraz z osiami wykreślonymi w kolorze zdefiniowanym przez użytkownika. Można również podać zakres osi y, w przeciwnym razie Agena określa najlepsze ustawienie. Istnieje wiele innych opcji, które można ustawić za pomocą funkcji setoptions i które będą stosowane do wszystkich wykresów generowanych w sesji: rozdzielczość okna, mapa kolorów, grubość linii i kolor tła. Oczywiście użytkownik może zastąpić niektóre lub wszystkie opcje dla określonego wykresu. Osobliwości są odpowiednio traktowane.

Co nowego w wersji 0.29.0:

  • Agena ma teraz wbudowaną grafikę. Umożliwi to wykreślić wykresy, obrazy itp. W oknie lub pliku GIF, PNG, JPEG, FIG lub PostScript w systemie Solaris, Linux i Windows, włączając w to powiązanie z biblioteką graficzną g2 autorstwa Ljubomira Milanovica i Horsta Wagnera.
  • Agena 0.29.0 zawiera wszystkie podstawowe narzędzia do rysowania punktów, linii, okręgów, elips, prostokątów, łuków. itp., aby zarządzać kolorami i tworzyć pliki obrazów lub otwierać okna X11 lub Win32.
  • W jednej z nadchodzących aktualizacji wysokopoziomowy interfejs użytkownika z funkcjami gdi.plotfn i gdi.plot pozwala na tworzenie funkcji jednokierunkowych i zestawów punktów "w locie". Obie funkcje są już zawarte w Agenie 0.29.0, ale nadal są w wersji beta. Oto podgląd:
  • & gt; z "gdi";
  • Pakiet gdi v0.1.0 na dzień 24 listopada 2009 r.
  • łuk, tło, okrąg, clearaleta, zamknięcie, kreska, elipsa, wypełnionaArc, wypełnionaKircle, wypełnionaEllipse, wypełnionaRectangle,
  • filledTriangle, flush, fontsize, initpalette, ink, lastaccessed, line, open, plot, plotfn, point, rectangle, reset,
  • resetpalette, setinfo, setoptions, struktura, tekst, grubość, trójkąt, useink
  • Funkcja plotfn rysuje wykres funkcji w jednym rzeczywistym, opcjonalnie wraz z osiami wykreślonymi w kolorze zdefiniowanym przez użytkownika. Można również podać zakres osi y, w przeciwnym razie Agena spróbuje określić najlepsze ustawienie. Istnieje wiele innych opcji, które można ustawić za pomocą funkcji setoptions i które będą stosowane do wszystkich wykresów generowanych w sesji: rozdzielczość okna, mapa kolorów, grubość linii i kolor tła. Oczywiście użytkownik może zastąpić niektóre lub wszystkie opcje dla określonego wykresu. Osobliwości są odpowiednio traktowane.
  • plotfn (sin (x) * x> &, -5, 5, color ~ 'blue', axiscolour ~ 'grey', res ~ 640: 480);

Co nowego w wersji 0.27.2:

  • Nowa funkcja baselib toSet konwertuje ciąg znaków na zestaw jego znaków oraz tabelę lub sekwencję w zestaw.
  • io.readlines zostało załatane, aby przetwarzać linie zawierające więcej niż 2048 znaków. Funkcja teraz również powoduje błąd, jeśli alokacja pamięci wewnętrznej nie powiedzie się. Wewnętrzny rozmiar bufora został zmniejszony z 2048 bajtów do 512 bajtów. Możesz to zmienić, przypisując kolejną wartość AGN_IOREADLINES_MAXLINESIZE w pliku agnconf.h.
  • io.readlines teraz także akceptuje uchwyty plików. Podczas korzystania z uchwytów plików, w przeciwieństwie do nazw plików, należy pamiętać o ręcznym zamknięciu pliku po użyciu pliku io.readlines.
  • io.readlines nie zwraca już pustej tabeli, jeśli plik nie istnieje. Zamiast tego powoduje błąd.
  • toSeq zwraca teraz błąd zamiast niepowodzenia, jeśli nie otrzymuje ciągu, zestawu lub tabeli.
  • Wykorzystana funkcja baselib została rozszerzona i może zwrócić użycie pamięci w bajtach, kbajtach i gbytach. Teraz jest funkcją C.
  • Nieudokumentowana funkcja gcinfo została usunięta. Jego funkcjonalność została wykorzystana.
  • Nowa funkcja API C agn_usedbytes zwraca liczbę bajtów używanych przez system.
  • Poprawiono błędny komunikat o błędzie z ToTable.
  • zmieniono nazwę funkcji C AOI `agn_isioforcerror` na` agn_isioforceerror`.

Co nowego w wersji 0.27.0:

  • Dodano funkcję błędu math.erf i uzupełniającą funkcję błędu math.erfc.
  • Dodano funkcję Bessela pierwszego rodzaju math.besselj i funkcję Bessela drugiego rodzaju math.bessely. Kolejność jest podana przez pierwszy argument, argument jako drugi argument.
  • Jeśli nowa zmienna środowiskowa _EnvIoForceError jest ustawiona na wartość inną niż null (wartość domyślna), opcje io.open, io.readlines i różne funkcje binio są zamykane z błędem zamiast normalnie powracać.
  • binio.readbytes i binio.readchar zwróciło pustą sekwencję zamiast niepowodzenia, na wypadek, gdyby plik do odczytu nie istniał. Zostało to zmienione: błąd lub zostanie zwrócony błąd.
  • Arcsin i arccos są teraz operatorami, a więc o około 40% szybsze.
  • Dodano operator xor, który wykonuje operację logiczną exclusive-OR dla wartości, które mają wartość true, false, fail i null.
  • Dodano operatora atendof, który sprawdza, czy słowo kończy się w danej frazie i zwraca jego pozycję jako liczby. Operator zwraca wartość null, jeśli łańcuchy mają tę samą długość, przynajmniej jeden z nich jest pustym łańcuchem lub słowo nie kończy się na danym wzorze.
  • hasrtable teraz zwraca tylko wartość true, jeśli ma tabelę pamiętania odczytu i zapisu (zaktualizowaną przez instrukcję return).
  • Nowa funkcja hasrotable określa, czy funkcja ma tabelę tylko do odczytu (która nie może być aktualizowana przez instrukcję return) i zwraca wartość true lub false.
  • Nowi operatorzy uzyskują wyższą i niższą liczbę bajtów z liczby (tj. C dwukrotnie).
  • Nowe operatory sethigh i setlow ustawiają wyższe i niższe bajty na liczbę (na przykład C dwukrotnie).
  • Nowy zespół operatorów, bor, bxor i bnot działają bitowo i, lub, wyłączne, lub uzupełniające operacje na liczbach.
  • Nowa funkcja `kernel` konfiguruje ustawienia jądra Agena. Obecnie może zmienić sposób wewnętrznego działania operatorów bitowych (użycie podpisanych lub bez znaku liczb całkowitych) oraz sposobu drukowania liczb.
  • Z liczbami rzeczywistymi x, argument math.argument zwraca teraz Pi zamiast 0, jeśli x & lt; 0.
  • Z powodu błędu w podstawowych funkcjach biblioteki ANSI C, arcsin i arccos wygenerowały błędne wyniki z liczbami zespolonymi, jeśli ich urojona część była zerowa w systemach UNIX. Zostało to naprawione.
  • math.isPrime zgłosił false z numerem 2. Zostało to poprawione.
  • W przeciwieństwie do instrukcji, abs wrócił 2 z niepowodzeniem. Teraz zwraca -1 jako udokumentowane.
  • Pakiet bitów został usunięty.
  • Dodano nową funkcję API C agn_isioforcerror, która sprawdza, czy _EnvIoForceError został ustawiony na wartość inną niż null.
  • Nowa funkcja interfejsu API agn_setbitwise określa, czy operatory band, bor, bnot, bxor i shift wewnętrznie obliczają z użyciem podpisanych lub bez znaku liczb całkowitych.
  • Nowa funkcja API C agn_getbitwise zwraca tryb ustawiony przez agn_setbitwise.
  • Nowa funkcja C-API agn_setdigits określa liczbę cyfr używanych do drukowania liczb.
  • Nowa funkcja C API agn_getdigits określa liczbę cyfr używanych do drukowania liczb.
  • Wewnętrzny: usunięto nieaktualny wpis "REPL" z luaP_opnames.
  • Instalator systemu Windows został już sprawdzony pod kątem sprawdzenia poprzednio zainstalowanej wersji Ageny, uniemożliwiając uruchomienie instalatora, jeśli działa już inna jego instancja, oraz inne drobne ulepszenia.

Wymagania :

  • Ncurses
  • Readline GNU

Podobne oprogramowanie

Polyglot
Polyglot

2 Jun 15

Hoc
Hoc

2 Jun 15

bin86
bin86

3 Jun 15

Aubit 4GL compiler
Aubit 4GL compiler

20 Feb 15

Komentarze do Agena

Komentarze nie znaleziono
Dodaj komentarz
Włącz zdjęć!