2014-11-03 1 views
1

Когда я пытаюсь (run-racket) или (run-geiser) на моем Windows, 8.1 компьютере под управлением GNU Emacs 24.3 и Ракетка v6.1 я получаю следующий результат:Ракетка и Гейзер на Windows, странная ошибка пути

Welcome to Racket v6.1. 
default-load-handler: cannot open input file 
    path: f:/c/Users/James/AppData/Roaming/.emacs.d/el-get/geiser/scheme/racket/geiser/startup.rkt 
    system error: The system cannot find the path specified.; errno=3 
> 

Который является решительно странным, но после просмотра backtrace у меня все еще нет хорошей идеи, что происходит.

Действительно, так как Racket запускается нормально, кажется, что какая-то странность в том, как пути передаются от Geiser к Racket. Единственный раз, когда я вижу такой странный путь, является то, что MinGW bash задействован, и что /c/ заставляет меня думать, что это возможно. Фактически, этот путь был бы совершенно прав, если бы не ведущий f:.

Я немного похудел на то, как подойти к этой проблеме, поскольку я не знаю, как Geiser общается с Racket (я только начал пытаться использовать его сегодня), но мне бы очень хотелось получить он работает, поскольку я полностью инвестировал в Emacs в качестве моего редактора.

Итак, мой вопрос таков: какие возможные проблемы я должен исследовать, учитывая приведенные выше в качестве подсказок?

+0

Если бы я должен был догадаться, похоже, что может возникнуть проблема с последней строкой 'geiser-racket - parameters' в geiser-racket.el. Локальная переменная 'rackdir' правильная, потому что запускается Racket, но' (expand-file-name "geiser/startup.rkt" rackdir) 'не работает. «-f» в начале строки намекает на таинственную «f:» в начале ошибочного пути. Учитывая, что путь 'c/users/james/appdata ...' выглядит как установка соглашения Windows. Ничего против Windows, но для меня я предпочитаю * nix, как emacs, иерархию файлов в Windows из-за допущений, которые делают пакеты Emacs. –

ответ

0

Через некоторое рытье через источник Гейзер я нашел в geiser/elisp/geiser-load.el строку:

(setq geiser-scheme-dir "/c/Users/James/AppData/Roaming/.emacs.d/el-get/geiser/scheme") 

Который был, вероятно, создан неправильно с помощью MinGW сделать.

Я изменил его:

(setq geiser-scheme-dir "c:/Users/James/AppData/Roaming/.emacs.d/el-get/geiser/scheme") 

После чего все работает отлично.

Проблема заключалась в том, что Emacs' expand-file-name предположить, что /c/... путь был относительный путь из-за начального косую черту, и предположил, что она должна предварять букву текущего диска, чтобы сделать это правильный путь для Windows Emacs.

 Смежные вопросы

  • Нет связанных вопросов^_^