clojure-emacs / cider

The Clojure Interactive Development Environment that Rocks for Emacs
https://cider.mx
GNU General Public License v3.0
3.54k stars 646 forks source link

still see error "progn: Wrong type argument: number-or-marker-p, nil" #1760

Closed chihyangscience closed 8 years ago

chihyangscience commented 8 years ago

Expected behavior

Actual behavior

when I exectute "C-c C-k", there is error:

progn: Wrong type argument: number-or-marker-p, nil

Steps to reproduce the problem

when I exectute "C-c C-k", there is error:

progn: Wrong type argument: number-or-marker-p, nil

Environment & Version information

Emacs: GNU Emacs 24.5.1 (x86_64-apple-darwin13.4.0, NS apple-appkit-1265.21) of 2015-04-10 on builder10-9.porkrind.org

CIDER version information

cider: CIDER 0.13.0snapshot (package: 20160521.2012)

Starting nREPL server via /Users/lein update-in :dependencies conj [org.clojure/tools.nrepl\ \"0.2.12\"] -- update-in :plugins conj [cider/cider-nrepl\ \"0.13.0-SNAPSHOT\"] -- repl :headless... nREPL server started on 54045

Lein/Boot version

Leiningen 2.5.2 on Java 1.8.0_51 Java HotSpot(TM) 64-Bit Server VM

Emacs version

Emacs: GNU Emacs 24.5.1 (x86_64-apple-darwin13.4.0, NS apple-appkit-1265.21) of 2015-04-10 on builder10-9.porkrind.org

Operating system

OSX 10.10.5

Malabarba commented 8 years ago
  1. Do M-x toggle-debug-on-error.
  2. Reproduce the problem

You'll get a backtrace you can paste here.

chihyangscience commented 8 years ago
Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  clojure-forward-logical-sexp()
  (progn (clojure-forward-logical-sexp) (and (<= (point) end) (not (eobp))))
  (while (progn (clojure-forward-logical-sexp) (and (<= (point) end) (not (eobp)))) (cider--make-fringe-overlay (point)))
  (condition-case nil (while (progn (clojure-forward-logical-sexp) (and (<= (point) end) (not (eobp)))) (cider--make-fringe-overlay (point))) (scan-error nil))
  (save-excursion (goto-char beg) (condition-case nil (while (progn (clojure-forward-logical-sexp) (and (<= (point) end) (not (eobp)))) (cider--make-fringe-overlay (point))) (scan-error nil)))
  (save-current-buffer (set-buffer (if (markerp end) (marker-buffer end) (current-buffer))) (save-excursion (goto-char beg) (condition-case nil (while (progn (clojure-forward-logical-sexp) (and (<= (point) end) (not (eobp)))) (cider--make-fringe-overlay (point))) (scan-error nil))))
  cider--make-fringe-overlays-for-region(1 8146)
  (save-current-buffer (set-buffer buffer) (cider--make-fringe-overlays-for-region (point-min) (point-max)) (run-hooks (quote cider-file-loaded-hook)))
  (progn (save-current-buffer (set-buffer buffer) (cider--make-fringe-overlays-for-region (point-min) (point-max)) (run-hooks (quote cider-file-loaded-hook))))
  (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer) (cider--make-fringe-overlays-for-region (point-min) (point-max)) (run-hooks (quote cider-file-loaded-hook)))))
  (closure ((eval-buffer . #<buffer mobile.clj>) (buffer . #<buffer mobile.clj>) t) (buffer value) (cider--display-interactive-eval-result value) (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer) (cider--make-fringe-overlays-for-region (point-min) (point-max)) (run-hooks (quote cider-file-loaded-hook))))))(#<buffer mobile.clj> "#'everbridge.mobile/get-message-id")
  funcall((closure ((eval-buffer . #<buffer mobile.clj>) (buffer . #<buffer mobile.clj>) t) (buffer value) (cider--display-interactive-eval-result value) (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer) (cider--make-fringe-overlays-for-region (point-min) (point-max)) (run-hooks (quote cider-file-loaded-hook)))))) #<buffer mobile.clj> "#'everbridge.mobile/get-message-id")
  (progn (funcall value-handler buffer value))
  (if value-handler (progn (funcall value-handler buffer value)))
  (cond (value (if value-handler (progn (funcall value-handler buffer value)))) (out (if stdout-handler (progn (funcall stdout-handler buffer out)))) (pprint-out (cond (pprint-out-handler (funcall pprint-out-handler buffer pprint-out)) (stdout-handler (funcall stdout-handler buffer pprint-out)))) (err (if stderr-handler (progn (funcall stderr-handler buffer err)))) (status (if (member "interrupted" status) (progn (message "Evaluation interrupted."))) (if (member "eval-error" status) (progn (funcall (or eval-error-handler nrepl-err-handler)))) (if (member "namespace-not-found" status) (progn (message "Namespace not found."))) (if (member "need-input" status) (progn (cider-need-input buffer))) (if (member "done" status) (progn (nrepl--mark-id-completed id) (if done-handler (progn (funcall done-handler buffer)))))))
  (let ((value (nrepl-dict-get response "value")) (ns (nrepl-dict-get response "ns")) (out (nrepl-dict-get response "out")) (err (nrepl-dict-get response "err")) (status (nrepl-dict-get response "status")) (id (nrepl-dict-get response "id")) (pprint-out (nrepl-dict-get response "pprint-out"))) (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer) (if (and ns (not (derived-mode-p ...))) (progn (cider-set-buffer-ns ns)))))) (cond (value (if value-handler (progn (funcall value-handler buffer value)))) (out (if stdout-handler (progn (funcall stdout-handler buffer out)))) (pprint-out (cond (pprint-out-handler (funcall pprint-out-handler buffer pprint-out)) (stdout-handler (funcall stdout-handler buffer pprint-out)))) (err (if stderr-handler (progn (funcall stderr-handler buffer err)))) (status (if (member "interrupted" status) (progn (message "Evaluation interrupted."))) (if (member "eval-error" status) (progn (funcall (or eval-error-handler nrepl-err-handler)))) (if (member "namespace-not-found" status) (progn (message "Namespace not found."))) (if (member "need-input" status) (progn (cider-need-input buffer))) (if (member "done" status) (progn (nrepl--mark-id-completed id) (if done-handler (progn (funcall done-handler buffer))))))))
  (closure ((pprint-out-handler) (eval-error-handler closure ((eval-buffer . #<buffer mobile.clj>) (buffer . #<buffer mobile.clj>) t) nil (funcall nrepl-err-handler)) (done-handler) (stderr-handler closure ((eval-buffer . #<buffer mobile.clj>) (buffer . #<buffer mobile.clj>) t) (_buffer err) (cider-emit-interactive-eval-err-output err) (cider-handle-compilation-errors err eval-buffer)) (stdout-handler closure ((eval-buffer . #<buffer mobile.clj>) (buffer . #<buffer mobile.clj>) t) (_buffer value) (cider-emit-interactive-eval-output value)) (value-handler closure ((eval-buffer . #<buffer mobile.clj>) (buffer . #<buffer mobile.clj>) t) (buffer value) (cider--display-interactive-eval-result value) (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer) (cider--make-fringe-overlays-for-region (point-min) (point-max)) (run-hooks (quote cider-file-loaded-hook)))))) (buffer . #<buffer mobile.clj>) cider-buffer-ns cl-struct-nrepl-response-queue-tags t) (response) (let ((value (nrepl-dict-get response "value")) (ns (nrepl-dict-get response "ns")) (out (nrepl-dict-get response "out")) (err (nrepl-dict-get response "err")) (status (nrepl-dict-get response "status")) (id (nrepl-dict-get response "id")) (pprint-out (nrepl-dict-get response "pprint-out"))) (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer) (if (and ns (not ...)) (progn (cider-set-buffer-ns ns)))))) (cond (value (if value-handler (progn (funcall value-handler buffer value)))) (out (if stdout-handler (progn (funcall stdout-handler buffer out)))) (pprint-out (cond (pprint-out-handler (funcall pprint-out-handler buffer pprint-out)) (stdout-handler (funcall stdout-handler buffer pprint-out)))) (err (if stderr-handler (progn (funcall stderr-handler buffer err)))) (status (if (member "interrupted" status) (progn (message "Evaluation interrupted."))) (if (member "eval-error" status) (progn (funcall (or eval-error-handler nrepl-err-handler)))) (if (member "namespace-not-found" status) (progn (message "Namespace not found."))) (if (member "need-input" status) (progn (cider-need-input buffer))) (if (member "done" status) (progn (nrepl--mark-id-completed id) (if done-handler (progn ...))))))))((dict "id" "35" "session" "672c11d1-3586-42bb-9d86-0ea53485a2b0" "value" "#'everbridge.mobile/get-message-id"))
  funcall((closure ((pprint-out-handler) (eval-error-handler closure ((eval-buffer . #<buffer mobile.clj>) (buffer . #<buffer mobile.clj>) t) nil (funcall nrepl-err-handler)) (done-handler) (stderr-handler closure ((eval-buffer . #<buffer mobile.clj>) (buffer . #<buffer mobile.clj>) t) (_buffer err) (cider-emit-interactive-eval-err-output err) (cider-handle-compilation-errors err eval-buffer)) (stdout-handler closure ((eval-buffer . #<buffer mobile.clj>) (buffer . #<buffer mobile.clj>) t) (_buffer value) (cider-emit-interactive-eval-output value)) (value-handler closure ((eval-buffer . #<buffer mobile.clj>) (buffer . #<buffer mobile.clj>) t) (buffer value) (cider--display-interactive-eval-result value) (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer) (cider--make-fringe-overlays-for-region (point-min) (point-max)) (run-hooks (quote cider-file-loaded-hook)))))) (buffer . #<buffer mobile.clj>) cider-buffer-ns cl-struct-nrepl-response-queue-tags t) (response) (let ((value (nrepl-dict-get response "value")) (ns (nrepl-dict-get response "ns")) (out (nrepl-dict-get response "out")) (err (nrepl-dict-get response "err")) (status (nrepl-dict-get response "status")) (id (nrepl-dict-get response "id")) (pprint-out (nrepl-dict-get response "pprint-out"))) (if (buffer-live-p buffer) (progn (save-current-buffer (set-buffer buffer) (if (and ns (not ...)) (progn (cider-set-buffer-ns ns)))))) (cond (value (if value-handler (progn (funcall value-handler buffer value)))) (out (if stdout-handler (progn (funcall stdout-handler buffer out)))) (pprint-out (cond (pprint-out-handler (funcall pprint-out-handler buffer pprint-out)) (stdout-handler (funcall stdout-handler buffer pprint-out)))) (err (if stderr-handler (progn (funcall stderr-handler buffer err)))) (status (if (member "interrupted" status) (progn (message "Evaluation interrupted."))) (if (member "eval-error" status) (progn (funcall (or eval-error-handler nrepl-err-handler)))) (if (member "namespace-not-found" status) (progn (message "Namespace not found."))) (if (member "need-input" status) (progn (cider-need-input buffer))) (if (member "done" status) (progn (nrepl--mark-id-completed id) (if done-handler (progn ...)))))))) (dict "id" "35" "session" "672c11d1-3586-42bb-9d86-0ea53485a2b0" "value" "#'everbridge.mobile/get-message-id"))
  (if callback (funcall callback response) (error "[nREPL] No response handler with id %s found" id))
  (let ((callback (or (gethash id nrepl-pending-requests) (gethash id nrepl-completed-requests)))) (if callback (funcall callback response) (error "[nREPL] No response handler with id %s found" id)))
  (let ((id (nrepl-dict-get response "id"))) (nrepl-log-message response (quote response)) (let ((callback (or (gethash id nrepl-pending-requests) (gethash id nrepl-completed-requests)))) (if callback (funcall callback response) (error "[nREPL] No response handler with id %s found" id))))
  nrepl--dispatch-response((dict "id" "35" "session" "672c11d1-3586-42bb-9d86-0ea53485a2b0" "value" "#'everbridge.mobile/get-message-id"))
  (let ((response (queue-dequeue response-q))) (condition-case err (run-hook-with-args (quote nrepl-response-handler-functions) response) ((debug error) (message "Error in one of the `nrepl-response-handler-functions': %s" err) nil)) (nrepl--dispatch-response response))
  (save-current-buffer (set-buffer (process-buffer proc)) (let ((response (queue-dequeue response-q))) (condition-case err (run-hook-with-args (quote nrepl-response-handler-functions) response) ((debug error) (message "Error in one of the `nrepl-response-handler-functions': %s" err) nil)) (nrepl--dispatch-response response)))
  (while (progn (or (and (memq (aref response-q 0) cl-struct-queue-tags)) (error "%s accessing a non-%s" (quote queue-head) (quote queue))) (aref response-q 1)) (save-current-buffer (set-buffer (process-buffer proc)) (let ((response (queue-dequeue response-q))) (condition-case err (run-hook-with-args (quote nrepl-response-handler-functions) response) ((debug error) (message "Error in one of the `nrepl-response-handler-functions': %s" err) nil)) (nrepl--dispatch-response response))))
  (let ((response-q (process-get proc :response-q))) (nrepl-bdecode string-q response-q) (while (progn (or (and (memq (aref response-q 0) cl-struct-queue-tags)) (error "%s accessing a non-%s" (quote queue-head) (quote queue))) (aref response-q 1)) (save-current-buffer (set-buffer (process-buffer proc)) (let ((response (queue-dequeue response-q))) (condition-case err (run-hook-with-args (quote nrepl-response-handler-functions) response) ((debug error) (message "Error in one of the `nrepl-response-handler-functions': %s" err) nil)) (nrepl--dispatch-response response)))))
  (progn (let ((response-q (process-get proc :response-q))) (nrepl-bdecode string-q response-q) (while (progn (or (and (memq (aref response-q 0) cl-struct-queue-tags)) (error "%s accessing a non-%s" (quote queue-head) (quote queue))) (aref response-q 1)) (save-current-buffer (set-buffer (process-buffer proc)) (let ((response (queue-dequeue response-q))) (condition-case err (run-hook-with-args (quote nrepl-response-handler-functions) response) ((debug error) (message "Error in one of the `nrepl-response-handler-functions': %s" err) nil)) (nrepl--dispatch-response response))))))
  (if (eq 101 (aref string (1- (length string)))) (progn (let ((response-q (process-get proc :response-q))) (nrepl-bdecode string-q response-q) (while (progn (or (and (memq ... cl-struct-queue-tags)) (error "%s accessing a non-%s" (quote queue-head) (quote queue))) (aref response-q 1)) (save-current-buffer (set-buffer (process-buffer proc)) (let ((response ...)) (condition-case err (run-hook-with-args ... response) (... ... nil)) (nrepl--dispatch-response response)))))))
  (let ((string-q (process-get proc :string-q))) (queue-enqueue string-q string) (if (eq 101 (aref string (1- (length string)))) (progn (let ((response-q (process-get proc :response-q))) (nrepl-bdecode string-q response-q) (while (progn (or (and ...) (error "%s accessing a non-%s" ... ...)) (aref response-q 1)) (save-current-buffer (set-buffer (process-buffer proc)) (let (...) (condition-case err ... ...) (nrepl--dispatch-response response))))))))
  nrepl-client-filter(#<process nrepl-connection> "d2:id2:357:session36:672c11d1-3586-42bb-9d86-0ea53485a2b05:value34:#'everbridge.mobile/get-message-ided2:id2:357:session36:672c11d1-3586-42bb-9d86-0ea53485a2b06:statusl4:doneee")
  recursive-edit()
  debug()
  #<subr call-interactively>(debug record nil)
  ad-Advice-call-interactively(#<subr call-interactively> debug record nil)
  apply(ad-Advice-call-interactively #<subr call-interactively> (debug record nil))
  call-interactively(debug record nil)
  command-execute(debug record)
  execute-extended-command(nil "debug")
  smex-read-and-run(("cider-jack-in" "cider-version" "package-install" "package-refresh-contents" "package-list-packages" "electric-pair-mode" "comment-region" "uncomment-region" "paredit-mode" "customize-variable" "replace-string" "jdee-find-class-source" "eval-buffer" "eclim-project-create" "proced" "customize" "jdee-find" "company-mode" "tooltip-mode" "jdee-complete" "list-processes" "diff" "version" "jdee-run" "yaml-mode" "stop-eclimd" "start-eclimd" "cider-restart" "eclim-complete" "jdee-import-all" "eclim-file-locate" "delete-blank-lines" "company-emacs-eclim" "eclim-java-hierarchy" "electric-layout-mode" "eclim-manage-projects" "jdee-import-expand-imports" "cider-pprint-eval-last-sexp" "comint-delchar-or-maybe-eof" "cider-repl-clear-help-banner" "cd" "5x5" "arp" "dbx" "dig" "erc" "ert" "eww" "ftp" "gdb" ...))
  smex()
  #<subr call-interactively>(smex nil nil)
  ad-Advice-call-interactively(#<subr call-interactively> smex nil nil)
  apply(ad-Advice-call-interactively #<subr call-interactively> (smex nil nil))
  call-interactively(smex nil nil)
  command-execute(smex)
Malabarba commented 8 years ago

Could you paste here the contents of the file you're trying to load?

chihyangscience commented 8 years ago
  1. when I open clojure file, there is error: Debugger entered--Lisp error: (void-variable cider-mode) (not cider-mode) redisplay_internal\ (C\ function)()
  2. the emacs init.el: (defvar current-user (getenv (if (equal system-type 'windows-nt) "USERNAME" "USER")))

(message "Prelude is powering up... Be patient, Master %s!" current-user)

(when (version< emacs-version "24.1") (error "Prelude requires at least GNU Emacs 24.1, but you're running %s" emacs-version))

;; Always load newest byte code (setq load-prefer-newer t)

(defvar prelude-dir (file-name-directory load-file-name) "The root dir of the Emacs Prelude distribution.") (defvar prelude-core-dir (expand-file-name "core" prelude-dir) "The home of Prelude's core functionality.") (defvar prelude-modules-dir (expand-file-name "modules" prelude-dir) "This directory houses all of the built-in Prelude modules.") (defvar prelude-personal-dir (expand-file-name "personal" prelude-dir) "This directory is for your personal configuration.

Users of Emacs Prelude are encouraged to keep their personal configuration changes in this directory. All Emacs Lisp files there are loaded automatically by Prelude.") (defvar prelude-personal-preload-dir (expand-file-name "preload" prelude-personal-dir) "This directory is for your personal configuration, that you want loaded before Prelude.") (defvar prelude-vendor-dir (expand-file-name "vendor" prelude-dir) "This directory houses packages that are not yet available in ELPA (or MELPA).") (defvar prelude-savefile-dir (expand-file-name "savefile" prelude-dir) "This folder stores all the automatically generated save/history-files.") (defvar prelude-modules-file (expand-file-name "prelude-modules.el" prelude-dir) "This files contains a list of modules that will be loaded by Prelude.")

(unless (file-exists-p prelude-savefile-dir) (make-directory prelude-savefile-dir))

(defun prelude-add-subfolders-to-load-path (parent-dir) "Add all level PARENT-DIR subdirs to the `load-path'." (dolist (f (directory-files parent-dir)) (let ((name (expand-file-name f parent-dir))) (when (and (file-directory-p name) (not (string-prefix-p "." f))) (add-to-list 'load-path name) (prelude-add-subfolders-to-load-path name)))))

;; add Prelude's directories to Emacs's `load-path' (add-to-list 'load-path prelude-core-dir) (add-to-list 'load-path prelude-modules-dir) (add-to-list 'load-path prelude-vendor-dir) (prelude-add-subfolders-to-load-path prelude-vendor-dir)

;; reduce the frequency of garbage collection by making it happen on ;; each 50MB of allocated data (the default is on every 0.76MB) (setq gc-cons-threshold 50000000)

;; warn when opening files bigger than 100MB (setq large-file-warning-threshold 100000000)

;; preload the personal settings from `prelude-personal-preload-dir' (when (file-exists-p prelude-personal-preload-dir) (message "Loading personal configuration files in %s..." prelude-personal-preload-dir) (mapc 'load (directory-files prelude-personal-preload-dir 't "^[^#].*el$")))

(message "Loading Prelude's core...")

;; the core stuff (require 'prelude-packages) (require 'prelude-custom) ;; Needs to be loaded before core, editor and ui (require 'prelude-ui) (require 'prelude-core) (require 'prelude-mode) (require 'prelude-editor) (require 'prelude-global-keybindings)

;; OSX specific settings (when (eq system-type 'darwin) (require 'prelude-osx))

(message "Loading Prelude's modules...")

;; the modules (if (file-exists-p prelude-modules-file) (load prelude-modules-file) (message "Missing modules file %s" prelude-modules-file) (message "You can get started by copying the bundled example file"))

;; config changes made through the customize UI will be store here (setq custom-file (expand-file-name "custom.el" prelude-personal-dir))

;; load the personal settings (this includes `custom-file') (when (file-exists-p prelude-personal-dir) (message "Loading personal configuration files in %s..." prelude-personal-dir) (mapc 'load (directory-files prelude-personal-dir 't "^[^#].*el$")))

(message "Prelude is ready to do thy bidding, Master %s!" current-user)

(prelude-eval-after-init ;; greet the use with some useful tip (run-at-time 5 nil 'prelude-tip-of-the-day))

(setq help-at-pt-display-when-idle t) (setq help-at-pt-timer-delay 0.1) (help-at-pt-set-timer)

(require 'auto-complete-config) (ac-config-default)

;;; init.el ends here (setq mac-option-key-is-meta nil mac-command-key-is-meta t mac-command-modifier 'meta mac-option-modifier 'none)

;;(add-hook 'clojure-mode-hook #'paredit-mode)

;; (add-to-list 'load-path "path/to/which-key.el") ;; (require 'which-key) ;; (which-key-mode)

(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)

(setq debug-on-error t)

Malabarba commented 8 years ago

Sorry. I was referring to the contents of the Clojure file you're trying to C-c C-k.

chihyangscience commented 8 years ago

all my clojure files having this issue, e.g.

(ns everbridge.config
  (:require [clojure.edn :as edn]))

(def conf (atom {}))
(def env (atom :dev1))

(defn get-env []
  (keyword @env))

(defmacro get-config [keys]
  `(get-in @conf ~keys))

Loading /Users/work/qa-library/src/everbridge/config.clj... => #'everbridge.config/get-config Wrong type argument: number-or-marker-p, nil user-error: Minibuffer window is not active

Malabarba commented 8 years ago

It looks like your version of cloijure-mode is outdated for some reason, and that's why you're getting the error. Try updating it.

chihyangscience commented 8 years ago

cool, fixed, thanks

Malabarba commented 8 years ago

You may want to figure out why you had an outdated version given that cider explicitly depends on a recent one. ;-)