Agena

Софтуер снимки:
Agena
Софтуер детайли:
Версия: 2.11.5 актуализира
Дата на качване: 22 Jun 18
Розробник: Alexander Walz
Разрешително: Безплатно
Популярност: 23

Rating: nan/5 (Total Votes: 0)

Agena е свободен, свободен, многоплатформен и лесен за научаване език за процедурен програмиране, предназначен за ежедневна употреба. Той може да се използва в графични, научни, езикови и образователни среди, както и в скриптови приложения, поддържащи всички основни операционни системи.


Предлага множество съоръжения за контрол на потока

Приложението предлага многобройни съоръжения за контрол на потока, като например, ако тогава. elif, else conditions, case of and else conditions, е оператор, цифров за, от, до и чрез бримки, комбинирани цифрови за и докато цикли, за и в цикли, докато и като / цикли, пропуск, извлечение, както и валидиране на типа данни.


Предоставя задания за изброяване

Сред другите характеристики можем да споменем и произволна прецизна математическа библиотека, лесна конфигурация на личната ви среда, лесна за използване пакетна система, задачи за изброяване, обхват на контрол чрез ключовите думи за епосите / обхвата и много други атрактивни функции.

Под капака и наличността

Един бърз поглед под капака ще ни покаже, че проектът е написан на програмните езици C, BASIC, Lua и ALGOL 68, което означава, че синтаксисът му наподобява синтаксиса на тези проекти. Той работи изцяло в конзолна / терминална среда, което означава, че няма графичен потребителски интерфейс (GUI).


Кораби с прост редактор

Независимо от факта, че софтуерът Agena е приложение за командния ред, той се доставя с обикновен редактор на графичен софтуер, наречен AgenaEdit, който включва интегрирана способност за осветяване на околната среда и синтаксис. Той е силно вдъхновен от подобен редактор, разработен от Бил Шпицак за инструментариума на FLTK за междуплатформени C ++ GUI.


Работи по малини Pi

Графичните възможности на Agena се поддържат на операционните системи GNU / Linux, Solaris, Mac OS X, Microsoft Windows, eComStation - OS / 2 и DOS. Тя може лесно да се внедрява на 64-битова и 32-битова хардуерна платформа и е успешно тествана на компютърната платка Raspberry Pi, базирана на ARM.

Какво ново в това издание:

  • нова функция "Калкулация и статистика"

Какво е новото във версията:

  • нова функция "Калкулация и статистика"

Ново във версия 2.9.4:


Нова версия 2.8.5:

  • Нова функция за смятане и статистика

Какво е новото във версия 2.8.2:

Какво е новото във версия 2.6.1:

  • "stats.chauvenet" ниски или по-високи отклонения, като преминете опцията `outlier = 'lower`` или' outlier = 'upper'` съответно.
  • "bags.remove" причини повреда на сегментацията. Това е фиксирано. Освен това всички функции на "чантите", внедрени в C, са променени вътрешно.
  • Методологиите (не документирани) за "+", "-` и` * `не са работили, ако пакетът` bags` не е бил извикан с функцията `с` или изречението` import / alias`. Това е фиксирано.

