Agena

Скріншот програми:
Agena
Дані програми:
Версія: 2.11.5 оновлений
Дата завантаження: 22 Jun 18
Розробник: Alexander Walz
Ліцензія: Безкоштовно
Популярність: 23

Rating: nan/5 (Total Votes: 0)

Agena - це безкоштовна, безкоштовна, багатоплатна та простий у вивченні процедурна мова програмування, призначена для повсякденного використання. Він може використовуватися в графічних, наукових, лінгвістичних та освітніх середовищах, а також у сценаріїв, що підтримують всі основні операційні системи.


Пропонує багато об'єктів управління потоком

Додаток пропонує безліч інструментів управління потоком, наприклад, якщо. elif, else умовах, випадку та інших умовах, є оператором, чисельним для, від, до і за циклами, комбінованими числовыми циклами для і для, і для циклів, і для циклів, і для циклів, і для неї, і для циклів, і для пропуску, і для перерви виписку, а також перевірку типу даних.


Надає перелік завдань

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

Під капотом і наявністю

Швидкий погляд під капотом покаже нам, що проект написаний на мовах програмування C, BASIC, Lua і ALGOL 68, що означає, що його синтаксис нагадує синтаксис цих проектів. Він повністю працює в середовищі консолі / терміналу, що означає, що він не має графічного інтерфейсу користувача (GUI).


Кораблі з простим редактором

Незважаючи на те, що програмне забезпечення Agena - це програма командного рядка, вона поставляється з простим графічним редактором програмного забезпечення, що називається AgenaEdit, що включає в себе інтегроване середовище Agena та можливості виділення синтаксису. Він сильно натхненний аналогічним редактором, розробленим Біллом Шпіцаком для крос-платформенного інструментарію GUI для Клієнта FLTK.


Працює на Малину Пі

Графічні можливості 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" не був викликаний з функцією `with` або оператором` import / alias`. Це було виправлено.

