Emacs - Ошибка при вызове (запускается сервер)

Браузеры не могут справиться с таким количеством аргументов. См. Этот фрагмент, например:

alert.apply(window, new Array(1000000000));

. Это приводит к RangeError: Maximum call stack size exceeded, что аналогично вашей проблеме.

Чтобы решить эту проблему, сделайте:

var arr = [];
for(var i = 0; i < 1000000; i++){
    arr.push(Math.random());
}
81
задан Török Gábor 20 May 2009 в 09:30
поделиться

6 ответов

Я нашел это решение на EmacsWiki:

"Проблема заключается во владении каталогом ~/.emacs.d/server, когда вы также имеете права "Administrators" на вашей учетной записи. Создайте каталог ~/.emacs.d/server и установите владельцем этого каталога ваше имя пользователя, и проблема исчезнет. Поскольку у меня "голландская" версия Windows 7, я не знаю точно английских терминов, но вот процедура:

Нажмите R-mouse на ~/.emacs.d/server и выберите "Свойства" (последний пункт в меню). В "Свойствах" выберите вкладку "Безопасность" и нажмите кнопку "Дополнительно". Затем выберите вкладку "Владелец" и измените владельца с Administrators (<ваше имя ПК>\Administrators) на <ваше имя входа> (<ваше имя ПК>\<ваше имя входа>. Теперь код сервера будет воспринимать этот каталог как безопасный, потому что вы являетесь его владельцем.

Надеюсь, это поможет всем вам, во всяком случае, для меня это решило проблему.

W.K.R. Reutefleut"

Это определенно работает на Vista, с Emacs 23.2.1.

147
ответ дан 24 November 2019 в 09:27
поделиться

Это известная ошибка Emacs в Windows. Обходной путь - закомментировать эту строку в server-sure-safe-dir в server.el, вы захотите перекомпилировать байты после изменения:

;; FIXME: Busted on Windows. 
;; (eql (nth 2 attrs) (user-uid)) 
14
ответ дан 24 November 2019 в 09:27
поделиться

Чтобы избежать взлома каталога lisp, вы можете просто добавить следующее в свой .emacs:

(требуется 'сервер) (и (> = emacs-major-version 23) (defun server-sure-safe-dir (dir) "Noop" t))

10
ответ дан 24 November 2019 в 09:27
поделиться

Мне нравится отвечать на larsreed, но полный код готов к использованию:

(require 'server)
(when (and (>= emacs-major-version 23)
           (equal window-system 'w32))
  (defun server-ensure-safe-dir (dir) "Noop" t)) ; Suppress error "directory
                                                 ; ~/.emacs.d/server is unsafe"
                                                 ; on windows.
(server-start)

Я обсуждаю эту проблему в своей статье в блоге http://brain-break.blogspot.com/ 2009/08 / when-moving-from-gnu-emacs-22.html

Также обратите внимание, что в 2009-09-19 исправлена ​​ошибка № 4197 о server-sure-safe-dir, поэтому во входящем Emacs 23.2 этот обходной путь не

В недавно выпущенном Emacs 23.2 у меня есть такое предупреждение:

Предупреждение (сервер): Использование ~ / .emacs.d / server для хранения файлов аутентификации Emacs-сервера. Каталоги в файловых системах FAT32 НЕ защищены от взлома. Подробности см. В переменной server-auth-dir .

Чтобы исправить это, как, например, предупреждение, вы можете указать server-auth-dir на раздел NTFS (% APPDATA% обычно находится в Windows % SYSTEMDRIVE% и пользователь обычно форматирует системный диск как раздел NTFS):

(require 'server)
(when (and (eq window-system 'w32) (file-exists-p (getenv "APPDATA")))
  (setq server-auth-dir (concat (getenv "APPDATA") "/.emacs.d/server"))
  (make-directory server-auth-dir)  )
(server-start)
29
ответ дан 24 November 2019 в 09:27
поделиться

У меня не сработало в Windows 7.

Вместо этого я прочитал комментарии в server-sure-safe-dir и взял на себя ответственность за % APPDATA% Forlder и подпапки. Они принадлежали местным администраторам, а не мне.

Это помогло!

6
ответ дан 24 November 2019 в 09:27
поделиться

В случае, если это иногда случается с людьми, моя рабочая станция только что прошла «миграцию домена», которая добавила еще одно разрешение для каждого файла на коробке, после чего я начал получать эту ошибку. После того, как я добавил выражение для фиктивного вывода "server-sure-safe-dir", это перестало работать.

(Если вам интересно, миграция будет состоять из 2–3 шагов. Первый добавляет мне разрешение в целевом домене, затем я перемещаюсь в целевой домен, затем они могут (я не конечно) удалите разрешение для старого домена. Это большая компания и много пользователей, поэтому они делают это отдельными шагами.)

1
ответ дан 24 November 2019 в 09:27
поделиться
Другие вопросы по тегам:

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