Какво е новото във версия 2.5.4:

  • "stats.chauvenet" вече може да проверява конкретно за по-ниски или по-високи отрицателни стойности, като премине съответно опцията `outlier = 'lower'` или' outlier = 'upper'`.
  • "bags.remove" причини повреда на сегментацията. Това е фиксирано. Освен това всички функции на "чантите", внедрени в C, са променени вътрешно.
  • Методологиите (не документирани) за "+", "-` и` * `не са работили, ако пакетът` bags` не е бил извикан с функцията `с` или изречението` import / alias`. Това е фиксирано.

  • Новите в версия 2.5.3:

    • "stats.chauvenet" ниски или по-високи отклонения, като преминете опцията `outlier = 'lower`` или' outlier = 'upper'` съответно.
    • "bags.remove" причини повреда на сегментацията. Това е фиксирано. Освен това всички функции на "чантите", внедрени в C, са променени вътрешно.
    • Методологиите (не документирани) за "+", "-` и` * `не са работили, ако пакетът` bags` не е бил извикан с функцията `с` или изречението` import / alias`. Това е фиксирано.

    Какво е новото във версия 2.4.2:

    • "stats.chauvenet" вече може да проверява конкретно за по-ниски или по-високи отрицателни стойности, като премине съответно опцията `outlier = 'lower'` или` outlier =' upper'`.
    • "bags.remove" причини повреда на сегментацията. Това е фиксирано. Освен това всички функции на "чантите", внедрени в C, са променени вътрешно.
    • Методологиите (не документирани) за "+", "-` и` * `не са работили, ако пакетът` bags` не е бил извикан с функцията `с` или изречението` import / alias`. Това е фиксирано.

    Какво е новото във версия 2.3.0 RC1:

    • Цифрови "за" цикли сега поддържат ключова дума "downto", така че да можете да разчитате, без да използвате задължителен отрицателен размер по стъпка. В контекста "downto", размерът на стъпките "по" трябва винаги да е положителен. Стойностите "от начало и" до "спиране са задължителни при използване на ключовата дума" downto ".
    • Методовете "__finite", "__entier" и "__sqrt" вече не се поддържат. Вместо това са добавени три нови метатода за операции по структури: "__union" за съюзни операции, "__intersect" за определяне на кръстовища и "__minus" за различия. По този начин пакетът "чанти" вече поддържа и тези три операции.
    • Индустриалният оператор за разделяне на цяло число не е поддържал своя metamethod и вместо това е използвал този за floating divison (`/` оператор). Това е фиксирано.
    • Новата функция "stats.gini" определя коефициента Джини, мярка за (равностойност).
    • Новата функция "stats.zscore" връща функция, изчисляваща z-резултата (стандартна оценка) на проба - броя на стандартните отклонения, които пробата е над или под средното разпределение.
    • "stats.sorted" сега по подразбиране използва алгоритъма Introsort вместо Quicksort. Това може да ускори изчисляването на времето три пъти при неправилно кондиционирани ситуации (където Quicksort ще се нуждае от O (n ^ 2) операции), без да жертва изпълнението в обикновени ситуации. Всъщност Introsort използва Quicksort по подразбиране и след това автоматично превключва на Heapsort, ако дълбочината на recursion достигне 2 * log (n, 2), където n е броят елементи в структурата.
    • Можете да презапишете тази логика, като преминете новата опция "quicksort", която използва единствено традиционния рекурсивен метод Quicksort за сортиране на номера. Също така, "stats.sorted" вече може да използва алгоритъма Heapsort само ако се приеме новата опция "heapsort" и нерекурсивния Quicksort алгоритъм, създаден от Niklaus Wirth с новата опция "nrquicksort".
    • Новата функция "stats.meanmed" връща както средната аритметична стойност, така и средната стойност на разпределението, или алтернативно коефициента на средното и средното, ускоряване на изчислителните времена, когато тези стойности са необходими с около 20%.
    • Li>
    • Подобрихте съобщението за грешка на оператора "size".

    Какво е новото във версия 2.1.1:

    • Нови функции и корекции:
    • `опит / улов`: изрично уточняване на променлива за грешка непосредствено след означението` catch` вече е по избор. Ако не е дадена променлива за грешка, тогава съобщението за грешка автоматично се съхранява в локалната променлива `lasterror`, а ключовата дума` then` трябва да бъде изтрита:
    • & GT; опитате
    • & GT; грешка ("oops!")
    • & GT; хване
    • & GT; печат (lasterror)
    • & GT; yrt;
    • Ооо!
    • Изявлението ,, try / catch "понякога не работи в процедурите (неизмерена променлива за грешка). Това е фиксирано.
    • Новата функция "net.wget" извлича HTML страници от мрежата.
    • Настройва се "skycrane.counter" с 10%. Функцията сега по избор прилага Kahan-Ozawa вместо първоначалния алгоритъм за сумиране на Kahan, ако новият трети аргумент е низът "ozawa". Съответните източници на C са модифицирани, за да се предотврати оптимизирането на компилаторите, което може да отмени оптимизацията.
    • `argerror` сега отпечатва потребителски дефинирано име на получена стойност в съобщението си за грешка. Ако дадена стойност няма дефиниран от потребителя тип, тогава се издава основният й тип.
    • Новата опция 'a' към `debug.getinfo` връща броя на аргументите, очаквани от дадена процедура, благодарение на LuaPowerPatch на Rob Hoelz.
    • Подобрено съобщение за грешка "индекс извън обхвата" за низове.
    • Променени са файловете "stats.agn", "linalg.agn", "library.agn" и "ansi.agn" по отношение на тяхното обработване на грешки.

    Какво е новото във версия 2.1.0:

    • За нов вид обработка на грешки е въведено новото изречение `try / catch`. Той е измислен и написан от Hu Qiwei за Lua 5.1 през 2008 г.
    • По принцип всички изявления, при които може да се очаква изключение, могат да бъдат поставени в клауза `try`. Ако се генерира грешка, генерирана чрез изрично извикване на функцията за грешка или на друг израз, функция или израз, контролът веднага прескача съответната клауза `catch ', ако съществува или в края на` try / yrt "ако не е дадена клауза" catch ", като игнорира всички други последващи думи в клаузата` try`.
    • Устройствата за защита на "защитата / ластерроу" са все още и винаги ще бъдат поддържани. Новото известие за контрол работи безпрепятствено с изявленията `break`,` skip`, `redo` и` return`.
    • Новото изречение `redo` рестартира текущата итерация от цикъла` for / to` и `for / in` от самото начало.
    • Новият оператор `recipec` връща обратен ред на число х. Това е еквивалентно на израза 1 / x, но по-бързо.
    • Новата функция "stats.ema" изчислява експоненциалната плъзгаща средна на разпределение. Новата функция "stats.gema" връща итераторна функция, връщаща съответната експоненциална плъзгаща средна на разпределение.
    • `*%`, `+%` и `-%` връщат `undefined` вместо правилния резултат, ако техният операнд е бил нулев. Това е фиксирано.
    • Фиксирано е съобщение за грешка в "net.survey".
    • Подобрени съобщения за грешки при индексиране на двойки и низове извън обхват.
    • В версиите ANSI, Solaris и DOS е настроен операторът `int`.
    • Новата функция C API "agn_arraytoseq" преобразува числен масив в последователност и натиска тази нова последователност върху горната част на стека.
    • Актуализирахте наръчника.

    Какво е новото във версия 2.1.0 RC:

    • Новото изречение `redo` рестартира текущата итерация от цикъла` for / to` и `for / in` от самото начало. Пример:
    • & GT; флаг: = true; & GT; за j в [10, 11, 12] до> отпечатване ("преди", j, флаг); & GT; ако флагът и j = 11 тогава> ясен флаг; & GT; отпечатване ('- & gt;', j, флаг, 'скок назад') & gt; redo & gt; Fi; & GT; отпечатване ("след", j, флаг) & gt; до j> 12; преди 10 вярно след 10 вярно преди 11 true - & gt; 11 фалшив скок назад преди 11 фалшиви след 11 фалшиви преди 12 фалшиви след 12 фалшиви
    • Новият оператор `recipec` връща обратен ред на число х. Това е еквивалентно на израза 1 / x, но по-бързо.
    • Новата функция "stats.ema" изчислява експоненциалната плъзгаща се средна стойност на разпределение. Новата функция "stats.gema" връща функция на итератора, връщайки съответната експоненциална плъзгаща средна на разпределение. За неговото използване, моля, погледнете в изходния файл src / stats.c, C функции * ema.
    • `*%`, `+%` и `-%` връщат `undefined` вместо правилния резултат, ако техният операнд е бил нулев. Това е фиксирано.
    • Фиксирано е съобщение за грешка в "net.survey".
    • Новата функция C API "agn_arraytoseq" превръща цифровия масив в последователност и натиска тази нова последователност в горната част на стека.

    Какво ново във версия 2.0.0:

    • Нови изрази и функции:
    • Agena 2.0 е съвместима с Agena 1.12, с изключение на това, че означенията "внос", "псевдоним", "до" и "onsuccess" вече са ключови думи и вече не могат да се използват като променливи. Понастоящем са налице 2.0 инсталации Solaris, Debian (x86, PowerPC, Raspberry Pi), Windows, Mac и DOS, включително актуализиран Primer and Reference, който обяснява подробно всички нови функции.
    • Новите варианти на цикъла "за / as" и "for / till" проверяват състоянието в края на текущата итерация и или започват следващата итерация, или напускат цикъла. Това работи както с цикъла "for / to", така и с "for / in". Всъщност и двата варианта изпълняват поне една цикъл, докато се провери съответното състояние.
    • Примери:
    • & GT; за I до 5
    • & GT; печат (I)
    • & GT; като i < 3
    • & GT; за i в [1, 2, 3, 4, 5] направете
    • & GT; печат (I)
    • & GT; докато i & gt; = 3
    • Новата линия "до / до" повтаря, докато не бъде изпълнено определено условие:
    • & GT; c: = 0;
    • & GT; направи
    • & GT; inc c;
    • & GT; печат (в)
    • & GT; докато c> = 3
    • В цифровите букви `за` клаузата` to` може да не се дава повече. Вместо това, при излизане от клаузата `to`, цикълът се повтаря, докато най-големият брой, който може да се представи на вашата платформа, в C HUGE_VAL, е достигнат:
    • & GT; за мен
    • & GT; печат (I)
    • & GT; OD
    • Новата клауза "onsuccess" в изявленията "if" и "case" изпълнява парче, ако поне едно от условията е вярно. Примери:
    • & GT; флаг: = невярно;
    • & GT; ако 1 = 0 тогава
    • & GT; печат (0)
    • & GT; elif 1 = 1 след това
    • & GT; печат (1)
    • & GT; onsuccess
    • & GT; флаг: = true
    • & GT; друго
    • & GT; печат (-1)
    • & GT; Fi;
    • & GT; печат (флаг);
    • вярно
    • & GT; флаг: = невярно;
    • & GT; ако 1 = 0 тогава
    • & GT; печат (0)
    • & GT; elif 1 = 0 след това
    • & GT; печат (1)
    • & GT; onsuccess
    • & GT; флаг: = true
    • & GT; друго
    • & GT; печат (-1)
    • & GT; Fi;
    • & GT; печат (флаг);
    • фалшива
    • & GT; флаг: = невярно;
    • & GT; а: = 2;
    • & GT; случай a
    • & GT; от 1 след това
    • & GT; печат (1)
    • & GT; от 2 след това
    • & GT; печат (2)
    • & GT; onsuccess
    • & GT; флаг: = true
    • & GT; друго
    • & GT; печат (-1)
    • & GT; ESAC;
    • & GT; печат (флаг);
    • вярно
    • Новият израз на "импорт" позволява да импортирате една или повече библиотеки, без да въвеждате имената им в кавички, напр. "import calc, stats" е еквивалентно на "readlib ('calc', 'stats')".
    • Опцията "Псевдоним" към изразът "импорт" присвоява едно или повече кратки имена на инициализираните функции на библиотеката, напр. "import calc alias xpdiff" е еквивалентен на "с" ("calc", "xpdiff") "и" import calc alias "
    • Новият оператор `..` позволява да се индексират таблици, дори ако неговият операнд на лявата страна се оценява на 'null`. В този случай се връща "null" и не се издава "опит за индексиране на полето ... (нулева стойност)". Той е подобен на функцията "gtentry", но е три пъти по-бърз. Примери:
    • & GT; създайте таблица a;
    • & GT; a.b:
    • нула
    • & GT; a.b.c:
    • Грешка при stdin, на ред 1:
    • опитайте да индексирате полето `b` (нулева стойност)
    • & GT; a..b..c:
    • нула
    • & GT; създайте таблица a;
    • & GT; на [1]:
    • нула
    • & GT; на [1] [2]:
    • Грешка при stdin, на ред 1:
    • опитайте да индексирате полето "?" (нулева стойност)
    • & GT; а .. [1] .. [2]:
    • нула
    • Новата функция `drem` оценява остатъка от цяло число разделение х / у, но противно на 'irem`, закръглява вътрешния коефициент x / y до най-близкото цяло число вместо към нула.
    • Новата функция "skycrane.todate" връща текущата дата и час като форматиран низ.
    • Новата функция `io.truncate` отрязва файл в текущата файлова позиция.
    • Новата функция "io.move" променя позицията на файла с определен брой знаци отляво или отдясно.
    • Новата функция "io.filesize" връща размера на файла.
    • "readlib" сега приема само низове като свои аргументи. Номерата вече не се допускат.
    • Ако последният аргумент към "с" е Boolean "false", тогава функцията не записва зададени кратки имена в конзолата (stdout).
    • `strings.fields` сега също приема последователност от индексни номера. Той обаче не приема вече индекса "0".
    • Инсталаторът Raspberry Pi Wheezy Debian вече включва графичния пакет `gdi`.
    • Файлът `change.log` вече се показва правилно в Windows.

    Какво ново във версия 2.0.0 RC3:

    • Новите варианти на цикъла "за / as" и "for / till" проверяват състоянието в края на текущата итерация и или започват следващата итерация, или напускат цикъла. Това работи както за / за, така и за / в цикли.

    Какво е новото във версия 2.0.0 RC2:

    • Новите варианти на цикъла "за / as" и "for / till" проверяват състоянието в края на текущата итерация и и двете започват следващата итерация или оставят линия. Това работи както за / за, така и за / в цикли.

    Какво е новото във версия 2.0.0 RC1:

    • Новият израз на "импорт" позволява да импортирате една или повече библиотеки, без да въвеждате имената им в кавички, напр. "import calc, stats" е еквивалентно на "readlib ('calc', 'stats')".
    • Опцията "Псевдоним" към изразът "импорт" присвоява едно или повече кратки имена на инициализираните функции на библиотеката, напр. "import calc alias xpdiff" е еквивалентен на "с" ("calc", "xpdiff") "и" import calc alias "
    • Новият оператор `..` позволява да се индексират таблици, дори ако неговият операнд на лявата страна се оценява на 'null`. В този случай се връща "null" и не се издава "опит за индексиране на полето ... (нулева стойност)". Той е подобен на функцията "gtentry", но е три пъти по-бърз.

    Какво е новото във версия 1.12.9:

    • Новите функции "io.getclip" и "io.putclip" обменят текстове между Agena и клипборда (само за Windows).
    • "stats.prange" е пренаписан в C и е станал до 60% по-бърз.
    • `os.cpuinfo` вече връща правилна и повече информация за ARM-базирани системи.
    • В системите DOS и UNIX, включително Mac OS X и само в сложния домейн, exponentiation на базата 0 към експонента 0 + r * I, с r всяко ненулево float, връща "undefined" вместо 0. Това е фиксирано.
    • В системите DOS и UNIX, включително Mac OS X и само в сложния домейн, exponentiation на базата 0 към експонента r + 0 * I, с r всеки положителен флоат, връща "undefined" вместо 0. Това е са били фиксирани.
    • "stats.obcount" и "stats.obpart" не могат да включват стойности в най-десния подинтервал. Това е фиксирано.

    • "calc.nakspline", "calc.naksplinecoeffs", "calc_clampedspline" и "calc_clampedsplinecoeffs" предизвикаха грешки на сегментацията, ако са били извикани със структура, която съдържа твърде малко точки, т.е. двойки. Това е фиксирано, като се връща "fail" в тези случаи.

    • Потенциалните грешки в делактологията на паметта са премахнати от "calc.neville", "calc.interp", "calc.newtoncoeffs", "calc.naksplinecoeffs", "calc.clampedsplinecoeffs", "calc.nakspline" и "calc.clampedspline".
    • Новата функция C API "agn_checkinteger" проверява дали даден аргумент е число и цяло число и - в противен случай "takeL_checkinteger" - издава грешка в противен случай.

    Какво е новото във версия 1.9.0:

    • Новата функция `alternate` връща първия си аргумент, ако неговият втори аргумент е 'null`. В противен случай връща втория си аргумент.
    • Преминаването -b към изпълнимия файл на Agena е премахнато, тъй като продукцията му е била същата като опцията -v.
    • Версиите на "strings.utf8size" на Windows и UNIX / Mac съдържат потенциална загуба на памет; това е променено.
    • Всички двоични DLL / СО на плюс библиотеките вече не съдържат неизползван код, като отслабват размерите си с до 10%, в зависимост от операционната система. Файлът за създаване и източниците, които преди са импортирали неизползвани заглавни файлове, са променени. Например това изобщо намалява размера на файловете на Windows с 55 kBytes.
    • Удължи тестовия пакет.
    • Актуализирахте файловете на схемата.

    Какво е новото във версия 1.6.0:

    • Нови функции и функции:
    • Новата функция `checktype` определя дали всички стойности в структурата са от определен тип.
    • Новата функция `isint` проверява дали всичките й аргументи са цели числа.
    • Новата функция "strings.dleven" връща разстоянието Damerau-Levenshtein от две струни.
    • Новата функция "stats.ad" определя абсолютното отклонение на всички стойности в структурата.
    • Новата функция "stats.countentries" отчита броят на появата на всички елементи в структурата.
    • Новата функция "stats.deltalist" връща структурата на делтите на съответните съседни елементи.
    • Новата функция "stats.gmean" връща средната геометрия на структурата.
    • Новата функция "stats.hmean" връща хармоничната стойност на структурата.
    • Новата функция "stats.ios" връща доказан показател за стабилност в разпределение.
    • Новата функция "stats.iqr" връща интеркартилеловия диапазон.
    • Новата функция "stats.issorted" проверява дали всички номера в структурата са подредени във възходящ ред.
    • Новата функция "stats.moment" изчислява момента на дадените данни за произход.
    • Новата функция "stats.numbperm" връща броя на пермутациите.
    • Новата функция "stats.percentile" определя перцентилите.
    • Новата функция "stats.skewness" връща рязкостта, индикатор за симетрията на вероятностното разпределение.
    • Новата функция "stats.sumdata" обобщава всички правомощия на структура за произход.
    • "stats.tovals" вече е функция C библиотека и по този начин е с 40% по-бърза.
    • С празна маса или последователност, "stats.qmean", "stats.mean", "stats.gmean", "stats.sd", "stats.median",
    • "stats.var" вече не се изпълнява.
    • Максималната дължина на линията за въвеждане в самостоятелния преводач е променена от 512 на 2048 знака.
    • Новата променлива за околната среда "environ.maxpathlength" съхранява максималния брой знаци за пътя на файла (с изключение на символа C).
    • Новите променливи на средата "environ.minnumber" и "environ.maxnumber" съдържат минимална и максимална стойност, която може да съхрани в Agena номер (в момента ANSI-C двойна).
    • Новата променлива за околната среда "environ.umaxlong" включва максималната неразделна стойност на тип C, който не е подписан, на 32-битови системи и не е подписан дълго на 16-битови машини.
    • C API:
    • 100% съвместимост на приложния програмен интерфейс (APA) на Agena C към приложния програмен интерфейс (C API) на Lua е възстановена чрез въвеждане на функциите на Lua's dump. По този начин вече можете да съхранявате функции в двоично представяне, напр. като използвате `strings.dump` или lua_dump на ниво C.
    • Въведете новата функция `agnL_optboolean`, за да проверите опционалните булеви аргументи и да ги върнете в случай на успех.
    • Корекции на грешки:
    • `environ.globals` винаги се отказва с грешка, това е фиксирано.
    • "assume" се връща фалшива, като и двата свои аргумента са или се оценяват на "undefined". В този случай тя се връща вярно.
    • Agena се разби при преминаване на празна маса и разделител за "присъединяване" - това е фиксирано.
    • Опцията `color` вече не се пренебрегва от` gdi.plot`.
    • С таблици "stats.minmax" връща грешна стойност за минималната стойност. Сега тя работи правилно.
    • С празна маса "stats.median" връща 0, сега се връща неуспешно.
    • Противно на документацията, "strings.isending" връща "true" и двете струни са еднакви. Това е фиксирано.
    • `run` връща" не може да отвори файла ", ако съществуващ скрипт на Agena включва грешка в синтактичния текст. Това е фиксирано чрез пълно пренаписване на функцията.
    • Добавена е Lua 5.1.4 patch 9: "Погрешно генериране на код за някои конкретни [например сложни] булеви изрази."
    • Добавен е Lua 5.1.4 patch 11: "Parser може да събере прототип по време на изграждането му."
    • * Info: Добавяйки Lua 5.1.4 кръпка 10, "[__write / __ new] index metamethod може да не работи, ако metatable е негова собствена metatable", за Agena не е необходимо, защото Agena вече работи правилно в този случай. Li>
    • Премахна неизползваната ключова дума "по подразбиране".
    • Някои втвърдяване на функциите и функциите.
    • Подобрения:
    • Добавена е _experimental_ версия на "io.anykey" на Mac версията. Обаче поне на Лъв, натисканият понякога ключ се повтаря върху обвивката.
    • `utils.readcsv` сега по желание може да върне всички стойности в CSV файл в плоска последователност.
    • Пакетът `часовник` сега поддържа оператора на разделянето` / `, като го добави към неговия метатов оператор` tm`.
    • Поведението на "с" е променено, защото не може да присвои кратки имена за много функции на библиотеката: Ако в таблицата .aux са зададени функции, не назначавайте кратки имена за тези имена на функции; в противен случай задайте кратки имена за всички други функции на пакета. По този начин: "пакет.регистър", за да регистрирате всички функции на библиотеката за "с", за да присвоите кратки имена, вече не е необходим. Тя ще бъде отхвърлена в едно от следните издания.
    • Усъвършенствахте тестовия пакет.
    • Управление:
    • Подобрихте наръчника и индекса.
    • Последователност:
    • При всички следващи преименувания, следните стари имена на променливи все още се поддържат.
    • `environ.MinLong` е преименуван на` environ.minlong`.
    • `environ.MaxLong` е преименуван на` environ.maxlong`.
    • "environ.BufferSize" е преименуван на "environ.buffersize".
    • `environ.PathSep` е преименуван на` environ.pathsep`.
    • `environ.More` е преименувано на` environ.more`.
    • "environ.WithProtected" е преименуван на "environ.withprotected".
    • `environ.Os` е преименуван на` environ.os`.
    • `environ.Cpu` е преименуван на` environ.cpu`.
    • "environ.Release" е преименуван на "environ.release".
    • `environ.GdiDefaultOptions` е преименуван на` environ.gdidefaultoptions`.
    • В Windows, `os.login` и` os.computername` сега се връщат 'fail' като версиите UNIX или OS / 2.
    • Превключвателят `-DCOMPAT13` е окончателно премахнат за съставяне на комфейс версия на Agena 1.3.x.
    • Други:
    • Отмененият "calc.fseq" е изтрит. Моля, използвайте вместо това "nseq".

    Какво е новото във версия 1.5.1:

    • Patched "strings.fields", които изобщо не работят. Също така, той е преобразуван в функция C и по този начин е 2.6 пъти по-бърз.
    • "strings.words" вече приема трети аргумент, ако е зададен на "true", следващите разделители се игнорират.
    • Премахна евентуално изтичане на сигурност от "io.write" и "io.writeline" и подобри съобщенията си за грешки.
    • Patched "binio.readchar", за да избегнете проблеми с файлове с размер по-голям от 2 GBytes.
    • Коригирани съобщения за грешки на функциите "xbase.purge", "xbase.readvalue", "xbase.purge", "ads.getvalues", "binio.readshortstring", "os.computername", "os.login" `os.fattrib`,` environ.kernel`, `package.register`.
    • Terabytes могат да бъдат въведени с означението Т, където е цяло число и Т е символът `T`. По същия начин g означава милиарди и трилиони. За допълнителна информация вижте стр. 48 от ръководството.
    • Актуализирахте наръчника.
    • Най-вече всички превключватели за обратно съвместимост в изходния код C са премахнати заради причините за прочистване на кода. Това засяга само онези, които се опитват да прекомпилират Agena 1.5 или по-висока с пълна обратна съвместимост с Agena 1.3 и 1.4, и с голяма съвместимост с Lua 5.0 (освен старата обработка на библиотеката Lua 5.0).

    Какво е новото във версия 1.5.0:

    • `карта` сега също може да обработва низовете, дадени като втори аргумент. Съответната функция и нейните аргументи се прилагат последователно за всеки символ от ляво на дясно и резултатът се връща в последователност.
    • `run ': Ако искате да заредите и изпълнявате код от файлове със суфикс' agn ', вече не е необходимо да посочвате суфиксите в аргумента. Така че `run 'test' и 'run' test.agn'` са вече същите.
    • Ключовата дума `is` е задължителна за дефиниране на процедурите. (С GCC използвайте превключвателя -DCOMPAT14, за да компилирате версия на Agena, където ключовата дума `is` все още е незадължителна.)
    • Изявлението `try` е отхвърлено и вече не се поддържа. (С GCC използвайте превключвателя -DCOMPAT14, за да компилирате версия на Agena, която все още съдържа това изявление.)
    • Следните функции на "utils" са премахнати: "arraysize", "getarray", "getwholearray", "newarray", "searcharray", "setarray". За обратната съвместимост те са добавени към файла lib / compat.agn. (С GCC използвайте превключвателя -DCOMPAT14, за да компилирате версия на Agena, която все още поддържа първоначалните функции на utils.)
    • `utils.singlesubs` е напълно пренаписан. Вече се очаква последователност от номера като втори аргумент, вместо бившата структура на потребителска структура stringarray. Той е с 35% по-бавен от предишната версия, но премахването на структурата на stringarray е по-важно.
    • "strings.include" се разбива, ако се извика с 0 като втори аргумент. Това е фиксирано.
    • Използва се пакетът на Майкъл Г. Шварн от Май 10, 2011 на неговите 32-битови годишни 2038-фиксирани помощни функции, използвани от пакетите `os` и` xbase` (`Make mktime64 () както изисква ISO C. ")
    • Вътрешна оптимизация на кодовете: някои функции за инициализиране на библиотека и за зареждане на файлове C използваха стека, за да създадат низове на пътеки и имена на файлове. Новата Cux aux функция "concat", написана от Solar Designer, се използва в много случаи.
    • Приложният програмен интерфейс на Agena C вече е 100% съвместим с приложния програмен интерфейс Lua C API, за да се улесни пренасянето на пакети C Lua в Agena.
    • Следните функции са преименувани: lua_isnumber - & gt; agn_isnumber, lua_isstring - & gt; agn_isstring, luaL_optnumber - & gt; agnL_optnumber, luaL_checknumber - & gt; agnL_checknumber, luaL_optnumber - & gt; agnL_optnumber, luaL_checkinteger - & gt; agnL_checkinteger, luaL_optinteger - & gt; agnL_optinteger.
    • Следните макроси са преименувани: luaL_checkint - & gt; agnL_checkint, luaL_optint - & gt; agnL_optint.
    • За разлика от предишното изпълнение на Agena, lua_tonumber сега връща 0 като в Lua в случай, че не е бил приет номер, вместо връщане на HUGE_VAL.
    • lua_setglobal2 е премахнат. Използвайте lua_pushvalue и lua_setglobal вместо това.

    Какво е новото във версия 1.4.2:

    • Ако в списъка с параметри на процедура бяха зададени потребителски дефинирани типове, в
    • Процедурните обаждания не издават грешки и вместо това процедурата е изпълнена, в следните случаи:
    • a) таблица, набор, последователност, двойка или процедура - без да е дефинирана от потребителя
    • въведете
    • b) за съответния параметър не е подадена никаква стойност.

    Какво е новото във версия 1.4.1:

    • Кратките имена за "stats.quartiles" и "stats.mode" не могат да бъдат зададени чрез функцията "with". Това е фиксирано.
    • Грешно, "с" не може да присвои кратко име за "gdi.settriangle". Това е променено.
    • Грешката при обработката на "calc.polygen" е подобрена.
    • Подобрено съобщение за грешка на "fractals.draw" за липсващи картографски файлове на FRACTINT.
    • Премахната е отхвърлена функция `strings.rseek`. За обратната съвместимост към файла lib / compat.agn е добавен "strings.seek".
    • Добавен е превключвател -d за отпечатване на информация за отстраняване на грешки при стартиране на интерпретатора.
    • Вече Windows версията на Agena е компилирана с GCC 4.5.2.
    • Актуализирани файлове с езикова схема.
    • Ръководството е актуализирано.

    Какво е новото във версия 1.4.0:

    • Семантични промени:
    • Променливите за управление на бримките на цифровите "за / за" цикли сега са автоматично локални към заобикалящите ги блокове вместо техните (вътрешни) бримкови тела. Ако е декларирана и назначена локална променлива със същото име като контролната променлива на цикъл,
    • изпълнявайки цифров цикъл, той се презаписва от последната стойност на итерацията на цикъла. По този начин "външният" превключвател в цифровите "за" контури вече не се приема. (С GCC използвайте превключвателя -DCOMPAT13, за да компилирате версия на Agena, която все още разпознава, но игнорира "външната" ключова дума.)
    • С постоянното "fail", "not" се връща "true", но с "fail", присвоена на променлива, "not" се връща фалшива. Това е променено, т.е. "a: = неуспешно; не (а) "сега се връща" true ".
    • "stats.median" сега връща "fail" вместо 0, ако дадена структура е празна.
    • `utils.readcsv`: Ако се зададе едно бяло пространство с опцията` delim` и ако опцията `ignorespaces` не е дадена, белите полета не се премахват автоматично, преди да разделите всеки ред на файла в думите й.
    • Функцията също така има две нови опции: "header", който маркира първия ред във файл и "изход", който позволява съхраняването на съдържанието на файла в речник с имената на полетата, определени от заглавката на файла. / Li>
    • Нотацията на подсъюза `$ 'вече не се поддържа. (С GCC използвайте превключвателя DCOMPAT13, за да компилирате версия на Agena, която все още поддържа оператора `$`).
    • разширения:
    • Добавени са безкрайни до / от примки. Този вид цикъл се повтаря безкрайно и може да бъде прекъснат само с изявленията "прекъсване" или "връщане". Те са синтактична захар за "докато истинските правят ..." отклонения.
    • С таблици, "stats.minmax" преди е работил само с масиви. Това е променено, т.е. стойностите със съответните непативни ключове (напр. Низове, негативни числа, отрицателни и положителни поплавъци и т.н.) вече са правилно разпознати в оценката.
    • "stats.mean", "stats.qmean", "stats.sd" и "stats.var" също така обработват последователности.
    • Новата функция "stats.mode" връща всички стойности в последователност или таблица с най-голям брой случаи, т.е. най-висока честота.
    • Новата функция "stats.quartiles" връща първия, втория и третия квартал на таблица или последователност.
    • Към ръководството са добавени по-рано незаписани функции на `linalg.matrix` и подобрението му е подобрено.
    • Подобрена обработка на грешките на "linalg.hilbert".
    • `gdi.setinfo` вече приема опцията` square`. Ако "square = false", тогава осите x и y няма да имат еднаква скала върху парцелите, създадени с "gdi.plot".
    • Функцията `gdi.plot` за съставяне на графика за съжаление не е документирана. Това е променено.
    • `gdi.plot` приема две нови опции: опцията 'x' указва хоризонталния диапазон, върху който се показва графиката, а опцията 'y' определя вертикалния диапазон.
    • Ако PLOT структурата се предава на `gdi.plot`, съдържаща само POINT, LINES, RECTANGLES, TRIANGLEs, CIRCLEs и ELLIPSEs (включително техните * изпълнени варианти), тогава gdi.plot автоматично определя скалите gdi.setinfo "не е задължително да се нарича).
    • Характеристиките на OOP, наследени от Lua, са документирани в допълнение A9. Авторът не препоръчва обектно-ориентирано програмиране.
    • настройка:
    • Настройва се "изпълнен" оператор с около 3%.
    • Ощипвам ``, ​​`` присъединявам се `,` sadd`, `qsadd`, 'replace`,` copy`,' unique` и Cantor настройват операторите на маси и настройват малко.
    • С таблици операторите на "горе" и "дъното" са около 5% по-бързи сега.
    • Операторът "размер" е най-малко 8% по-бърз, ако дадена таблица не включва нули.
    • `linalg.mzip`,` linalg.mmul` и `linalg.transpose` са настройвани с около 3% всеки.
    • Цифровите числа за / към бримките с частични размери на стъпките са оптимизирани чрез намаляване на броя на техните контролни променливи наполовина. Това обаче не е постигнало увеличение на скоростта.
    • Patches:
    • Patched `linalg.ludecomp` за откриване на единични матрици. Също така функцията може автоматично да определи реда на дадена матрица.
    • За разлика от ръководството, `gdi.plot` не определя автоматично хоризонтални и вертикални диапазони. Това е фиксирано.
    • `gdi.plot` вече не пренебрегва опцията` square`, зададена от `gdi.setinfo`.
    • `gdi.setinfo` добави настройките към инфо структури, дори ако те вече са били налице. Това е променено.
    • Кръговете не са правилно начертани от gdi.plot. Това е променено.
    • Функцията `gdi.plot` в повечето случаи пренебрегва индивидуалното оцветяване на геометричните обекти. Това е променено.
    • Пакетът gdi не присвоява кратки имена за "gdi.settriangle", "gdi.settrianglefilled", "gdi.setrectangle" и "gdi.setrectanglefilled". Това е променено.
    • Пакетът от фрактали не е присвоил кратки имена за функциите на потребителски дефиниран тип "esctime". Това е променено. Коригирано съобщение за грешка на "fractals.draw", ако позиционните аргументи не са числа.
    • Разни:
    • Функционалността на `calc.fseq` е обединена в` nseq`. За обратната съвместимост "calc.fseq" все още е част от пакета calc, но функцията всъщност се отнася за внедряването `nseq`.
    • Добавена е променливата "environ.FractScreenUpdates" към пакета "fractals", за да се обозначи броят на вертикалните линии (неотрицателно цяло число), след което фракталът ще бъде актуализиран в прозорец. Променливата "environ.FractOptimised" е отхвърлена.
    • Допълнителните функции на gdi са прегрупирани.

    Какво ново във версия 1.3.3:

    • Пачове на `instr`:
    • Когато е в режим на регенерация, операторът връща неправилен резултат, ако е дадена начална позиция.
    • Когато сте в режим на обикновено търсене, операторът връща грешка извън обхвата, ако не е била дадена начална позиция.
    • Освен в режим на обратно търсене, ако не е намерено съответствие, първият аргумент е върнат вместо "null".
    • Коригирано съобщение за грешка на израза `create` по отношение на последователностите.
    • В AgenaEdit, при извеждането на повече от една структура само с едно повикване за "отпечатване", структурите не са отпечатани в пълен вид, ако първата структура съдържа __tostring metamethod. Това е променено.

    Какво е новото във версия 1.3.2:

    • Това издание включва корекции на бъгове, разширения и подобрено ръководство:
    • "Dimension" създадоха интересни резултати, ако дадена структура е била приета като
    • инициализатор. Това е променено: "dimension" сега създава независими копия на
    • структура при първоначалното създаване на таблицата.
    • Функционалността на `strings.rseek` е добавена към оператора` instr`.
    • По този начин "strings.rseek" е отхвърлен. За обратна съвместимост,
    • `strings.rseek` е добавен към файла lib / compat.agn.
    • "strings.hits" вече поддържа регулярни изрази и улавяния. Това поведение
    • може да бъде изключен, като подаде булев като трети аргумент.
    • `strings.isabbrev` и` strings.isending` сега автоматично използват обикновено търсене
    • ако не са минали регулярни изрази или улавяния като част от втория
    • аргумент.
    • Оформени "струнни.исмагични" и "струни.изфлоу".
    • Функцията `log 'вече е с 13% по-бърза.
    • При извеждането на повече от една структура само с едно обаждане за "отпечатване",
    • структури не бяха отпечатани в пълен вид, ако първата структура съдържа __tostring
    • metamethod. Това е променено.
    • Добавени категории функции към глава 7, за да се улесни стартирането на нови
    • потребители.

    Какво е новото във версия 1.3.1:

    • Имаше проблеми с вложени повиквания до следните двоични оператори: `xor`,` atendof`, `& amp;`, `||`, `^^`, `::` и `: - `, и по този начин и с красивия принтер, който се отказва с грешка при отпечатването на вложени структури. Това е фиксирано.
    • Четири фиксирания към `os.list`: Ако опцията 'r' е премината, текущата работна директория е погрешно променена след завършване на разговора.
    • Ако "r" не е преминал като последния аргумент, функцията е издала грешка.
    • `null` не е приет като първият аргумент за обозначаване на текущата работна директория.
    • В Windows 7, отпечатването на съдържанието на основната директория не работи, т.е. os.list ('c:') върна съдържанието на текущата работна директория.
    • Когато низ е индексиран с не-номер, напр. "str [null]", Agena се върна "null". Сега се повдига грешка.
    • Ако library.agn не е намерен, грешната пътека е изведена два пъти в предупреждението. Това е променено.

    Какво ново във версия 1.2:

    • Подчиненият оператор е преработен, но старата версия все още ще бъде налична до Agena 2.0: новата версия е: `str [отляво надясно]`, старата версия е: `str $ (ляво, дясно) , Пример: преди: 'str: =' string '; print (str $ (2, 3)) `- & gt; 'tr' сега: 'str: =' string '; print (str [2 до 3]) `- & gt; "TR"
    • Вече можете да определите подлежат на таблични масиви и последователности с новия синтаксис, споменат по-горе: `s [отляво надясно]. Пример: сега: `a: = [10, 20, 30, 40]; отпечатване (a [2 до 3]) `- & gt; [20, 30] сега: `a: = сек (10, 20, 30, 40); отпечатване (a [2 до 3]) `- & gt; seq (20, 30)
    • Функцията `ops` сега позволява да се зададат стойностите, които да се връщат, като се предава поредица от техните индексни позиции като първи аргумент, напр. ops (сек (1, -1), 10, 20,
    • 30).
    • Новата функция "strings.include" вмъква поредица от символи в низ
    • на дадена позиция.
    • Следващите функции сега издават грешка, вместо просто да върнат "fail" в
    • случай на провал: "os.remove", "os.move", "os.mkdir", "os.rmdir", "os.chdir".
    • Подобрения на следните оператори, работещи по сетове и последователности, отнасящи се до събирането на отпадъци: изречение "вмъкване", "съюз", "кръстопът", "минус", "уникален", "копие" и "поп / дъно" и задайте задания.
    • Подобрено съобщение за грешка на "fractals.draw", ако FRACTINT файл с цветна карта не е
    • не е намерен.

    Какво е новото във версия 1.1.0:

    • Тази версия има нова функционалност и чисто пространство за имена.
    • Съвместимост с Agena 1.0:
    • Някои функции са премахнати от Agena, а някои са преобразувани в пакетни функции (вижте по-долу). Ако все пак искате да ги използвате, изпробвайте readlib 'compat' на командния ред или поставете горната операция в своя инициализиращ файл, ако предпочитате обратната съвместимост с Agena 1.0.
    • Разширена функционалност:
    • Изразите "pop / top" и "pop / bottom" и "bottom" и "top" оператори вече могат да се приложат и към таблични масиви.
    • При извикване с "null" или без аргументи, "os.chdir" вече не издава грешка, но връща текущата работна директория. По този начин бившата функция "os.curdir" C е заменена с една написана на езика Agena.
    • `os.list` сега рекурсивно премества подпапки, ако е дадена новата опция 'r'.
    • Операторът `join` сега също приема опционален разделител и поддържа опцията за задаване на първия и последния елемент на структурата, която ще бъде обединена.
    • `instr` вече може да търси от десния край на низ, като подаде отрицателна позиция.
    • Ако дадена таблица включва други таблици, множества, последователности или двойки, `copy` вече знае как да се справя правилно с тези препратки, ако те се появят многократно: Ако n е включена вградена структура, тогава се прави едно истинско копие Поставят се n-1 препратки към тази новосъздадена структура. Преди са били направени n независими копия.
    • Новата функция "isnonposint" проверява дали дадените числа са цели числа и не са положителни.
    • `io.close` вече може да затвори няколко файла само с едно обаждане.
    • Функцията `with` не присвоява кратки имена за следните процедури на пакета` math`: `convertbase`, 'fraction`,' zeroin`,` todecimal`, `lcm`,` gcd` и ` ndigits`. Това е коригирано.
    • Функцията `rwritemode`, посочена в ръководството, не съществува. Сега той е на разположение, но се нарича "rmode".
    • Съобщенията за грешки от различни функции са подобрени.
    • Почистване на местоположението: Преименувани или преместени функции:
    • Базовите библиотеки "register" и "loadclib" са преместени в библиотеката "пакет".
    • Бившите "rdelet", "rget", "rinit", "roinit", "rmode", "rset", "remember" и "default" .
    • Преименували глобалната таблица _Env на "environ", която сега съдържа и процедури за достъп до средата.
    • Бившите глобални променливи на средата "homedir" и "infolevel" са преименувани съответно на "environ.homedir" и "environ.infolevel".
    • Следните бивши базови библиотечни функции са преместени в пакета `environ`:` anames`, `attrib`,` gc`, `getfenv`,` globals`, `isselfref`,` pointer`, `setfenv` , "used", "userinfo", "__RESTART", "__DOTTYPRINT".
    • `mapm.xtoNumber` е преименуван на` mapm.xtonumber`, `mapm.xtoString` е преименуван на` mapm.xtostring`. За обратната съвместимост имената на старите функции могат да се използват, като се изпълни lib / compat.agn файла (първо readlib пакета `mapm` и след това заредете файла compat.agn).
    • Оттеглени функции и променливи:
    • `strings.seek` е отхвърлен. Функционалността му е добавена към оператора `instr`. За да изключите режима за съвпадение на шаблоните на `instr`, преминете началото на търсенето като трети и` true 'като четвъртият аргумент. `instr` е с около 40% по-бърз в режим без съвпадение на шаблона от` strings.seek`. За обратната съвместимост към файла lib / compat.agn е добавен "strings.seek".
    • Функцията за библиотеката "concat" е премахната. Вместо това използвайте "присъединяване". За обратната съвместимост, предишната функция е добавена към файла lib / compat.agn.
    • Функциите `бъркане` и` подвижни 'са премахнати. За обратна съвместимост те са добавени към файла lib / compat.agn.
    • Функцията "pcall" е отхвърлена. Използвайте вместо това "защита". За обратна съвместимост функцията е добавена към файла lib / compat.agn.
    • Функцията `maptoset` е отхвърлена. За обратна съвместимост функцията е добавена към файла lib / compat.agn.
    • Функцията `os.alldirs` е отхвърлена. Използвайте опциите "dirs" и "r" вместо "os.list". За обратна съвместимост функцията е добавена към файла lib / compat.agn.
    • `os.isMac`,` os.isSolaris`, `os.isLinux`,` os.isWin`, `os.isOS2`,` os.isDOS`, `os.isHaiku` са отхвърлени. Моля, използвайте новите променливи за околната среда environ.Os и environ.Cpu вместо това, което също ускорява кода. За обратна съвместимост функциите са добавени към файла lib / compat.agn.
    • Променливата _VERSION, която не е документирана, е премахната. За обратна съвместимост, присвояването му е добавено към файла lib / compat.agn.
    • Други промени:
    • Функцията C API lua_rawsetstringnumber, посочена в ръководството, не съществува. Това е променено.
    • Оптимизиране на кода на анализатора.
    • В някои от пакетите случайно няколко променливи са имплицитно обявени за глобални. Това е фиксирано.
    • Коригирани и актуализирани примерни файлове за инициализация.
    • AgenaEdit бе актуализиран.
    • Файловете на езиковата схема са актуализирани.
    • Инсталаторите на Linux вече включват пакета xBase.

    Какво е новото във версия 1.0.6:

    • Подобрените съобщения за грешки на `join`,` copy` и `filled` оператори на` toset`, `toseq` и` totable` функции, на `insert`,` delete`, и на "за" цикли.

    • С последователностите Agena се разби в следната поредица от събития: 1) изречение "delete" е изпълнено, 2) последователността след това е била празна и 3) нов елемент е бил вмъкнат отново. Това е фиксирано. (Вътрешно изречението `delete` вече не намалява вътрешния размер на последователностите.)
    • С големи струни, `concat` се разби. Това е фиксирано.
    • С низове от 512 и повече байта, "join" и "replace" могат да се сринат. Това е фиксирано. Двамата оператори вече са много по-бързи от всякога.
    • `math.isprime` връща грешните резултати с аргументи & gt; 2 ^ 31 (споменат смътно в ръководството). Това е фиксирано чрез разширяване на диапазона на аргументите на цели числа със стойности до +/- 2 ^ 63.
    • `math.nextprime` и` math.prevprime` имаха същия проблем с по-големи аргументи като `math.isprime`. Това също е променено. С аргумент 2 "io.nextprime" фалшиво върна 5, вместо 3. Това също бе фиксирано.

    Какво е новото във версия 1.0.5:

    • "join" може да срине Agena и по друг начин да се държи неочаквано, ако полученият низ
    • надхвърли 512 байта. Това е променено.
    • Ако `` рестартиране '' е бил извикан, след като е била издадена грешка в предишната
    • изявление, Agena в редки случаи се срина поради корупцията в стека. Това е
    • фиксиран.
    • С новосъздадените таблици, съдържащи точно един елемент в хеш частта, "attrib"
    • сега връща правилните резултати за броя разпределени хеш слота (1 вместо 0).
    • Коригирани съобщения за грешки на "qsadd" и "sadd".
    • Подобрени съобщения за грешки на `join`,` copy` и `filled` оператори и на` insert`
    • и .
    • Грешката при обработката на "read", "save" и "fractals.draw" е подобрена.
    • Подобрения в makefile.
    • Размерите на буферите вече са стандартизирани в източниците.

    Какво е новото във версия 1.0.4:

    • Тъй като по време на инициализацията са докладвани редки катастрофи (при Windows XP SP 3 и OpenSolaris 134, при някои обстоятелства) събирането на боклука вече е изключено във фазата на инициализиране. Тези редки сегментационни грешки се появяват в OpenSolaris при стартирането на двойката Agena в прилежащата директория като root и в XP при щракване върху иконата Agena на работния плот с локални администриращи права.
    • Въведете -d превключвате към опциите на командния ред, за да отпечатате информация по време на инициализирането на Agena.
    • Въведете подходяща обработка на грешките, ако паметта не може да бъде разпределена вътрешно между: "trim", "upper", "lower", "os.curdir" и "strings.rseek".
    • Премахва потенциалните течове на паметта при инициализацията C функциите agenaL_initialise и agenaL_setLibname и в `io.write *` и `print`.

    Какво е новото във версия 1.0.3:

    • Новата функция `protect` изисква процедура в защитен режим и улавя всяка възможна грешка, за да не се прекъсват изчисленията. В случай на грешка, той задава низовата грешка на глобалната променлива "lasterror". Тя е свързана с "pcall", но не връща кода на състоянието като първи резултат.
    • `attrib` сега връща правилните резултати с празни структури. При празни структури функцията погрешно преброила един присвоен хеш елемент преди.
    • `attrib` сега връща броя на байтовете, заемани от таблици, набори и последователности, заедно с новия ключ на байтовете. Броят върнати байтове се основава на понякога противоречива информация, налична в мрежата.
    • "заменете" разбила Agena, ако полученият низ надхвърли 512 байта. Това е променено.
    • `assumume` сега се връща 'Успехът не е успял.' вместо "предположението е неуспешно."
    • Новата функция C API lua_setglobal2 задава стойността в горната част на стека на глобално име. Противно на lua_setglobal, стойността не е изведена.
    • Почистване на кода на lobject.h (структурата на таблицата) и lapi.c (macro actnodesize). Bugfix към C API функция agn_deletertable в случай, че Agena се компилира с non-void lua_assert. Променете връщащата се стойност на функцията savestate, която се използва по време на инициализацията, за да предотвратите (леко) възможността за корупция на стека.

    Какво е новото във версия 1.0.2:

    • Новата процедура "os.setenv" задава променливи на ниво операционна система. Функцията е била първоначално написана от Марк Едгар.
    • В Windows, `os.getenv` сега нарича функция на Windows API, за да получи стойностите на променливите на средата. Кодът на Windows е написан от Марк Едгар.
    • Новата функция `os.environ 'връща всички зададени променливи в таблица. Функцията е била първоначално написана от Марк Едгар.
    • `io.open` сега добавя показалеца FILE, името и режима на успешно отворен файл в новата таблица` io.openfiles`. "io.close" изтрива записа от "io.openfiles", ако файлът може да бъде успешно затворен.
    • Когато се извиква без аргументи, `io.read` вече връща грешка, ако е извикана без аргументи в AgenaEdit (в опит да прочете клавиатурата).
    • Ако в AgenaEdit се извикват `io.anykey` и` io.getkey`, се показва подходящо съобщение за грешка.
    • Една от подпроцесите на инициализацията е променена, за да се избегне възможна корупция в стека (въпреки че никога не са възникнали проблеми).
    • os.isMac ("ppc") вече работи на PowerPC машини.
    • Глави 4 и 6 от "Primer and Reference" бяха преработени и разширени. Добавен е индекс и са направени много козметични продукти.
    • Запазена правилна информация за версията на Windows.

    Какво е новото във версия 1.0:

    • Уважаеми дами и господа,
    • след почти четири години развитие, публикувах Agena 1.0, процедурен език за програмиране, извлечен от източници на Lua C.
    • Моята общност всъщност е много, много малка, но някои потребители ми казаха, че е добре, полезно и стабилно.
    • Ще бъда много щастлив, ако прегледахте Agena и ме информирахте за резултатите. Ако не го намерите полезно, моля, кажете ми лично и ми дадете шанс да поправите проблемите.

    Какво ново във версия 0.34.1d:

    • Тази версия включва актуализирана GUI версия на AgenaEdit (виж изпълним файл agenaedit).

    Какво е новото във версия 0.34.1:

    • AgenaEdit със синтактично подчертаване и вграден двигател с време на работа е бил освободен с Agena 0.34.1.

    Какво е новото във версия 0.34.0:

    • AgenaEdit със синтактично подчертаване и вграден модул за изпълнение е бил освободен с Agena 0.34.0.

    Какво е новото във версия 0.33.2:

    • Agena 0.33.2 с поддръжка на xBase файла е освободен.

    Какво е новото във версия 0.33.1:

    • Agena 0.33.1 с поддръжка на xBase файла е пусната.

    Какво е новото във версия 0.33.0:

    • Новият пакет `xbase` може да чете и записва xBase файлове, съвместими с стандарта dBASE III.
    • Пакетите `binio` и` ads` вече могат да обработват файлове до 2 ^ 63 байта. Преди да могат да обработват само файлове с размери до 2 ^ 31 байта.
    • Новите функции `io.lock`,` io.unlock`, `binio.lock`,` binio.unlock`, `ads.lock` и` ads.unlock` заключват файл от достъп за четене и писане чрез другата Agena
    • функции или дори други приложения, при условие че последните използват протокол за заключване.
    • Функцията baselib "read" вече не може да бъде презаписана от "with".
    • Новият пакет package.checkClib проверява дали пакетът, съхраняван в динамична библиотека С, е бил инициализиран. В противен случай тя връща предупреждение, отпечатано на екрана, и създава празна таблица за пакети. В противен случай нищо не прави.
    • Портът Хайку вече поддържа библиотеки с динамични връзки.

    Какво е новото във версия 0.32.3:

    • Agena 0.32.3 с нови и настроени функционални функции за отброяване.
    • Потребителите на Mac не трябва повече да инсталират допълнителни библиотеки за зависимости.
    • Вече е налице пристанище Хайку.

    Какво е новото във версия 0.31.5:

    • Тази версия съдържа вградени графики, математика за произволна прецизност и подобрени функции.

    Какво е новото във версия 0.31.3:

    • Добавя пакета с фрактали, за лесно изтегляне на фракталите в Solaris, Mac, Linux и Windows.
    • На Solaris и Linux, gdi.mouse вече връща стандартни стойности за натискани бутони на мишката (същото както при Mac и Windows изданията).
    • Когато е дадена опцията -v, Agena вече не изпълнява файловете за инициализация.
    • На UNIX или Mac файловите имена на файловете за инициализиране винаги трябва да са ".agenainit", независимо дали са в / usr / agena / lib или личната папка.
    • Бинарното разпределение на Mac за процесори на Intel работи с около 30% по-бързо от предишните версии.
    • Функцията `io.getkey` е вече налична в Mac OS X изданието.
    • На Mac, `os.system` сега връща пълна информация за операционната система и типа процесор. Обърнете внимание, че тя връща информация за ядрото на Дарвин и че първият запис в таблицата, която се получава, е "Дарвин" вместо "MacOSX".
    • `os.memstate`,` os.freemem` и `os.beep` сега поддържат Mac OS X.
    • `io.anykey` е налице на всички платформи, но се връща` fail` на DOS и Mac. По този начин "gdi.draw" вече няма да изпуска грешки на Mac, когато използва опцията "мишка".
    • `os.listcore` е разширен само за връщане на имена на файлове, директории или връзки. '.' и ".." сега никога не се връщат.
    • `os.list` не е разпознал никакви опции и вместо това е върнал празен списък. Това е фиксирано. Също така опциите вече могат да бъдат комбинирани. '.' и ".." като първият аргумент сега са правилно разпознати.
    • `os.curdir` сега автоматично замества обратно наклонените линии в пътя, определен с наклонена черта.
    • `os.fstat` и` ads.attrib` разби Agena, ако датата на файла е надвишила във вторник 19 януари 2038 г. Това е било коригирано или чрез връщане на празна таблица за клавиша за дата (os.fstat) или 0/0/01 00:00:00, (ads.attrib).
    • `utils.calendar` разби Agena, ако нейният аргумент е недействителен, отрицателен или твърде голям. Това е променено. Освен това, ако дата е извън Вторник, 19 януари 2038 г., се връща правилната дата.
    • Новите функции "os.screensize" и "os.mousebuttons" връщат текущата резолюция на екрана и броя бутони на прикрепената мишка, съответно (само за Windows).
    • Файлът agena.ini.sample е преименуван на .agenainit.sample в дистрибуциите на UNIX / Mac.
    • Нов makefile за Solaris сега се изпраща с обвързването на Mapm Agena, за да се компилират напълно оригиналните източници на MAPM, написани от Michael C. Ring.

    Какво е новото във версия 0.31.2:

    • Пакетът mapm за армир математическа прецизност е наличен и в изданието DOS на Agena.
    • Броят на използваните от пакета mapm цифри се инициализира до 17 цифри при стартиране на Agena за DOS или OS / 2 Warp. По-рано стандартната стойност е 1 цифра.
    • С кодът за MAPM свързването е стандартизиран. Преди това, DOS и OS / 2 изходните файлове се различаваха от тези за UNIX и Windows.
    • Малки подобрения на инсталаторите на Windows и Mac OS X
    • На Mac, документацията вече е достъпна в Библиотека / Документация / Agena вместо / Users / Share / Agena.
    • Функциите sin, cos, arcsin, arccos и arctan се връщат -0 вместо 0 като въображаема единица, което води до грешни резултати, ако връщането на тези функции е било приложено към други функции като ln на въображаемата единица на резултата от тези други функции е неправилно). Това е фиксирано чрез задаване на въображаема единица от 0 до 0 при връщането на греха, cos, arcsin, arccos и arctan.
    • Функциите arcsin и arccos връщат неправилни резултати за аргументи z, ако abs (реално ((z))) 1. Това е фиксирано.
    • В OS / 2 най-сложните аритметични функции се връщат неопределени. Това е фиксирано.
    • Имайте предвид, че в OS / 2 и DOS в сложния домейн все още има проблеми с операторите arccos и arcsin, които се връщат недефинирани в определени ситуации.
    • Windows, i386 Solaris 10 и Linux версиите вече са компилирани с GCC 4.4.x (и без xmath86.h), което значително намалява броя на грешките в сложната аритметика. Всъщност, разработването на сложни математически тестове връща нулеви грешки. Версията на Sparc е компилирана с GCC 4.3.3 за Sun Sparc и има по-малко грешки в сравнително число от 0.31.1.
    • Преименувайте следните файлове: config.h - & gt; agncfg.h, chelpers.h - & gt; agnhlps.h, agnxlib.h -> agnxlib.h.
    • На Mac, gdi.mouse връща стандартните стойности за натискани бутони на мишката.

    Какво е новото във версия 0.31.1:

    • Agena 0.31 включва всички основни инструменти за очертаване на точки, линии, кръгове, елипси, правоъгълници, дъги. и др., за да контролирате размера на изображението и цветовете.

    Какво е новото във версия 0.31.0:

    • Издание за съгласуваност на езика с корекция на програмни грешки - е освободено. Вижте дневника за промените за това, което се е променило.

    Какво е новото във версия 0.30.4:

    • Сега Agena разполага с вградени графики. Това ще ви позволи да графирате графики, изображения и т.н. в прозорци X11 или Win32 или в GIF, PNG, JPEG, FIG или PostScript файлове както в Solaris, Linux, така и в Windows. Agena се свързва с графичната библиотека g2, написана от Любомир Миланович и Хорст Вагнер, за да осигури тези нови възможности.
    • Agena 0.30 включва всички основни инструменти за очертаване на точки, линии, кръгове, елипси, правоъгълници, дъги. и др., за да контролирате размера на изображението и цветовете.
    • & GT; с "gdi";

    • пакет
    • gdi v0.1.4 към 20 декември 2009 г.
    • arc, arcfilled, фон, кръг, circlefilled, clearpalette, close, тире, елипса, elipsefilled, флъш, шрифт, initpalette, мастило, lastaccessed, линия, newline, newpoint, отворен, парцел, plotfn, точка, правоъгълник, правоъгълник , нулиране, resetpalete, setinfo, setoptions, структура, текст, дебелина, триъгълник, trianglefilled, useink
    • Функцията plotfn черпи една или повече графики от функции в една реална, по избор заедно с осите, изобразени в потребителски дефиниран цвят. Диапазонът за оста y също може да бъде даден, в противен случай Agena определя най-добрата настройка. Съществуват различни други опции, които могат да бъдат зададени с функцията setoptions и които ще се прилагат за всички графики, създадени в сесия: разделителната способност на прозореца, цветната карта, дебелината на линията и цвета на фона. Разбира се, потребителят може да отмени някои или всички опции за конкретен участък. Singularities се третират правилно.

    Какво е новото във версия 0.30.3:

    • Agena 0.30.3 с вградена графика, математика с прецизна точност и подобрени функции.

    Какво е новото във версия 0.30.2:

    • Сега Agena разполага с вградени графики. Това ще ви позволи да графирате графики, изображения и т.н. в прозорци X11 или Win32 или в GIF, PNG, JPEG, FIG или PostScript файлове както в Solaris, Linux, така и в Windows. Agena се свързва с графичната библиотека g2, написана от Любомир Миланович и Хорст Вагнер, за да осигури тези нови възможности.
    • Agena 0.30 включва всички основни инструменти за очертаване на точки, линии, кръгове, елипси, правоъгълници, дъги. и др., за да контролирате размера на изображението и цветовете.
    • & GT; с "gdi";

    • пакет
    • gdi v0.1.4 към 20 декември 2009 г.
    • arc, arcfilled, фон, кръг, circlefilled, clearpalette, close, тире, елипса, elipsefilled, флъш, шрифт, initpalette, мастило, lastaccessed, линия, newline, newpoint, отворен, парцел, plotfn, точка, правоъгълник, правоъгълник , нулиране, resetpalete, setinfo, setoptions, структура, текст, дебелина, триъгълник, trianglefilled, useink
    • Функцията plotfn черпи една или повече графики от функции в една реална, по избор заедно с осите, изобразени в потребителски дефиниран цвят. Диапазонът за оста y също може да бъде даден, в противен случай Agena определя най-добрата настройка. Съществуват различни други опции, които могат да бъдат зададени с функцията setoptions и които ще се прилагат за всички графики, създадени в сесия: разделителната способност на прозореца, цветната карта, дебелината на линията и цвета на фона. Разбира се, потребителят може да отмени някои или всички опции за конкретен участък. Singularities се третират правилно.

    Какво е новото във версия 0.29.0:

    • Сега Agena разполага с вградени графики. Това ще ви позволи да графирате графики, изображения и т.н. в прозорец или във формат GIF, PNG, JPEG, FIG или PostScript в Solaris, Linux и Windows, като включите обвързване с графичната библиотека g2, написана от Любомир Миланович и Хорст Вагнер.
    • Agena 0.29.0 разполага с всички основни инструменти за очертаване на точки, линии, кръгове, елипси, правоъгълници, дъги. и т.н., за управление на цветовете и за създаване на файлове с изображения или за отваряне на прозорци X11 или Win32.
    • В една от следващите актуализации потребителският интерфейс на високо ниво, включващ функциите gdi.plotfn и gdi.plot, ви позволява да заснемете едностранчиви функции и набор от точки в движение. Двете функции вече са включени в Agena 0.29.0, но все още са бета. Ето преглед:
    • & GT; с "gdi";

    • пакет
    • gdi v0.1.0 към 24 ноември 2009 г.
    • дъга, фон, кръг, clearpalette, close, тире, елипса, filledArc, filledCircle, filledEllipse, filledRectangle,
    • изпълнено триъгълник, флъш, шрифт, initpalette, мастило, lastaccessed, линия, отворен, парцел, plotfn, точка, правоъгълник, нулиране
    • resetpalete, setinfo, setoptions, структура, текст, дебелина, триъгълник, useink
    • Функцията plotfn черпи графиката на функция в една реална, по избор заедно с осите, изобразени в потребителски дефиниран цвят. Диапазонът на оста y също може да бъде даден, в противен случай Agena се опитва да определи най-добрата настройка. Съществуват различни други опции, които могат да бъдат зададени с функцията setoptions и които ще се прилагат за всички графики, създадени в сесия: разделителната способност на прозореца, цветната карта, дебелината на линията и цвета на фона. Разбира се, потребителят може да отмени някои или всички опции за конкретен участък. Singularities се третират правилно.
    • plotfn (sin (x) * x> gt ;, -5, 5, цвят ~ син, аксиколор ~ сиво, res ~ 640: 480)

    Какво е новото във версия 0.27.2:

    • Новата функция toSet baselib преобразува низ в набор от знаци и таблица или последователност в набор.
    • io.readlines е кръпка за обработка на линии с повече от 2048 знака. Функцията вече издава грешка, ако не успее да се разпредели паметта. Вътрешният буферен размер е намален от 2048 байта до 512 байта. Можете да промените това, като зададете друга стойност на AGN_IOREADLINES_MAXLINESIZE във файла agnconf.h.
    • io.readlines сега приема и дръжки за файлове. Когато използвате дръжки за файлове, за разлика от имената на файлове, моля, имайте предвид, че трябва да затворите файла ръчно, след като използвате io.readlines.
    • io.readlines вече не връща празна таблица, ако файлът не съществува. Вместо това тя издава грешка.
    • toSeq връща грешка вместо да се провали, ако не получи низ, set или таблица.
    • Използваната функция baselib е разширена и може да върне използването на памет в байтове, kbytes и gbytes. Това е функция C сега.
    • Функцията gcinfo без документи е била изтрита. Функционалността му е използвана.
    • Новата функция C API agn_usedbytes връща броя байтове, използвани от системата.
    • Коригирано грешно съобщение за грешка на toTable.
    • преименувана на C AOI функцията "agn_isioforcerror" на "agn_isioforceerror".

    Какво е новото във версия 0.27.0:

    • Добавена е функцията за грешки math.erf и допълнителната функция за грешки math.erfc.
    • Добавена е функцията Бесел от първия вид math.besselj, а Bessel функцията на втория вид math.bessely. Редът се дава от първия аргумент, аргументът като втори аргумент.
    • Ако новата променлива на средата _EnvIoForceError е зададена на стойност, която не е null (по подразбиране), io.open, io.readlines и различните binio функции напускат грешка вместо просто да се връщат нормално.
    • binio.readbytes и binio.readchar връщат празна последователност вместо да се провалят в случай, че файлът, който трябва да бъде прочетен, не съществува. Това е променено: грешка или грешка е върната.
    • arcsin и arccos са оператори и по този начин около 40% по-бързи.
    • Добавена е оператора xor, който изпълнява Boolean exclusive-OR на стойности, които оценяват или са верни, невярни, неуспешни и null.
    • Добавена е операторът, който проверява дали дадена дума завършва с дадена фраза и връща позицията си като число. Операторът връща нула, ако струните имат еднаква дължина, поне единият от тях е празният низ или думата не завършва в дадения шаблон.
    • hasrtable връща само истина, ако има таблица за четене и запис (актуализирана от декларацията за връщане).
    • Новата функция hasrotable определя дали дадена функция има таблица за запомняне само за четене (която не може да бъде актуализирана от декларацията за връщане) и връща true или false.
    • Новите оператори gethigh и getlow извличат по-горните и долните байтове от число (т.е. двойно C).
    • Новите оператори sethigh и setlow задават по-високите и долните байтове на брой (т.е. C двойно).
    • Новата операционна лента, bor, bxor и bnot не водят по битумни и / или ексклузивни или допълнителни операции по номера.
    • Новата функция `kernel` конфигурира настройките на ядрото Agena. Понастоящем тя може да промени начина, по който работят вътрешните бийтове (използването на подписани или неписани числа) и как се отпечатват номерата.
    • С реални номера x, math.argument сега връща Pi вместо 0, ако x < 0.
    • Поради грешка в базовите функции на библиотеката ANSI C, arcsin и arccos са получили грешни резултати със сложни числа, ако тяхната въображаема част е била нула в системите на UNIX. Това е фиксирано.
    • math.isPrime е съобщено за невярно с номер 2. Това е коригирано.
    • За разлика от ръководството, ABS върна 2 с неуспех. Сега тя връща -1, както е документирано.
    • Пакетът с битове е премахнат.
    • Добавена е новата функция C API agn_isioforcerror, която проверява дали _EnvIoForceError е зададена на стойност, която не е нула.
    • Новата функция C API agn_setbitwise определя дали вътрешните изчисления на операторите, банката, bnot, bxor и shift, се изчисляват с подписани или неподписани числа.
    • Новата функция C API agn_getbitwise връща режима, зададен от agn_setbitwise.
    • Новата функция C API agn_setdigits определя броя на цифрите, използвани за отпечатване на номера.
    • Новата функция C API agn_getdigits определя броя на цифрите, използвани за отпечатване на номера.
    • Вътрешна: Премахнато отписвано "REPL" запис от luaP_opnames.
    • Програмата за инсталиране на Windows вече е подобрена, за да провери за предварително инсталирана версия на Agena, като предотврати стартирането на инсталатора, ако вече е стартирано друго копие на програмата, както и някои други малки подобрения.

    Изисквания :

    • Ncurses
    • GNU Readline

Подобен софтуер

Коментари към Agena

Коментари не е намерена
добавите коментар
Включете на изображения!
Търсене по категория