Що нового у версії 2.5.4:

  • Тепер "stats.chauvenet" тепер може спеціально перевіряти нижні або верхні викиди, передаючи відповідно параметр `outlier = 'lower'` або' outlier = 'upper'`.
  • "bags.remove` викликає сегментацію помилок. Це було виправлено. Більш того, всі функції "мішок", виконані в C, були внутрішньо змінені.
  • (необов'язкові) мета-методи для `+`, `-` та` * 'не працюють, якщо пакет "bags" не був викликаний з функцією `with` або оператором` import / alias`. Це було виправлено.

Що нового у версії 2.5.3:

  • тепер `stats.chauvenet` може перевіряти спеціально для нижній або верхній викривлень, пропустивши відповідно параметр `outlier = 'lower'` або` outlier =' upper'`.
  • "bags.remove` викликає сегментацію помилок. Це було виправлено. Більш того, всі функції "мішок", виконані в C, були внутрішньо змінені.
  • (необов'язкові) мета-методи для `+`, `-` та` * 'не працюють, якщо пакет "bags" не був викликаний з функцією `with` або оператором` import / alias`. Це було виправлено.

Що нового у версії 2.4.2:

  • "stats.chauvenet" тепер може спеціально перевіряти нижні або верхні виходи, передаючи відповідно параметр `outlier = 'lower'` або` outlier =' upper'`.
  • "bags.remove` викликає сегментацію помилок. Це було виправлено. Більш того, всі функції "мішок", виконані в C, були внутрішньо змінені.
  • (необов'язкові) мета-методи для `+`, `-` та` * 'не працюють, якщо пакет "bags" не був викликаний з функцією `with` або оператором` import / alias`. Це було виправлено.

Що нового у версії 2.3.0 RC1:

  • Циклічні символи `for` плюс підтримують ключове слово` downto ', щоб ви могли відраховуватись, не використовуючи обов'язковий негативний розмір кроку `to`. У контексті `downto 'розмір кроку` by' завжди повинен бути позитивним. При використанні ключового слова "downto" обов'язкові значення "від початку" та "до" зупинки є обов'язковими.
  • Метамати "__finite", "__entier" і "__sqrt" більше не підтримуються. Натомість було додано три нових метаданих для операцій на структурах: "__union" для профспілкових операцій, "__interresect" для визначення перехресть і "__minus" для відмінностей. Таким чином, пакет "bags" тепер також підтримує ці три операції.
  • Оператор `` цілого ділення не підтримував його метаметр і використовував його для плаваючого поділу (`/` operator). Це було виправлено.
  • Нова функція `stats.gini` визначає коефіцієнт Джині, міру рівності (in-).
  • Нова функція `stats.zscore` повертає функцію обчислення z-score (стандартна оцінка) зразка - кількість стандартних відхилень, вибірка яких перевищує або нижче середнього значення розподілу.
  • "stats.sorted" тепер за замовчуванням використовує алгоритм Introsort замість Quicksort. Це може призвести до прискорення розрахункового часу тричі у погано обумовлених ситуаціях (коли Quicksort потребує операцій O (n ^ 2)), при цьому не приносячи прибутків у звичайних ситуаціях. Фактично, Introsort використовує Quicksort за замовчуванням, а потім автоматично переключається на Heapsort, якщо глибина рекурсії досягає 2 * log (n, 2), де n - кількість елементів у структурі.
  • Ви можете перевизначити цю логіку, передаючи нову опцію 'quicksort', яка використовує традиційний рекурсивний метод Quicksort для сортування чисел. Також тепер "stats.sorted" також може використовувати алгоритм Heapsort виключно за умови передачі нової опції 'heapsort' та нерекурсивного алгоритму Quicksort, розробленого Niklaus Wirth за допомогою нової опції 'nrquicksort'.
  • Нова функція `stats.meanmed` повертає як середнє арифметичне, так і медіану розподілу, або, як альтернатива, частку середнього та середнього, прискорення часу обчислення, коли ці значення потрібні приблизно на 20%.
  • Покращено повідомлення про помилку оператора `size`.

Що нового у версії 2.1.1:

  • Нові функції та виправлення:
  • "try / catch": явна специфікація змінної помилки відразу після того, як `catch` токен тепер необов'язковий. Якщо не вказано змінну помилки, то повідомлення про помилку автоматично зберігається в локальній змінній `lasterror`, а ключ` then` слід виключити:
  • & gt; спробуйте
  • & gt; помилка ("ой!")
  • & gt; ловити
  • & gt; print (lasterror)
  • & gt; yrt;
  • Ой!
  • Процедура `try / catch` інколи не працювала в процедурах (непризначена змінна помилки). Це було виправлено.
  • Функція 'net.wget` завантажує HTML-сторінки з Інтернету.
  • Налаштовано "skycrane.counter" на 10%. Функція тепер необов'язково застосовує Kahan-Ozawa замість оригінального алгоритму підсумовування Kahan, якщо новий третій аргумент є рядком 'ozawa'. Відповідні джерела C були змінені для запобігання оптимізації компілятора, що також може скасувати оптимізацію.
  • "argerror" тепер друкує ім'я користувача, визначене користувачем, отриманого в повідомленні про помилку. Якщо значення не має визначеного користувачем типу, його основний тип видається.
  • Нова опція 'a' до `debug.getinfo` повертає кількість аргументів, очікуваних процедурою, завдяки Rob Hoelz''LuaPowerPatch.
  • Покращено повідомлення про помилку "index out of range" для рядків
  • Модифіковані файли `stats.agn`,` linalg.agn`, `library.agn` та` ansi.agn` щодо їх обробки помилок.

Що нового у версії 2.1.0:

  • Для нового виду обробки помилок був введений новий вираз `try / catch`. Він був винайдений та написаний Ху Ціві для Lua 5.1 ще в 2008 році.
  • Загалом, будь-які заяви, в яких може бути очікуваний виняток, можуть бути введені в статтю `try`. Якщо видається помилка, викликана явним викликом функції `error` або будь-яким іншим виразом, функцією чи твердженням, контроль негайно переходить до відповідного пункту` catch ', якщо є, або до кінця `try / yrt `заява, якщо не було надано пункту` catch ', ігноруючи будь-які інші наступні вирази у положенні `try`.
  • Засоби захисту від конфліктів `protect / lasterror` залишаються і завжди підтримуватимуться. Новий контрольний вислів також працює з пробілами `break`,` skip`, `redo` та` return`.
  • Нова команда `redo` перезапускає поточну ітерацію циклу` for / in` і `for / in` з самого початку.
  • Оператор new `reci` повертає зворотне число x. Це еквівалентно вираженню 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; flag: = true; & gt; для j в [10, 11, 12] do & gt; друк ("до", j, прапор); & gt; якщо прапор і j = 11, то> чистий прапор; & gt; print ('->, j, прапорець,' перейти назад ') & gt; перезавантажити & gt; fi; & gt; друк ("після", j, прапор) & gt; поки j & gt; 12; до 10 істинне після 10 вірних до 11 true - & gt; 11 помилковий стрибок назад до 11 невірний після 11 невірний до 12 невірний після 12 помилкових
  • Оператор new `reci` повертає зворотне число x. Це еквівалентно вираженню 1 / x, але швидше.
  • Нова функція `stats.ema` вираховує експоненціальну ковзну середню розподілу. Нова функція `stats.gema` повертає функцію ітератора, що повертає відповідну експоненціальну ковзну середню розподілу. Для його використання, будь ласка, ознайомтеся з вихідним файлом src / stats.c, C functions * ema.
  • `*%`, `+%` і `-%` повернули `undefined` замість правильного результату, якщо їхній правий операнд був нульовим. Це було виправлено.
  • Виправлено повідомлення про помилку в "net.survey".
  • Нова функція API C agn_arraytoseq перетворює числовий масив у послідовність і виводить цю нову послідовність на вершину стеку.

Що нового у версії 2.0.0:

  • Нові заяви та функції:
  • Agena 2.0 сумісна з Agena 1.12, за винятком того, що токени `import`,` alias`, `until` і` onsuccess` тепер є ключовими словами і більше не можуть бути використані як змінні. Наразі доступні версії 2.0 для Solaris, Debian (x86, PowerPC, Raspberry Pi), Windows, Mac та DOS, включаючи оновлений праймер та довідник, де детально пояснюються всі нові функції.
  • Нові варіанти циклу `for / as` та` for / until` перевіряють стан в кінці поточної ітерації або починають наступну ітерацію або залишають цикл. Це працює як для / for, так і для циклів for / in. По суті, обидва варіанти виконують цикл, принаймні один раз, доки перевіряється даний стан.
  • Приклади:
  • & gt; для 5 до
  • & gt; роздрукувати (i)
  • & gt; як я 3
  • & gt; для i в [1, 2, 3, 4, 5] робити
  • & gt; роздрукувати (i)
  • & gt; поки i & gt; = 3
  • Новий цикл `do / until` повторюється, доки не буде виконано певні умови:
  • & gt; c: = 0;
  • & gt; робити
  • & gt; Inc c;
  • & gt; print (c)
  • & gt; поки c & gt; = 3
  • У циклі цифрових символів `for`, `clause` to` більше не може бути надано. Замість цього, виходячи з пункту `to`, цикл повторюється, доки не досягне найбільшого числа, представленого на вашій платформі, у C HUGE_VAL:
  • & gt; бо я
  • & gt; роздрукувати (i)
  • & gt; od
  • Нова стаття `onsuccess` в операторах` if` та `case` виконує фрагмент, якщо принаймні одне з умов є істинним. Приклади:
  • & gt; flag: = false;
  • & gt; якщо 1 = 0, то
  • & gt; print (0)
  • & gt; Еліф 1 = 1, потім
  • & gt; print (1)
  • & gt; на успіх
  • & gt; flag: = true
  • & gt; ще
  • & gt; роздрукувати (-1)
  • & gt; fi;
  • & gt; друк (прапор);
  • true
  • & gt; flag: = false;
  • & gt; якщо 1 = 0, то
  • & gt; print (0)
  • & gt; elif 1 = 0, то
  • & gt; print (1)
  • & gt; на успіх
  • & gt; flag: = true
  • & gt; ще
  • & gt; роздрукувати (-1)
  • & gt; fi;
  • & gt; друк (прапор);
  • помилково
  • & gt; flag: = false;
  • & gt; a: = 2;
  • & gt; випадок
  • & gt; з 1 потім
  • & gt; print (1)
  • & gt; з 2 потім
  • & gt; print (2)
  • & gt; на успіх
  • & gt; flag: = true
  • & gt; ще
  • & gt; роздрукувати (-1)
  • & gt; esac;
  • & gt; друк (прапор);
  • true
  • Нова команда `import` дозволяє імпортувати одну або декілька бібліотек без введення їх імен в лапки, наприклад "імпортний обчислення, статистика" еквівалентно "readlib ('calc', 'stats')".
  • Параметр `псевдонім 'для оператора` import` призначає один або декілька коротких імен для ініціалізованих функцій бібліотеки, наприклад "імпортувати обчислювальну псевдонім xpdiff" еквівалентно "with ('calc', 'xpdiff')", а "імпортувати обчислювальний псевдонім" еквівалентно "with ('calc')".
  • Новий оператор `..` дозволяє індексувати таблиці, навіть якщо його лівий операнд оцінюється як 'null'. У цьому випадку повертається `null` і не виникає` спроба індексування поля ... (нульове значення) `. Він схожий на функцію `getentry`, але в три рази швидше. Приклади:
  • & gt; створити таблицю a;
  • & gt; a.b:
  • нуль
  • & gt; a.b.c:
  • Помилка в stdin, в рядку 1:
  • спроба індексувати поле `b` (нульове значення)
  • & gt; a..b..c:
  • нуль
  • & gt; створити таблицю a;
  • & gt; a [1]:
  • нуль
  • & gt; a [1] [2]:
  • Помилка в stdin, в рядку 1:
  • спробувати індексувати поле "?" (нульове значення)
  • & gt; a .. [1] .. [2]:
  • нуль
  • Нова функція `drem` оцінює залишок цілішого розподілу x / y, але всупереч` irem` обертає внутрішній фактор x / y до найближчого цілого, а не до нуля.
  • Нова функція `skycrane.todate` повертає поточну дату та час як форматовану рядок.
  • Нова функція `io.truncate` призупиняє файл у поточній позиції файлу.
  • Нова функція `io.move` змінює розташування файлу певну кількість символів ліворуч або праворуч.
  • Нова функція `io.filesize` повертає розмір файлу.
  • `readlib` тепер приймає тільки рядки як аргументи. Цифри більше не дозволяються.
  • Якщо останній аргумент `with` є булевим` false`, функція не записує призначені короткі імена консолі (stdout).
  • "strings.fields" тепер також приймає послідовність номерів індексів. Проте він не приймає індекс "0" більше.
  • Програма установки Raspberry Pi Wheezy тепер включає графічний пакет `gdi`.
  • Файл `change.log` тепер правильно відображається у Windows.

Що нового у версії 2.0.0 RC3:

  • Нові варіанти циклу `for / as` та` for / until` перевіряють стан в кінці поточної ітерації або починають наступну ітерацію або залишають цикл. Це працює як для /, так і для / в циклі.

Що нового у версії 2.0.0 RC2:

  • Нові варіанти циклу `for / as` та` for / until` перевіряють стан в кінці поточної ітерації і або починають наступну ітерацію або залишають цикл. Це працює як для /, так і для / в циклі.

Що нового у версії 2.0.0 RC1:

  • Нова команда `import` дозволяє імпортувати одну або декілька бібліотек без введення їх імен в лапки, наприклад "імпортний обчислення, статистика" еквівалентно "readlib ('calc', 'stats')".
  • Параметр `псевдонім 'для оператора` import` призначає один або декілька коротких імен для ініціалізованих функцій бібліотеки, наприклад "імпортувати обчислювальну псевдонім xpdiff" еквівалентно "with ('calc', 'xpdiff')", а "імпортувати обчислювальний псевдонім" еквівалентно "with ('calc')".
  • Новий оператор `..` дозволяє індексувати таблиці, навіть якщо його лівий операнд оцінюється як 'null'. У цьому випадку повертається `null` і не виникає` спроба індексування поля ... (нульове значення) `. Це схоже на функцію `getentry`, але в три рази швидше

Що нового в версії 1.12.9:

  • Нові функції "io.getclip" та "io.putclip" обмінюються текстом між Agena і буфер обміну (лише для Windows).
  • "stats.prange" було переписано в C і стало на 60% швидше.
  • `os.cpuinfo` тепер повертає правильну та додаткову інформацію про системи на базі ARM.
  • У системах DOS та UNIX, включаючи Mac OS X, і тільки в складному домені, експонування бази 0 до показника 0 + r * I, причому будь-який ненульовий флоат повертає "undefined" замість 0. Це було виправлено.
  • У системах DOS та UNIX, включаючи Mac OS X, і тільки в складному домені, експонування бази 0 до показника r + 0 * I, при r будь-якого позитивного плавача, повертається `undefined` замість 0. Це має було виправлено.
  • "stats.obcount" і "stats.obpart" не можуть містити значення в найдосконалішому піддіапазоні. Це було виправлено.
  • 'calc.nakspline`, `calc.naksplinecoeffs`,` calc_clampedspline` та `calc_clampedsplinecoeffs` викликали несправності сегментації, якщо вони викликані з структурою, яка містить занадто мало балів, тобто пар. Це було виправлено шляхом повернення "невдало" у цих випадках.
  • Помилкові помилки вилучення пам'яті були вилучені з "calc.neville", "calc.interp", "calc.newtoncoeffs", "calc.naksplinecoeffs", "calc.clampedsplinecoeffs", "calc.nakspline", і "calc.clampedspline".
  • Нова функція C API `agn_checkinteger` перевіряє, чи аргумент є числом та цілим числом, і - всупереч` luaL_checkinteger` - помилково видає помилку.

Що нового в версії 1.9.0:

  • Нова функція `alternate` повертає свій перший аргумент, якщо його другий аргумент є` null`. В іншому випадку він повертає другий аргумент.
  • Перемикач -b виконуваний файл Agena був вилучений, оскільки його вихід був таким самим, як -v.
  • Версії `strings.utf8size` для Windows та UNIX / Mac містять потенційну витік пам'яті; це було змінено.
  • Усі бінарні бібліотеки DLL / SO у бібліотеках плюс не містять невикористаного коду, зменшуючи їх розміри до 10 відсотків залежно від операційної системи. Макети і джерела, які раніше імпортували невикористані файли заголовків, були змінені. Наприклад, це зовсім скорочує розмір бінарних файлів Windows на 55 кбайт.
  • Розширений тестовий набір.
  • Оновлені файли схеми.

Що нового в версії 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 + бітових системах та непідписані довгі на 16bit машини.
  • API C:
  • 100% сумісність API Agena C з Lua C API була відновлена ​​шляхом введення функцій Lua's * dump. Таким чином, ви тепер можете зберігати функції в двійковому представленні, наприклад, використовуючи `strings.dump` або lua_dump на рівні C
  • Представлено нову функцію `agnL_optboolean` для перевірки необов'язкових аргументів булі та повернення їх у разі успіху.
  • Виправлено помилки:
  • `environ.globals` завжди виходить з помилки, це було виправлено.
  • "Припустити" повернуто помилково, оскільки обидва його аргументи є або оцінюються як "undefined". Тепер це повертається в цьому випадку справді.
  • Агенція розбилася при передачі порожньої таблиці та делімітатора, щоб "приєднатися" - це було виправлено.
  • Параметр `colour` більше не ігнорується` 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 може збирати прототип під час його створення".
  • * Інформація: Додавання пакунка 10 Lua 5.1.4, "Метод методу індексування [__write / __ new]" може не працювати, якщо metatable - це його власна метадана ", для Agena це не обов'язково, тому що Agena вже працює в цьому випадку правильно.
  • Вилучено невикористане ключове слово "за умовчанням".
  • Деякі посилення функцій та функцій.
  • Покращення:
  • До версії для Mac додано _experimental_ версію `io.anykey`. Однак, принаймні на лева, іноді натискається клавіша повторюється на оболонці.
  • `utils.readcsv` тепер може необов'язково повертати всі значення у файлі CSV у рівній послідовності.
  • Пакет `clock` тепер підтримує оператор поділу` / `, додавши його до метаметру оператора` tm`.
  • Поведінка `з` була змінена, оскільки вона не могла призначити короткі імена для багатьох функцій бібліотеки: якщо функції були введені в таблицю .aux, не призначайте короткі імена для цих імен функцій; інакше призначити короткі імена для _all_ інших функцій пакунків. Таким чином: `package.register` для реєстрації всіх функцій бібліотеки для` with` для призначення коротких імен, більше не потрібний. Він буде вичерпано в одному з наступних випусків.
  • Покращено набір тестів.
  • Посібник:
  • Покращено інструкцію та індекс.
  • Послідовність:
  • Для всіх наступних перейменувань наступні старі назви змінених все ще підтримуються.
  • "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` тепер повертають «невдачу», як це робить UNIX або OS / 2.
  • Перемикач `-DCOMPAT13` остаточно видалено для складання версії, що складається з Agena 1.3.x.
  • Інше:
  • Призупинено `calc.fseq` було видалено. Будь ласка, використовуйте `nseq` замість

Що нового у версії 1.5.1:

  • Виправлені strings.fields, які взагалі не працювали. Також вона була перетворена в функцію бібліотеки С і, таким чином, в 2,6 рази швидше.
  • `strings.words` тепер приймає третій аргумент, якщо його встановити на` true`, наступні обмежувачі ігноруються.
  • Видалив можливу витоку безпеки з "io.write" та "io.writeline" та покращив повідомлення про помилку.
  • Виправлено `binio.readchar ', щоб уникнути проблем з файлами розміром більше 2 Гб.
  • Виправлені повідомлення про помилки функцій `xbase.purge`,` xbase.readvalue`, `xbase.purge`,` ads.getvalues`, `binio.readshortstring`,` os.computername`, `os.login`, `os.fattrib`,` environ.kernel`, `package.register`.
  • Тепер терабайти можна ввести за допомогою позначення T, де це ціле число, а T - символ `T`. Аналогічно, g позначає мільярди, а т трильйони. Див. Стор. 48 посібника для отримання додаткової інформації.
  • Оновлено посібник.
  • В основному всі зворотні сумісні властивості у вихідному коді C були вилучені з причин очищення коду. Це впливає лише на тих, хто намагається перекомпілювати Agena 1.5 або вище з повною зворотною сумісність з Agena 1.3 і 1.4 і більшою частиною зворотної сумісності з Lua 5.0 (за винятком старої версії бібліотеки Lua 5.0).

Що нового у версії 1.5.0:

  • `map` тепер також може обробляти рядки, задані як його другий аргумент. Відповідна функція та її аргументи послідовно застосовуються до кожного символу зліва направо, а результат повертається в послідовності.
  • `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.singlesubs' повністю переписано. Тепер він очікує, що послідовність чисел буде другим аргументом замість колишньої структури userdata структури strarray. Це на 35% повільніше, ніж попередня версія, але видалення строкової структури було більш важливим.
  • "strings.include" розбився, якщо він викликається з 0 як другий аргумент. Це було виправлено.
  • Застосовується Майкл Г. Шверн 10 травня 2011 р. до патча його "32-бітної 2038-Fix" дати допоміжних функцій, що використовуються пакетами `os` та` xbase` (`Make mktime64 () виправити вхідні tm struct як вимагає ISO C ")
  • Внутрішня оптимізація коду: деяка ініціалізація бібліотеки та завантаження файлів C використовували стек для побудови рядків шляху та назв файлів. Нова функція `concat`, написана Solar Designer, зараз використовується замість цього у багатьох випадках.
  • Тепер API Agena C 100% сумісний з API Lua C, щоб полегшити перенесення пакетів 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:

  • Якщо в списку параметрів процедури вказані користувальницькі типи, в
  • процедура викликає не випускалися ніяких помилок, і процедура була виконана замість цього, в наступних випадках:
  • а) таблиця, набір, послідовність, пара або процедура - без визначення користувача
  • тип - передано,
  • b) для зазначеного параметра взагалі не було передано значення

Що нового в версії 1.4.1:

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

Що нового в версії 1.4.0:

  • Семантичні зміни:
  • Змінні керування циклу цифрових "for / to" циклів тепер автоматично локальні для їх навколишніх блоків замість їх (внутрішніх) тіл циклу. Якщо локальна змінна з таким самим ім'ям, як і змінна керування циклі, була оголошена і призначена раніше
  • виконуючи числовий цикл, він перезаписується останньою ітераційною цінністю циклу. Таким чином, "зовнішній" перемикач у цифрових `for` петлях більше не приймається. (З GCC використовуйте перемикач -DCOMPAT13 для складання версії Agena, яка як і раніше визнає, але ігнорує ключове слово "зовнішнє".)
  • З постійним `fail`,` not` повертається `true`, але з` fail ', присвоєним змінній, `not` повернуто false. Це було змінено, тобто "a: = failed; не (a) "тепер повертає" true ".
  • "stats.median" тепер повертає `fail 'замість 0, якщо вказана структура порожня.
  • `utils.readcsv`: якщо одне пробіл буде передано за допомогою опції` delim`, і якщо параметр `ignorespaces` не був наданий, білі простори більше не будуть автоматично видалятися, перш ніж розділяти кожну рядок файлу на його слова.
  • Функція також має два нових варіанти: `header`, який позначає перший рядок у файлі, і` output`, який дозволяє зберігати вміст файлу у словнику з його назвами полів, визначеними заголовком файлу.
  • Знак підстановки `$ 'більше не підтримується. (З GCC використовуйте перемикач-DCOMPAT13 для складання версії Agena, яка все ще підтримує оператор `$ '.)
  • Розширення:
  • Нескінченні цикли do / od були додані. Цей тип циклу ініціюється нескінченно і може бути перерваний тільки за допомогою операторів `break` або` return`. Вони є синтаксичним цукром для "в той час як істинно роблять ... od` петлі.
  • За допомогою таблиць "stats.minmax" раніше працював тільки з масивами. Це було змінено, тобто значення з відповідними не позитивними клавішами (наприклад, рядки, не позитивні цілі числа, негативні та позитивні поплавки тощо) тепер правильно визнаються в оцінці.
  • `stats.mean`,` stats.qmean`, `stats.sd` і` stats.var` тепер також обробляють послідовності.
  • Нова функція `stats.mode` повертає всі значення в послідовності або таблиці з найбільшою кількістю випадків, тобто найвищою частотою.
  • Нова функція `stats.quartiles` повертає першу, другу та третю квартелі таблиці _sorted_ або послідовності.
  • До цього документа додані недокументовані функції "linalg.matrix", і його обробка помилок була покращена.
  • Покращена обробка помилок з `linalg.hilbert`.
  • `gdi.setinfo` тепер приймає параметр` square`. Якщо `square = false`, то осей x і y не буде мати однакову шкалу на ділянках, створених за допомогою` gdi.plot`.
  • Функція `gdi.plot` для малюнка, на жаль, не була задокументована. Це було змінено.
  • `gdi.plot` приймає два нових варіанти: опція 'x' вказує горизонтальний діапазон, на якому відображається сюжет, а параметр 'y' визначає вертикальний діапазон.
  • Якщо структура PLOT передана до `gdi.plot`, яка містить тільки пункти, LINES, RECTANGLES, TRIANGLEs, CIRCLEs та ELLIPSEs (включаючи їх варіанти * FILLED), то` gdi.plot` автоматично визначає масштаби (` gdi.setinfo` обов'язково потрібно викликати).
  • Функції OOP, успадковані від Lua, тепер задокументовані у Додатку A9. Автор не рекомендує об'єктно-орієнтоване програмування.
  • Настроювання:
  • Налаштовується "заповнений" оператор приблизно на 3%.
  • Виправлено в `,` join`, `sadd`,` qsadd`, `replace`,` copy`, `unique` і Cantor встановлюють оператори на таблицях і встановлюють трохи.
  • За допомогою таблиць оператори "верхня" та "нижня" розташовані приблизно на 5% швидше.
  • Оператор `size` принаймні на 8% швидше, якщо таблиця не містить nulls.
  • "linalg.mzip", "linalg.mmul" та "linalg.transpose" налаштовані приблизно на 3%.
  • Числові для циклів / з дрібними розмірами кроків були оптимізовані шляхом зменшення кількості їхніх контрольних змінних вдвічі. Однак це не призвело до збільшення швидкості.
  • Патчі:
  • Виправлено `linalg.ludecomp` для виявлення сингулярних матриць. Також функція тепер може автоматично визначати порядок заданої матриці.
  • На відміну від посібника, `gdi.plot` автоматично не визначає горизонтальні та вертикальні діапазони. Це було виправлено.
  • `gdi.plot` більше не ігнорує параметр` square`, встановлений `gdi.setinfo`.
  • `gdi.setinfo` додав параметри до структур INFO, навіть якщо вони вже присутні. Це було змінено.
  • Кола не були нанесені належним чином за допомогою `gdi.plot`. Це було змінено.
  • Функція `gdi.plot` в більшості випадків ігнорувала індивідуальне забарвлення геометричних об'єктів. Це було змінено.
  • Пакет gdi не призначив короткі імена для `gdi.settriangle`,` gdi.settrianglefilled`, `gdi.setrectangle` та` gdi.setrectanglefilled`. Це було змінено.
  • У пакеті фракталов не призначаються короткі імена для функцій типового типу 'esctime'. Це було змінено. Виправлено повідомлення про помилку fractals.draw, якщо позиційні аргументи не були числами.
  • Різне:
  • Функціональність `calc.fseq` була об'єднана в` nseq`. Для зворотної сумісності "calc.fseq" як і раніше є частиною calc package, але функція насправді відноситься до реалізації `nseq`.
  • Додано змінні `environ.FractScreenUpdates 'до пакета` fractals', щоб позначити кількість вертикальних ліній (невід'ємне ціле число), після чого фрактал буде оновлено у вікні. Змінна `environ.FractOptimised` застаріла.
  • Додаткові функції gdi були перегруповані.

Що нового у версії 1.3.3:

  • Патчі для `instr`:
  • Якщо в режимі регулярного виклику оператор повернув неправильний результат, якщо було надано початкову позицію.
  • Коли в режимі простого пошуку оператор повернув помилку поза діапазону, якщо не було вказано початкову позицію.
  • Крім режиму зворотного пошуку, якщо відповідність не знайдено, перший аргумент був повернений замість "null".
  • Виправлено повідомлення про помилку оператора `create 'щодо послідовностей.
  • У AgenaEdit, коли виводити більше ніж одну структуру з одним дзвінком на `print`, структури не були надруковані у повній формі, якщо перша структура містила __tostring metamethod. Це було змінено.

Що нового у версії 1.3.2:

  • Цей випуск містить виправлення помилок, розширення та вдосконалений посібник:
  • "Розмір" створив цікаві результати, якщо структура була передана як
  • ініціалізатор. Це було змінено: "dimensioner" тепер створює незалежні копії
  • структуру при ініціалізації таблиці.
  • Функціональність `strings.rseek` додана в оператор` instr`.
  • Таким чином, `strings.rseek` застаріла. Для зворотної сумісності
  • `strings.rseek` додано до файлу lib / compat.agn.
  • "strings.hits" тепер підтримує регулярні вирази та знімки. Ця поведінка
  • можна вимкнути, передаючи логічне значення як третій аргумент.
  • "strings.isabbrev" і "strings.isending" тепер автоматично використовують простий пошук
  • якщо регулярні вирази та захоплення не були передані як частина другого
  • аргумент
  • Виправлено `strings.ismagic` та` strings.isfloat`.
  • Функція `log` тепер на 13% швидше
  • При виведенні більш ніж однієї структури з одним дзвінком на `print`,
  • структури не друкувалися у повному обсязі, якщо перша структура містила __tostring
  • мета методом. Це було змінено.
  • Додано категорію функцій у главу 7, щоб полегшити початок нового
  • користувачів.

Що нового у версії 1.3.1:

  • Були проблеми з вставленими викликами до наступних двійкових операторів: `xor`,` atendof`, `& amp;`, `||`, `^^`, `::`, і `: - `, а, отже, і приємний принтер, який вийшов з помилки під час друку вкладеної структури. Це було виправлено.
  • Чотири виправлення до `os.list`: якщо параметр« r »був переданий, після завершення дзвінка помилково змінено поточний робочий каталог.
  • Якщо 'r' не було передано як останній аргумент, функція видав помилку.
  • `null` не приймається як перший аргумент для позначення поточного робочого каталогу.
  • У Windows 7 друк вмісту кореневого каталогу не працював, тобто os.list ('c:') повернув вміст поточного робочого каталогу.
  • Коли рядок був індексований з неписью, наприклад, "str [нуль]", Agena повернув "null". Тепер виникла помилка.
  • Якщо бібліотека.agn не знайдено, у попередження виводиться неправильний шлях. Це було змінено.

Що нового в версії 1.2:

  • Оператор підстрою був перероблений, але стара версія залишиться доступною до Agena 2.0: новий: `str [зліва направо]`, старий -: `str $ (ліворуч, праворуч)` . Приклад: до: `str: = 'string'; print (str $ (2, 3)) `-> 'tr' тепер: `str: = 'рядок'; друк (str [2 до 3]) `-> 'tr'
  • Тепер ви можете визначити підрозділи табличних масивів і послідовностей за допомогою нового синтаксису, згаданого вище: `s [зліва направо]`. Приклад: зараз: `a: = [10, 20, 30, 40]; друк (від [2 до 3]) `-> [20, 30] зараз: `a: = seq (10, 20, 30, 40); друк (від [2 до 3]) `-> seq (20, 30)
  • Функція `ops` тепер дозволяє вказати значення, які будуть повернуті шляхом передачі послідовності їх позицій індексу як перший аргумент, наприклад ops (seq (1, -1), 10, 20,
  • 30)
  • Нова функція `strings.include` вставляє рядок символів у рядок
  • на певній позиції.
  • Наступні функції тепер виводять помилку, а не просто повертають `fail 'в
  • випадок збою: `os.remove`,` os.move`, `os.mkdir`,` os.rmdir`, `os.chdir`.
  • Удосконалення наступних операторів, що працюють на наборах та послідовностях, що стосуються збирання сміття: вставка `statement ',` union`, `intersection`,` minus`, `unique`,` copy`, `pop / top` і `pop / bottom`, і встановити призначення.
  • Покращено повідомлення про помилку 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" тепер може закрити кілька файлів лише одним викликом.
  • Функція `з` не призначає короткі імена для наступних процедур пакета` math`: `convertbase`,` fraction`, `zeroin`,` todecimal`, `lcm`,` gcd` і ` ndigits '. Це було виправлено.
  • Функція `rwritemode`, згадана у посібнику, не існувало. Він доступний, але називається "rmode".
  • Помилки повідомлень про різні функції були покращені.
  • Область імен: очищення: перейменовані або переміщені функції:
  • Функції бібліотеки базової бази `register` та` loadclib` перенесені в бібліотеку `package`.
  • Колишні функції "бібліотеки" `rdelete`,` rget`, `rinit`,` roinit`, `rmode`,` rset`, `запам'ятати` та` базові бібліотеки `
  • Перейменовано загальний _Env таблиця в "environ", яка також містить процедури доступу до середовища.
  • Колишні глобальні змінні середовища `homedir` та` infolevel` були перейменовані на `environ.homedir` та` environ.infolevel` відповідно.
  • Наступні колишні функції базової бібліотеки були перенесені в пакет `environ ':` anames`, `attrib`,` gc`, `getfenv` ,` globals`,` isselfref`, `pointer` ,` setfenv` , `використані`,` userinfo`, `__RESTART`,` __DOTTYPRINT`.
  • `mapm.xtoNumber` було перейменовано в` mapm.xtonumber`, `mapm.xtoString` було перейменовано в` mapm.xtostring`. Для зворотної сумісності старі назви функцій можуть бути використані, виконуючи файл lib / compat.agn (спочатку прочитайте lib на пакет `mapm`, а потім завантажте файл compat.agn).
  • Непридатні функції та змінні:
  • `strings.seek` застаріла. Його функціональність додана оператору `instr`. Щоб вимкнути режим відповідності шаблону `instr`, передайте початок пошуку як третій, а` true` - четвертим аргументом. `instr` на 40% швидше в режимі, що не відповідає шаблону, ніж` strings.seek`. Для зворотної сумісності файл lib / compat.agn додано у файл `strings.seek '.
  • Функція бібліотеки `concat` була вилучена. Замість цього використовуйте `join`. Для зворотної сумісності попередня функція додана у файл lib / compat.agn.
  • Функції `hasrtable` та` hasrotable` були вилучені. Для зворотної сумісності вони були додані до файлу lib / compat.agn.
  • Функція `pcall` застаріла. Замість цього використовуйте `protect`. Для зворотної сумісності ця функція додана у файл 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.
  • Інші зміни:
  • Функція API C API lua_rawsetstringnumber, згадана у посібнику, не існувало. Це було змінено.
  • Оптимізація коду для аналізатора.
  • У деяких пакунках випадково декілька змінних були неявно оголошені глобальними. Це було виправлено.
  • Виправлені та оновлені файли зразків ініціалізації.
  • AgenaEdit оновлено.
  • Файли сховища мови були оновлені.
  • Тепер встановлювачі Linux містять пакет xBase.

Що нового у версії 1.0.6:

  • Поліпшення повідомлень про помилки з `join`,` copy` та `заповнених` операторів, з` toset`, `toseq` і` totable` функцій, `insert`,` delete`, `pop` statements і "за" петлі.
  • За допомогою послідовностей 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:

  • "Приєднатися" може призвести до аварії Agena і в іншому випадку поводитися несподівано, якщо результуючий рядок
  • перевищено 512 байт. Це було змінено.
  • Якщо виклик `restart` був викликаний після випуску помилки в попередньому
  • висловлювання, Агена в окремих випадках розбилася через пошкодження стеків. Це було
  • виправлено.
  • З новоствореними таблицями, що містять рівно один елемент у хеш-частини, `attrib`
  • тепер повертає правильні результати для кількості виділених хеш-слотів (1, а не 0).
  • Виправлені повідомлення про помилки "qsadd" та "sadd".
  • Покращено повідомлення про помилки `join`,` copy` та `заповнених` операторів, а також` insert`
  • і `delete`.
  • Покращено обробку помилок з `read`,` save` та `fractals.draw`.
  • Покращення файлів make.
  • Буферні розміри тепер стандартизовані в джерелах.

Що нового у версії 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 байт. Це було змінено.
  • `assume` тепер повертає« Assumption failed ». замість "припущення не вдалося".
  • Нова функція C API lua_setglobal2 встановлює значення у верхній частині стека до глобального імені. На відміну від lua_setglobal, значення не з'являється.
  • Очищення коду об'єкта lobject.h (структура таблиці), а lapi.c (макрос за допомогою acctnodize). Функція bugfix to C API agn_deletertable у тому випадку, якщо Agena складається з недійсним lua_assert. Змініть на повернення значення збереженої функції, яка використовується під час ініціалізації, щоб уникнути (незначної) можливості копіювання стеків.

Що нового у версії 1.0.2:

  • Нова процедура `os.setenv` встановлює змінні середовища на рівні операційної системи. Спочатку цю функцію написав Марк Едгар.
  • У Windows, `os.getenv` тепер викликає власну функцію API Windows, щоб отримати значення змінних оточення. Код 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 розділу «Пратер та довідник» були переглянуті та розширені. Було додано індекс, і було зроблено багато косметики.
  • Збережено правильну інформацію про версію для виконуваного файлу Windows

Що нового у версії 1.0:

  • Шановні пані та панове,
  • після майже чотирьох років розвитку я опублікував Agena 1.0, процедурну мову програмування, отриману з джерел Lua C.
  • Моя спільнота насправді дуже, дуже мала, але деякі користувачі сказали мені, що це добре, корисно та стабільно.
  • Я був би дуже радий, якщо ви переглянули Agena і повідомили мені про свої результати. Якщо ви не вважаєте це корисним, скажіть, будь ласка, особисто та дайте мені шанс вирішити проблеми.

Що нового у версії 0.34.1d:

  • Ця версія містить оновлену версію інтерфейсу користувача 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
  • функції або навіть інші програми, якщо останні використовують протокол блокування.
  • Функція `read` базиліба більше не може бути перезаписана символом` with`.
  • Новий `package.checkClib` перевіряє, чи було ініціалізовано пакет, який зберігається в динамічній бібліотеці C. Якщо ні, він повертає попередження, надруковане на екрані, і створює порожню таблицю пакетів. Інакше він нічого не робить.
  • Тепер порт Haiku підтримує динамічні бібліотеки посилань.

Що нового у версії 0.32.3:

  • Розпочато роботу Agena 0.32.3 з новими та настроєними функціями обчислень.
  • Mac користувачам більше не потрібно встановлювати додаткові бібліотеки залежності.
  • Тепер доступний порт Haiku.

Що нового у версії 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 os.system тепер повертає повну інформацію про операційну систему та тип процесора. Зверніть увагу, що він повертає інформацію про ядрі Дарвіна, і що перша запис у результуючій таблиці тепер є `Darwin` замість` MacOSX`.
  • `os.memstate`,` os.freemem` та `os.beep` тепер підтримують Mac OS X.
  • `io.anykey` доступний на всіх платформах, але повертає` fail 'на DOS і Mac. Таким чином, `gdi.draw` більше не буде викидати помилки на Mac при використанні опції` mouse`.
  • `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 в даний час поставляється разом з Mapma Agena, обов'язковим для повного складання оригінальних джерел MAPM, написаних Майкла Кіль.

Що нового у версії 0.31.2:

  • Пакет mapm для прецизійної математики для арбітрів тепер також доступний в DOS видання Agena.
  • Кількість цифр, що використовуються пакункам mapm, ініціюється на 17 цифр при запуску Agena для DOS або OS / 2 Warp. До цього типовим значенням було 1 цифру.
  • Код C для зв'язування MAPM був стандартизований. До цього вихідні файли DOS та OS / 2 відрізнялися від тих, що використовувались для UNIX та Windows.
  • Невеликі вдосконалення для встановлювачів Windows і Mac OS X.
  • У Mac, документація тепер доступна в бібліотеці / документації / Agena замість / Користувачі / Поділитися / Agena.
  • Функції sin, cos, arcsin, arccos та арктан повернулися -0 замість 0 як уявну одиницю, що призвело до неправильних результатів, якщо повернення цих функцій було застосовано до інших функцій, таких як ln (тобто знак уявної одиниці результату цих інших функцій була невірною). Це було виправлено шляхом встановлення уявної одиниці від 0 до 0 при поверненні гріха, cos, arcsin, arccos та арктана.
  • Функції arcsin та arccos повернули неправильні результати для аргументів z, якщо abs (real ((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 - & gt; 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 р.
  • дуга, аркуш, фон, круг, круглий, кліпарт, ближній, тире, еліпс, еліпс, наліт, шрифт, ініпельт, чорнила, lastaccessed, лінія, новий рядок, нова точка, відкрита, сюжет, plotfn, точка, прямокутник, прямокутник заповнений , reset, resetpalette, setinfo, setoptions, структура, текст, товщина, трикутник, трикутник заповнений, useink
  • Функція plotfn малює один або декілька графіків функцій в одному реальному, необов'язково поряд із осями, намальованими в певному користувацькому кольорі. Діапазон для осі Y також може бути вказаний, в іншому випадку Agena визначає найкращі параметри. Існують різні інші параметри, які можна встановити за допомогою функції setoptions і які застосовуватимуться до всіх графіків, що виробляються в сеансі: роздільна здатність вікон, карта кольорів, товщина лінії та фоновий колір. Звичайно, користувач може перевизначити деякі або всі параметри для конкретного сюжету. Особливості правильно обробляються.

Що нового у версії 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 р.
  • дуга, аркуш, фон, круг, круглий, кліпарт, ближній, тире, еліпс, еліпс, наліт, шрифт, ініпельт, чорнила, lastaccessed, лінія, новий рядок, нова точка, відкрита, сюжет, plotfn, точка, прямокутник, прямокутник заповнений , reset, resetpalette, setinfo, setoptions, структура, текст, товщина, трикутник, трикутник заповнений, useink
  • Функція plotfn малює один або декілька графіків функцій в одному реальному, необов'язково поряд із осями, намальованими в певному користувацькому кольорі. Діапазон для осі Y також може бути вказаний, в іншому випадку Agena визначає найкращі параметри. Існують різні інші параметри, які можна встановити за допомогою функції setoptions і які застосовуватимуться до всіх графіків, що виробляються в сеансі: роздільна здатність вікон, карта кольорів, товщина лінії та фоновий колір. Звичайно, користувач може перевизначити деякі або всі параметри для конкретного сюжету. Особливості правильно обробляються.

Що нового у версії 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 package v0.1.0 станом на 24 листопада 2009 р.
  • арку, фону, коло, кліпарт, ближній, тире, еліпс, fillArc, filledCircle, filledEllipse, filledRectangle,
  • заповнений трикутник, флеш, шрифт, ініціатива, чорнила, завантажений, лінія, відкрита, сюжет, фрагмент, крапка, прямокутник, скидання,
  • resetpalette, setinfo, setoptions, структура, текст, товщина, трикутник, useink
  • Функція plotfn малює графік функції в одному реальному, необов'язково разом з осями, намальованими у визначеному користувачем кольорі. Діапазон для осі Y також може бути наданий, в іншому випадку Agena намагається визначити найкращі параметри. Існують різні інші параметри, які можна встановити за допомогою функції setoptions і які застосовуватимуться до всіх графіків, що виробляються в сеансі: роздільна здатність вікон, карта кольорів, товщина лінії та фоновий колір. Звичайно, користувач може перевизначити деякі або всі параметри для конкретного сюжету. Особливості правильно обробляються.
  • plotfn (sin (x) * x & gt; & gt ;, -5, 5, колір ~ 'синій', axiscolour ~ 'сірий', res ~ 640: 480);

Що нового у версії 0.27.2:

  • Функція new toSet baselib перетворює рядок в набір його символів і таблицю або послідовність у набір.
  • io.readlines було виправлено для обробки рядків, що мають більше 2048 символів. Ця функція також видає помилку, якщо не вдається розподілити внутрішню пам'ять. Внутрішній розмір буфера зменшено з 2048 байтів до 512 байт. Ви можете змінити це, присвоївши іншим значенням AGN_IOREADLINES_MAXLINESIZE у файлі agnconf.h.
  • Тепер io.readlines також приймає файлові ручки. Використовуючи файлові ручки, на відміну від назв файлів, зверніть увагу, що ви повинні закрити файл вручну після використання io.readlines.
  • io.readlines більше не повертає порожню таблицю, якщо файл не існує. Натомість він видає помилку.
  • Тепер toSeq повертає помилку замість невдалого, якщо вона не отримує рядок, набір чи таблицю.
  • Використана функція базиліба була розширена і може повернути використання пам'яті в байтах, кбайт і в байтах. Це функція С зараз.
  • Незареєстрована функція gcinfo була знищена. Його функціональність була використана.
  • Нова функція C API agn_usedbytes повертає кількість байтів, що використовуються системою.
  • виправлено помилкове повідомлення про помилку в таблицю
  • перейменована функція C AOI `agn_isioforcerror` до` agn_isioforceerror`.

Що нового в версії 0.27.0:

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

Вимоги :

  • Ncurses
  • ReadLine GNU

Схожі програми

GCL
GCL

3 Jun 15

Spackager
Spackager

14 Apr 15

OpenCL
OpenCL

11 May 15

boot
boot

20 Feb 15

Agena

Коментар не знайдено
додати коментар
Включіть картинки!
Пошук за категоріями