Состоялся релиз GnuCOBOL 2.2
Вышел компилятор языка программирования COBOL GnuCOBOL 2.2. Это первый релиз со значительными изменениями после того как компилятор вошёл в число проектов GNU и перестал быть OpenCOBOL’ом.
Изменения:
- Теперь под лицензиями GPL/LGPL 3
- Определяемые юзером функции, FUNCTION-ID.
- Новые внутренние функции
ABSOLUTE-VALUE алиас для ABS CURRENCY-SYMBOL CURRENCY-SYMBOL текущей программы FORMATTED-CURRENT-DATE ISO 8601 функция даты и времени FORMATTED-DATE ISO 8601 функция даты и времени FORMATTED-DATETIME ISO 8601 функция даты и времени FORMATTED-TIME ISO 8601 функция даты и времени TEST-FORMATTED-DATETIME ISO 8601 функция даты и времени INTEGER-OF-FORMATTED-DATE дата в целое HIGHEST-ALGEBRAIC теперь реализована LOWEST-ALGEBRAIC теперь реализована LOCALE-COMPARE теперь реализована NUMVAL-F теперь реализована TEST-NUMVAL теперь реализована TEST-NUMVAL-C теперь реализована TEST-NUMVAL-F теперь реализована LENGTH-AN алиас для BYTE-LENGTH MODULE-CALLER-ID возвращает имя caller'а MODULE-DATE текущий модуль: дата компиляции MODULE-TIME текущий модуль: время компиляции MODULE-FORMATTED-DATE текущий модуль: отформатированные дата и время MODULE-ID текущий модуль: PROGRAM-ID MODULE-PATH текущий модуль: путь во время компиляции MODULE-SOURCE текущий модуль: имя во время компиляции MONETARY-DECIMAL-POINT основанная на локали фискальная десятичная точка MONETARY-THOUSANDS-SEPARATOR основанный на локали финансовый разделитель визуальной группировки
- Новые системные функции
C$CALLEDBY возвращает имя caller'а CBL_GC_FORK форкает текущий процесс (не на Windows) CBL_GC_WAITPID ожидает окончания процесса CBL_GC_GETOPT (CBL_OC_GETOPT) парсер опций командной строки для COBOL'а CBL_GC_PRINTABLE (C$PRINTABLE) проверяет печатаемый ли символ CBL_GC_HOSTED (CBL_OC_HOSTED) обеспечивает доступ к внешним переменным C, таким как stdin, errno CBL_GC_NANOSLEEP CBL_OC_NANOSLEEP CBL_GET_SCR_SIZE возвращает размер текущего терминала (если он есть) CBL_READ_KBD_CHAR берёт символ из терминала CBL_SET_CSR_POS устанавливает текущую позицию на терминале x'E4' очищает окно терминала x'E5' звенит в звонок
- множество новых/расширенных операторов из COBOL2002/2014 и расширений из разных диалектов COBOL’а
- больше SWITCH’ей: от SWITCH-01 до SWITCH-36 и их вариантов от многих диалектов COBOL’а
- добавлено больше числовых типов IEEE, FLOAT-DECIMAL-16, FLOAT-DECIMAL-34 и т. д.
- добавлены литеральные типы, двоичные числа и т. д.
- наибольшая часть спецификации COBOL 2014 реализована в Compiler Directive Facility
- опционально: более строгая проверка синтаксиса
- переработаны и расширеные сообщения компилятора и рантайма с доступными переводами (в настоящее время на испанский, португальский и голландский, частично — немецкий)
- ввод-вывод экрана: много расширенных ACCEPT DISPLAY и SCREEN SECTION изменений
- интерфейс прямого вызова для C:
CALL-CONVENTIONS для CALL'ов и PROCEDURE DIVISION SIZE параметров указанных для CALL ... BY VALUE RETURN NOTHING для вызова void функций RETURN ADDRESS OF VAR для вызова функций, которые возвращают указатель PROCEDURE DIVISION RETURNING OMITTED -> вызываема как void функция
- Гораздо, гораздо больше!
Новые опции cobc’а:
- Новые -std опции:
cobol2014 стандарт COBOL 2014 xopen стандарт X/Open COBOL mf-strict совместимость с Micro Focus COBOL - строго ibm-strict совместимость с IBM COBOL - строго ibm-strict совместимость с MVS/VM COBOL - строго acu совместимость с ACUCOBOL-GT acu-strict совместимость с ACUCOBOL-GT - строго bs2000 совместимость с BS2000 COBOL (снова вернулась) bs2000-strict совместимость с BS2000 COBOL - строго rm совместимость с RM-COBOL rm-strict совместимость с RM-COBOL - строго
В случае диалектов, которые не являются «строгими», GnuCOBOL включает весь имеющийся функционал, который прямо не конфликтует с выбранным диалектом, включая зарезервированные слова и специфические расширения GnuCOBOL’а. Скомпилированные с этими диалектами исходники могут компилироваться только GnuCOBOL’ом. Исходники могут требовать модификаций как следствие богатых возможностей и зарезервированных слов GnuCOBOL’а, в противном случае лишние слова могут быть удалены при помощи `-fno-reserved=word`.
COBOL-85, X/Open COBOL, COBOL 2002 и COBOL 2014 всегда «строгие».
- Новые опции листинга
-t листинг, -T широкий листинг, --tlines=строк, строк на каждую страницу листинга -Xref
- Все конфигурационные флаги компилятора могут быть заданы в командной строке для переопределения специфических параметров текущего -std, смотрите cobc --help
- Все предупреждения могут быть явно включены/выключены или даже помечены как ошибки, смотрите cobc --help
-Wunreachable сообщает о возможных недостижимых операторах - Опции для компилятора/линковщика языка C:
-K <вход>, компилировать точку входа как статическую (разрешить во время линковки) -A, добавить опции к фазе компиляции языка C -Q, добавить опции к фазе линковки языка C
- Разное
-i -info, отобразить сборку/среду -D определить символ для Compiler Directive Facility -j -job=аргументы, запустить задание после компиляции При указанном имени исходного файла '-' будет прочитан stdin. Больше подробностей в cobc --help
Новые опции cobcrun:
-i -info, отобразить сборку/среду
-r -runtime-env, отобразить конфигурацию рантайма
-c -config, прочитать конфиг рантайма из файла
-M -module, установить имя пути/модуля при поиске точки входа
make test скачивает тестировочную среду NIST при необходимости
теперь юзабельно при параллельной сборке (make -j4 test)
make checkall запустить как внутреннюю так и NIST тестировочные среды
- дефолтом тестировочной среды теперь является цветной вывод
- Добавлена поддержка сборочной среды Windows™ Visual Studio, тестовые опции для проверки обоими тестовыми средами сгенерированы
- удалён режим маинтейнера — если файлы надо пересобрать из за изменений они всегда пересобираются
- help2man, bison и flex проверяются при конфигурировании, если они нужны, но отсутствуют, об этом подскажет сообщение об ошибке
- у всех файлов, которые созданы рантаймом GnuCOBOL’а, теже самые права доступа
новое: COB_FILE_MODE изменён в 0666 - изменено имя unix’ового пакета из «gnu-cobol» в «gnucobol»
Скачать примеры исходников на COBOL’е можно командой
curl gopher://sdf.org/9/users/saahriktu/filez/notbyme/cobol_examples.tar.lzma > cobol_examples.tar.lzma
>>> Скачать