Запуск GAP-скриптов из командной строки
Я хотел бы понять поведение GAP при запуске сценария из командной строки, например
$ gap mytest.gap
в отличие от вызова изнутри GAP
gap> Read("mytest.gap");
В частности, я пытался подавить автоматическое форматирование с помощью разрывов строк и отступов. Если файл mytest.gap
является следующим
SetPrintFormattingStatus( "*stdout*", false );
Print( Primes{[1..30]}, "\n" );
тогда я получаю ожидаемое поведение при вызове с Read()
а именно
[ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113 ]
тогда как, запуская его из командной строки, я все равно получаю
[ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71,
73, 79, 83, 89, 97, 101, 103, 107, 109, 113 ]
Может кто-нибудь дать объяснение этому поведению? Задокументировано ли где-нибудь документирование обработки сценариев в GAP из вызова командной строки? Я не смог найти его в руководстве, но на странице руководства написано usage: gap [OPTIONS] [FILES]
только с документацией о том, как обрабатываются варианты.
1 ответ
Я боюсь, что в настоящее время невозможно полностью отключить форматирование вывода Print
как ты пытался.
Однако вы можете обойти эту проблему, используя более новые потоковые API и PrintTo
, как это:
s:=OutputTextUser();
SetPrintFormattingStatus( s, false );
PrintTo( s, Primes{[1..30]}, "\n" );
Я зарегистрировал это как ошибку в системе отслеживания проблем GAP, и, возможно, мы сможем исправить это в следующем выпуске (или, возможно, кто-то объяснит, почему это "не ошибка, а функция";-).