Каковы критерии включения языка в gcc?

Обычно используется trapдля отмены всего, когда вы закончите. Он должен быть идемпотентным, т. е. он должен изящно завершиться ошибкой, если некоторые из шагов не могут быть выполнены.

#!/bin/bash

clean_up=false
errorhandler () {
    umount z || true
    $clean_up && cleanup_thing
    umount y || true
    umount x
}
trap errorhandler ERR EXIT

mount a x
mount b y
setup_thing
clean_up=true
mount c z
do_something

Обратите внимание, что ловушка также срабатывает на EXIT, поэтому она также будет выполняться до нормального завершения сценария; так что вам вообще не нужно очищать явно.

Я полагаю, что сигнал ERRпсевдо -является расширением Bash. Так что это не будет работать в Ash/Dash/устаревшей оболочке Bourne и т. д.

0
14.03.2019, 02:41
1 ответ

В основном,должен быть языковой интерфейс и все необходимые вспомогательные библиотеки, лицензированные соответствующим образом, с достаточно качественным (кодом, а также документация и тесты ), с людьми, желающими их поддерживать. Принимают решения руководящий комитет GCC .

Есть примеры добавления и удаления языков в не -слишком -далеком прошлом. D стал кандидатом в 2011 году , был утвержден в 2017 году и доступен в GCC 8. С другой стороны, Java была удалена в GCC 7 после долгого бездействия.

Есть проекты по добавлению Python и Rust , но я не думаю, что там много активности.

GCC разделяется на несколько компонентов ; различные языки, которые он поддерживает, реализованы внешними интерфейсами, которые преобразуют программы в промежуточное представление, GIMPLE (, который не зависит от языка -и машины -). Таким образом, оптимизаторы являются общими для разных языков.

0
28.01.2020, 03:54

Теги

Похожие вопросы