Как мне настроить 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) "запускать от имени администратора".

Другие вопросы по тегам