1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/LaomoBK-ail

Клонировать/Скачать
2_2.md 4.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 19:57 864373e

Обновление версии AIL 2.2 Klee

2022-3-12

AIL 2.2 предоставляет более подробную информацию об ошибках синтаксиса и повышает общую стабильность.

== Обновление содержания ==

1. Адаптация к Python 3.10

Версия AIL 2.2 начинает адаптацию некоторых функций к Python 3.10, при этом исходный код будет максимально совместим с Python 3.7 и оптимизирован для работы с Python 3.10.

Подробности обновления версии Python 3.10: py3.10.

2. Более чёткие сообщения об ошибках синтаксиса

Новая версия AIL 2.2 обеспечивает более чёткую и подробную информацию о сообщениях об ошибках синтаксиса. Новые добавленные сообщения об ошибках включают, но не ограничиваются следующим:

Указание на приблизительное местоположение ошибки

В новой версии AIL при возникновении ошибки синтаксиса AIL указывает приблизительное расположение ошибки:

>> a = match x {};
  File "<shell>", line 1
    a = match x {};
                 ^
SyntaxError: match body cannot be empty

Сообщение об ошибке при несоответствии скобок

В новой версии AIL будет выдано сообщение об ошибке при несовпадении скобок:

>> a = (1, 2];
  File "<shell>", line 1
    a = (1, 2];
             ^
SyntaxError: closing parenthesis ']' does not match opening parenthesis '(' (at line 1, col 6)

Подробное сообщение о незавершённой строке

В новой версии AIL выдаётся подробное сообщение об ошибке, если строка не завершена:

>> name = 'klee
  File "<shell>", line 1
    name = 'klee
               ^
SyntaxError: unterminated string literal (detected at line 1)

3. Обновления стандартной библиотеки

Модуль maptools добавляет функции xmapwith и traverse.

4. Другие обновления

1. Отображение commit id и branch в AIL shell

В AIL shell версии 2.2 Klee alpha 2 [727] (2.2/d24235a) (Python 3.8.0 (default, Dec 5 2019, 10:53:43) [Clang 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf6)] отображаются commit id и branch:

AIL 2.2 Klee alpha 2 [727] (2.2/d24235a) (Python 3.8.0 (default, Dec  5 2019, 10:53:43)
[Clang 8.0.7 (https://android.googlesource.com/toolchain/clang b55f2d4ebfd35bf6)
Type 'help(...)', '$help', 'copyright()', 'python_copyright()' to get more information, 'exit()' to exit.

>> 

2. Добавление оператора not in

Оператор not in можно использовать для быстрой проверки наличия элемента в итерируемом объекте:

>> knights_of_favonius = ['Jean', 'Kaeya', 'Eula', 'Amber', 'Rosaria', 'Klee'];
>> 'Klee' not in knights_of_favonius;
False
>> 'Diona' not in knights_of_favonius;
True
>>
>> 1 not in [1, 2, 4, 8, 16];
False
>> 'a' not in 'Jean';
False
>>

Примечание: По сравнению с выражением not ... in ..., использование оператора not in может повысить эффективность выполнения программы.

Добавление тернарного оператора if-else

Тернарный оператор if-else позволяет выбрать значение в одном выражении:

>> passed = true
>> result = 'OK' if passed else 'FAILED'
>> result
OK

5. Значительные исправления ошибок и оптимизация

  1. Исправление проблемы с анализом выражения |=
  2. Исправление проблем с анализом выражений, начинающихся с not
  3. Исправление анализа сложных выражений с индексами, таких как x[1][2]
  4. Оптимизация анализа индексов, членов и вызовов, что повышает стабильность
  5. Исправление проблемы, когда import в каталоге, отличном от текущего, вызывал ошибку

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/LaomoBK-ail.git
git@api.gitlife.ru:oschina-mirror/LaomoBK-ail.git
oschina-mirror
LaomoBK-ail
LaomoBK-ail
3.0