Как мне настроить gp, чтобы разрешить возобновление кода после того, как я прервал работу с Ctrl-C?
У меня есть ПК с Linux (Ubuntu), где я установил PARI/GP из командной строки (при вводе gp
в оболочке он говорит, что программы нет, но дает вам команду, которую вы можете использовать, чтобы установить все это), а затем у меня есть машина Windows, на которой я установил PARI/GP через самоустановочный дистрибутив ( .exe
) с домашней страницы PARI/GP.
Я заметил разницу в поведении, когда я прерываю вызов функции Ctrl+C
(или же Ctrl+Break
). В версии для Linux это выглядит так:
*** user interrupt after 358 ms
*** Break loop: <Return> to continue; 'break' to go back to GP prompt
и это позволяет мне проверять локальные переменные (чьи области были ограничены в пределах функции, которая была прервана), такие как переменные цикла. Тем не менее, на моем компьютере с Windows он полностью покидает функцию и выходит в обычном режиме, и я никак не могу понять, каково было состояние всего перед тем, как я нажал Ctrl+C
,
Для надуманного примера, с кодом вроде:
for(i=1,10^30,if(ispseudoprime(i^i+1),print(i)))
в системе Ubuntu я могу сломать и проверить текущий размер i
а затем решите либо остановиться, либо продолжить, пока на другой машине это невозможно.
Почему между этими двумя установками есть такая разница, и я могу настроить это самостоятельно?
1 ответ
(отвечая на мой вопрос)
Это контролируется так называемым значением по умолчанию с именем breakloop
, Вы можете увидеть его значение (которое должно быть либо 0
или же 1
) изнутри ГП с:
default(breakloop)
и вы можете изменить его на новое значение, например:
default(breakloop, 1)
В вашей системе Linux у вас нет файла настроек (gprc
файл), поэтому по умолчанию, который называется breakloop
принимает значение по умолчанию, которое 1
в вашем использовании GP.
В вашей системе MS Windows, с другой стороны, установка идет с файлом настроек C:\Program Files (x86)\Pari-2-7-2\gprc.txt
в которой существует строка:
breakloop = 0
Вы можете полностью удалить эту строку или закомментировать ее:
\\breakloop = 0
или вы можете изменить это 0
в 1
,
Обратите внимание, что при редактировании gprc.txt
вам понадобится текстовый редактор, который (1) может читать текстовые файлы, где окончания строк просто LF
(вместо обычного соглашения Windows CR LF
) и (2) "запускать от имени администратора".