;ELC ;;; Compiled ;;; in Emacs version 28.0.50 ;;; with all optimizations. (byte-code "\301\302!\210\303\304\"\203\305\306!\210\301\307\310\311#\204\301\307\312\"\210\301\313!\210\301\314!\210\301\315!\210\301\316!\210\301\317!\210\301\320!\210\301\321!\210\301\322!\210\301\323\324\"\210\301\325\326\"\210\301\327\330\"\210\301\331\332\"\210\301\333!\207" [emacs-version require cl-lib version< "24.3" error "Sly requires at least Emacs 24.3" hyperspec nil t "lib/hyperspec" thingatpt comint pp easymenu arc-mode etags apropos bytecomp sly-common "lib/sly-common" sly-messages "lib/sly-messages" sly-buttons "lib/sly-buttons" sly-completion "lib/sly-completion" gv] 4) #@192 Directory containing the SLY package. This is used to load the supporting Common Lisp library, Slynk. The default value is automatically computed from the location of the Emacs Lisp package. (defvar sly-path nil (#$ . 688)) (byte-code "\203\n\302!\202 \303\304!\302\207" [load-file-name sly-path file-name-directory error "[sly] fatal: impossible to determine sly-path"] 2) #@49 Path where the bundled Slynk server is located. (defalias 'sly-slynk-path #[0 "\301\302\"\207" [sly-path expand-file-name "slynk/"] 3 (#$ . 1073)]) (byte-code "\300\301\302\303#\210\304\211\203(\211@\301N\203!\302N\204!\305\302\301N#\210A\266\202\202\210\306\301\302\307#\207" [defvaralias sly-setup-contribs sly-contribs nil (saved-value saved-variable-comment) put make-obsolete-variable "2.3.2"] 7) #@46 A list of contrib packages to load with SLY. (defvar sly-contribs '(sly-fancy) (#$ . 1492)) #@890 Have SLY load and use extension modules CONTRIBS. CONTRIBS defaults to `sly-contribs' and is a list (LIB1 LIB2...) symbols of `provide'd and `require'd Elisp libraries. If CONTRIBS is nil, `sly-contribs' is *not* affected, otherwise it is set to CONTRIBS. However, after `require'ing LIB1, LIB2 ..., this command invokes additional initialization steps associated with each element LIB1, LIB2, which can theoretically be reverted by `sly-disable-contrib.' Notably, one of the extra initialization steps is affecting the value of `sly-required-modules' (which see) thus affecting the libraries loaded in the Slynk servers. If SLY is currently connected to a Slynk and a contrib in CONTRIBS has never been loaded, that Slynk is told to load the associated Slynk extension module. To ensure that a particular contrib is loaded, use `sly-enable-contrib' instead. (fn &optional CONTRIBS) (defalias 'sly-setup #[256 "\211\203\211\301 \207" [sly-contribs sly--setup-contribs] 2 (#$ . 1591) nil]) (defvaralias 'sly-required-modules 'sly-contrib--required-slynk-modules) #@265 Alist of (MODULE . (WHERE CONTRIB)) for slynk-provided features. MODULE is a symbol naming a specific Slynk feature, WHERE is the full pathname to the directory where the file(s) providing the feature are found and CONTRIB is a symbol as found in `sly-contribs.' (defvar sly-contrib--required-slynk-modules nil (#$ . 2669)) #@84 Run BODY catching and resignalling any errors for CONTRIB (fn CONTRIB &body BODY) (defalias 'sly--contrib-safe '(macro . #[385 "\300\301\302B\303\304\305\306BBBDF\207" [condition-case-unless-debug e progn error sly-error "There's an error in %s: %s" (e)] 10 (#$ . 3000)])) (byte-code "\300\301\302\303#\300\207" [function-put sly--contrib-safe lisp-indent-function 1] 4) #@31 Load and initialize contribs. (defalias 'sly--setup-contribs #[0 "\303\304\305\306\"\"\210\307\310 \"\210\311\312\313\314\311\315 \"\"\"\316\317\320\"\321 \"\211\322:\203K@\262\32315\324!0\202<\325\326#\262\203D\327! \210A\262\202!\266\322:\203y@\262\3301c\324!0\202j\325\326#\262\204r\331! \210A\262\202O\266\205\242\332 \322:\203\237@\262r\211q\210\n\203\227\302\333!\210)A\262\202\202\266\322\207" [sly-path sly-contribs sly-editing-mode add-to-list load-path expand-file-name "contrib" mapc #[257 "\3001 \301!0\207\302\303#\207" [(debug error) require sly-error #1="There's an error in %s: %s"] 6 "\n\n(fn C)"] mapcar sly-contrib--find-contrib cl-reduce append sly-contrib--all-dependencies cl-remove-if make-closure #[257 "\211\300>\207" [V0] 3 "\n\n(fn CONTRIB)"] sly-contrib--all-contribs nil (debug error) sly-contrib--enabled-p sly-error #1# sly-contrib--disable (debug error) sly-contrib--enable buffer-list 1] 9 (#$ . 3381)]) #@137 Read SLY's version of its own sly.el file. If FILE is passed use that instead to discover the version. (fn &optional INTERACTIVE FILE) (defalias 'sly-version #[512 "\301\302\303\"r\211q\210\304\305\"\216\306\206\307\310\"\311\312\313$\210\314\315\311\303#\205&\316\317!*\262\2032\320\321\"\207\207" [sly-path generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents expand-file-name "sly.el" nil 0 200 search-forward-regexp ";;[[:space:]]*Version:[[:space:]]*\\(.*\\)$" match-string 1 sly-message "SLY %s"] 8 (#$ . 4375) "p"]) (defvar sly-protocol-version nil) (byte-code "\301\302\303\304\305\306\307\310\311&\210\302\312\304\305\306\307\310\303&\210\313\314\315\316\317DD\320\321\322\310\312&\210\313\323\315\316\324DD\325\321\322\310\312&\210\302\326\304\327\306\307\310\303&\210\313\330\315\316\331DD\332\321\322\310\303&\210\313\333\315\316\334DD\335\321\336\310\326&\210\337\340\341\304#\210\342\211\203\207\211@\340N\203\200\341N\204\200\343\341\340N#\210A\266\202\202f\210\344\340\341\345#\210\313\341\315\316\346DD\347\321\350\310\326&\210\313\351\315\316\352DD\353\321\354\310\326&\210\313\355\315\316\356DD\357\321\360\310\326&\210\313\361\315\316\362DD\363\321\350\310\326&\210\313\364\315\316\365DD\366\321\367\310\326&\207" [sly-protocol-version "1.0.43" custom-declare-group sly nil "Interaction with the Superior Lisp Environment." :prefix "sly-" :group applications sly-ui custom-declare-variable sly-truncate-lines funcall function #[0 "\300\207" [t] 1] "Set `truncate-lines' in popup buffers.\nThis applies to buffers that present lines as rows of data, such as\ndebugger backtraces and apropos listings." :type boolean sly-kill-without-query-p #[0 "\300\207" [nil] 1] "If non-nil, kill SLY processes without query when quitting Emacs.\nThis applies to the *inferior-lisp* buffer and the network connections." sly-lisp "Lisp server configuration." sly-ignore-protocol-mismatches #[0 "\300\207" [nil] 1] "If non-nil, ignore protocol mismatches between SLY and Slynk.\nProgramatically, this variable can be let-bound around calls to\n`sly' or `sly-connect'." sly-init-function #[0 "\300\207" [sly-init-using-asdf] 1] "Function bootstrapping slynk on the remote.\n\nValue is a function of two arguments: SLYNK-PORTFILE and an\ningored argument for backward compatibility. Function should\nreturn a string issuing very first commands issued by Sly to\nthe remote-connection process. Some time after this there should\nbe a port number ready in SLYNK-PORTFILE." (choice (const :tag "Use ASDF" sly-init-using-asdf) (const :tag "Use legacy slynk-loader.lisp" sly-init-using-slynk-loader)) defvaralias sly-backend sly-slynk-loader-backend (saved-value saved-variable-comment) put make-obsolete-variable "3.0" #[0 "\300\207" [#1="slynk-loader.lisp"] 1 #1#] "The name of the slynk-loader that loads the Slynk server.\nOnly applicable if `sly-init-function' is set to\n`sly-init-using-slynk-loader'. This name is interpreted\nrelative to the directory containing sly.el, but could also be\nset to an absolute filename." string sly-connected-hook #[0 "\300\207" [nil] 1] "List of functions to call when SLY connects to Lisp." hook sly-enable-evaluate-in-emacs #[0 "\300\207" [nil] 1] "*If non-nil, the inferior Lisp can evaluate arbitrary forms in Emacs.\nThe default is nil, as this feature can be a security risk." (boolean) sly-lisp-host #[0 "\300\207" [#2="localhost"] 1 #2#] "The default hostname (or IP address) to connect to." sly-port #[0 "\300\207" [4005] 1] "Port to use as the default for `sly-connect'." integer] 8) (defvar sly-connect-host-history (list sly-lisp-host)) (defvar sly-connect-port-history (byte-code "\301!C\207" [sly-port prin1-to-string] 2)) #@88 A list of valid coding systems. Each element is of the form: (NAME MULTIBYTEP CL-NAME) (defvar sly-net-valid-coding-systems '((iso-latin-1-unix nil "iso-latin-1-unix") (iso-8859-1-unix nil "iso-latin-1-unix") (binary nil "iso-latin-1-unix") (utf-8-unix t "utf-8-unix") (emacs-mule-unix t "emacs-mule-unix") (euc-jp-unix t "euc-jp-unix")) (#$ . 8169)) #@132 Return the coding system for the symbol NAME. The result is either an element in `sly-net-valid-coding-systems' of nil. (fn NAME) (defalias 'sly-find-coding-system #[257 "\211\236\211\205$\301\302!\203\3031\302@!0\202 \210\304\207\211@\305=\205$\211\207" [sly-net-valid-coding-systems fboundp check-coding-system (error) nil binary] 4 (#$ . 8527)]) (byte-code "\301\302\303\304\305DD\306\307\310\311\312\"B\313\314&\210\315\316\317\320\321\322\313\323&\210\315\324\317\325\321\322\313\316&\210\326\327\330\331\313\324%\210\326\332\333\334\313\324%\210\326\335\336\337\313\324%\210\326\340\341\342\313\324%\210\315\343\317\344\321\345\313\323&\207" [sly-net-valid-coding-systems custom-declare-variable sly-net-coding-system funcall function #[0 "\301\302\303\304$@\207" [sly-net-valid-coding-systems cl-find-if sly-find-coding-system :key car] 5] "Coding system used for network connections.\nSee also `sly-net-valid-coding-systems'." :type choice mapcar #[257 "\300@D\207" [const] 3 "\n\n(fn X)"] :group sly-lisp custom-declare-group sly-mode nil "Settings for sly-mode Lisp source buffers." :prefix "sly-" sly sly-mode-faces "Faces in sly-mode source code buffers." custom-declare-face sly-error-face ((((class color) (background light)) (:underline "tomato")) (((class color) (background dark)) (:underline "tomato")) (t (:underline t))) "Face for errors from the compiler." sly-warning-face ((((class color) (background light)) (:underline "orange")) (((class color) (background dark)) (:underline "coral")) (t (:underline t))) "Face for warnings from the compiler." sly-style-warning-face ((((class color) (background light)) (:underline "olive drab")) (((class color) (background dark)) (:underline "khaki")) (t (:underline t))) "Face for style-warnings from the compiler." sly-note-face ((((class color) (background light)) (:underline "brown3")) (((class color) (background dark)) (:underline "light goldenrod")) (t (:underline t))) "Face for notes from the compiler." sly-debugger "Backtrace options and fontification." "sly-db-"] 9) #@285 Define the set of SLY-DB faces. Each face specifiation is (NAME DESCRIPTION &optional PROPERTIES). NAME is a symbol; the face will be called sly-db-NAME-face. DESCRIPTION is a one-liner for the customization buffer. PROPERTIES specifies any default face properties. (fn &rest FACES) (defalias 'define-sly-db-faces '(macro . #[128 "\300\301\211:\203@\262\302BB\262A\262\202\211\237\266\203B\207" [progn nil define-sly-db-face] 7 (#$ . 10594)])) #@43 (fn NAME DESCRIPTION &optional DEFAULT) (defalias 'define-sly-db-face '(macro . #[770 "\300\301\302\303!\"!\304\305\211\306ED\301\307\"\310BBBB\207" [intern format "sly-db-%s-face" symbol-name defface list t "Face for %s." (:group 'sly-debugger)] 10 (#$ . 11058)])) (byte-code "\300\301\302\303DC\304\305\306%\210\300\307\302\310DC\311\305\306%\210\300\312\302\313DC\314\305\306%\210\300\315\302\316DC\317\305\306%\210\300\320\302\303DC\321\305\306%\210\300\322\302\323DC\324\305\306%\210\300\325\302\303DC\326\305\306%\210\300\327\302\330DC\331\305\306%\210\300\332\302\303DC\333\305\306%\210\300\334\302\303DC\335\305\306%\210\300\336\302\303DC\337\305\306%\207" [custom-declare-face sly-db-topline-face t nil "Face for the top line describing the error." :group sly-debugger sly-db-condition-face (:inherit error) "Face for the condition class." sly-db-section-face (:inherit header-line) "Face for the labels of major sections in the debugger buffer." sly-db-frame-label-face (:inherit shadow) "Face for backtrace frame numbers." sly-db-restart-face "Face for restart descriptions." sly-db-restart-number-face (:inherit shadow) "Face for restart numbers (correspond to keystrokes to invoke)." sly-db-frame-line-face "Face for function names and arguments in the backtrace." sly-db-restartable-frame-line-face (:inherit font-lock-constant-face) "Face for frames which are surely restartable." sly-db-non-restartable-frame-line-face "Face for frames which are surely not restartable." sly-db-local-name-face "Face for local variable names." sly-db-catch-tag-face "Face for catch tags."] 6) (defvar sly-doc-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\301\320\321#\210\301\322\323#\210\207" [make-sparse-keymap define-key "" sly-apropos "" sly-apropos-all "" sly-apropos-package "" sly-describe-symbol "" sly-describe-function "" sly-documentation-lookup "~" common-lisp-hyperspec-format "" common-lisp-hyperspec-glossary-term "#" common-lisp-hyperspec-lookup-reader-macro] 5)) (defvar sly-who-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\301\316\317#\210\207" [make-sparse-keymap define-key "" sly-who-calls "" sly-calls-who "" sly-who-references "" sly-who-binds "" sly-who-sets " " sly-who-macroexpands "" sly-who-specializes] 5)) #@489 A keymap for frequently used SLY shortcuts. Access to this keymap can be installed in in `sly-mode-map', using something like (global-set-key (kbd "C-z") sly-selector-map) This will bind C-z to this prefix map, one keystroke away from the available shortcuts: \{sly-selector-map} As usual, users or extensions can plug in any command into it using (define-key sly-selector-map (kbd "k") 'sly-command) Where "k" is the key to bind and "sly-command" is any interactive command.". (defvar sly-selector-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\207" [make-sparse-keymap define-key "c" sly-list-connections "t" sly-list-threads "d" sly-db-pop-to-debugger-maybe "e" sly-pop-to-events-buffer "i" sly-inferior-lisp-buffer "l" sly-switch-to-most-recent] 5) (#$ . 13513)) (defvar sly-prefix-map (byte-code "\302 \303\304\305#\210\303\306\307#\210\303\310\307#\210\303\311\312#\210\303\313\314#\210\303\315\316#\210\303\317\320#\210\303\321\322#\210\303\323\324#\210\303\325\326#\210\303\327\330#\210\303\331\332#\210\303\333\334#\210\303\335\336#\210\303\337\340#\210\303\341#\210\303\342 #\210\207" [sly-doc-map sly-who-map make-sparse-keymap define-key "" sly-eval-region ":" sly-interactive-eval "" "E" sly-edit-value "\f" sly-load-file "" sly-interrupt [134217828] sly-disassemble-symbol "" sly-toggle-trace-fdefinition "I" sly-inspect "t" sly-list-threads "n" sly-next-connection "c" sly-list-connections "p" sly-prev-connection "<" sly-list-callers ">" sly-list-callees "" ""] 5)) (defvar sly-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\310#\210\302\312\313#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\302\322#\210\302\323\324#\210\302\325\326#\210\302\327\330#\210\302\331\332#\210\302\333\334#\210\207" [sly-prefix-map make-sparse-keymap define-key [134217774] sly-edit-definition [134217772] sly-pop-find-definition-stack [134217823] sly-edit-uses [134217791] "4." sly-edit-definition-other-window "5." sly-edit-definition-other-frame "" sly-eval-last-expression [134217752] sly-eval-defun "" " " completion-at-point "" sly-pprint-eval-last-expression " " sly-expand-1 [3 134217837] sly-macroexpand-all "" sly-undefine-function] 5)) (defvar sly-editing-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\207" [make-sparse-keymap define-key [134217840] sly-previous-note [134217838] sly-next-note [3 134217827] sly-remove-notes " " sly-compile-and-load-file [3 134217835] sly-compile-file "" sly-compile-defun] 5)) (defvar sly-popup-buffer-mode-map (byte-code "\300 \301\302\303#\210\207" [make-sparse-keymap define-key "q" quit-window] 5)) #@85 Non-nil if Sly mode is enabled. Use the command `sly-mode' to change this variable. (defvar sly-mode nil (#$ . 16352)) (make-variable-buffer-local 'sly-mode) #@586 Minor mode for horizontal SLY functionality. This is a minor mode. If called interactively, toggle the `Sly mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `sly-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'sly-mode #[256 "\303 \304=\203 ?\202\247\203\305W\203\306\202\307\310\301!\2031\311\300 \"\2031\300 B\312\302!\210\307\313\314\203A\315\202B\316\"\210\317\320!\203d\303 \203V\211\303 \232\203d\321\322\203`\323\202a\324\325#\210\210\326 \210\207" [sly-mode local-minor-modes company-tooltip-align-annotations current-message toggle 1 nil t boundp delq make-local-variable run-hooks sly-mode-hook sly-mode-on-hook sly-mode-off-hook called-interactively-p any message "Sly mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 16517) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar sly-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205#\310\211%\207" [sly-mode-map sly-mode-hook variable-documentation put "Hook run after entering or leaving `sly-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode sly-mode boundp] 6) #@101 Non-nil if Sly-Editing mode is enabled. Use the command `sly-editing-mode' to change this variable. (defvar sly-editing-mode nil (#$ . 18268)) (make-variable-buffer-local 'sly-editing-mode) #@601 Minor mode for editing `lisp-mode' buffers. This is a minor mode. If called interactively, toggle the `Sly-Editing mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `sly-editing-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'sly-editing-mode #[256 "\303 \304=\203 ?\202\247\203\305W\203\306\202\307\310\301!\2031\311\300 \"\2031\300 B\312\305!\210\313\302!\210\314\315\316\203E\317\202F\320\"\210\321\322!\203h\303 \203Z\211\303 \232\203h\323\324\203d\325\202e\326\327#\210\210\330 \210\207" [sly-editing-mode local-minor-modes lisp-indent-function current-message toggle 1 nil t boundp delq sly-mode make-local-variable sly-common-lisp-indent-function run-hooks sly-editing-mode-hook sly-editing-mode-on-hook sly-editing-mode-off-hook called-interactively-p any message "Sly-Editing mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 18465) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar sly-editing-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205#\310\211%\207" [sly-editing-mode-map sly-editing-mode-hook variable-documentation put "Hook run after entering or leaving `sly-editing-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode sly-editing-mode boundp] 6) #@111 Non-nil if Sly-Popup-Buffer mode is enabled. Use the command `sly-popup-buffer-mode' to change this variable. (defvar sly-popup-buffer-mode nil (#$ . 20360)) (make-variable-buffer-local 'sly-popup-buffer-mode) #@608 Minor mode for all read-only SLY buffers This is a minor mode. If called interactively, toggle the `Sly-Popup-Buffer mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `sly-popup-buffer-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'sly-popup-buffer-mode #[256 "\303 \304=\203 ?\202\247\203\305W\203\306\202\307\310\301!\2031\311\300 \"\2031\300 B\312\305!\210\313\305!\210\307\314\315\203E\316\202F\317\"\210\320\321!\203h\303 \203Z\211\303 \232\203h\322\323\203d\324\202e\325\326#\210\210\327 \210\207" [sly-popup-buffer-mode local-minor-modes buffer-read-only current-message toggle 1 nil t boundp delq sly-mode sly-interactive-buttons-mode run-hooks sly-popup-buffer-mode-hook sly-popup-buffer-mode-on-hook sly-popup-buffer-mode-off-hook called-interactively-p any message "Sly-Popup-Buffer mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 20577) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar sly-popup-buffer-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\310\313\300!\205#\310\211%\210\314\315\316\317\320\321%\207" [sly-popup-buffer-mode-map sly-popup-buffer-mode-hook variable-documentation put "Hook run after entering or leaving `sly-popup-buffer-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode sly-popup-buffer-mode boundp custom-declare-face sly-mode-line ((t (:inherit font-lock-constant-face :weight bold))) "Face for package-name in SLY's mode line." :group sly] 6) (defvar sly--mode-line-format '(:eval (sly--mode-line-format))) (put 'sly--mode-line-format 'risky-local-variable t) #@216 A list of mode-line constructs to add to SLY's mode-line. Each construct is separated by a "/" and may be a regular mode-line construct or a symbol naming a function of no arguments that returns one such construct. (defvar sly-extra-mode-line-constructs nil (#$ . 22796)) (defalias 'sly--mode-line-format #[0 "\302 \303!\205 \211\211\203\304!\206\305\306 \307\205\310!\205&\311!G\205/\312!G\313\314\315\316\317\320 \321\322#\210\211\262\323BBBBBB\324\313\315\316\317\320 \321\325\326#\210\321\327\330#\210\321\331\332#\210\211\262\333\334\335\336\257\n\337\206q\305\337\313\n !\335\203\207\340\341\f\342#\202\210\343\333\334\315\203\236\211\344V\262\203\236\345\202\237\316\317\320 \321\346\347#\210\321\350\351#\210\211\262\257\n\337\313\f\n!\335\203\311\340\352\353#\202\312\343\333\334\315\203\340\211\344V\262\203\340\345\202\341\316\317\320 \321\354\355#\210\211\262\257\n \356\211:\203'@\262\337B\2629\203\357!\203\3601 0\202\361\262\202B\262A\262\202\362\211\237\266\203BBBBBBBBB\207" [sly-menu sly-extra-mode-line-constructs sly-current-connection process-live-p sly-connection-name "*" sly-current-package #[257 "\211\203\211\300U\204\301\302\"\207\211\203\303\207\304\207" [0 format "%d" "-" "*"] 4 "\n\n(fn N)"] sly--pretty-package-name sly-rex-continuations sly-db-buffers :propertize "sly" face sly-mode-line keymap make-sparse-keymap define-key [mode-line down-mouse-1] (mouse-face mode-line-highlight help-echo "mouse-1: pop-up SLY menu") " " [mode-line mouse-1] sly-prev-connection [mode-line mouse-2] sly-list-connections [mode-line mouse-3] sly-next-connection mouse-face mode-line-highlight help-echo "mouse-1: previous connection\nmouse-2: list connections\nmouse-3: next connection" "/" format "%s pending events outgoing\n%s" "mouse-1: go to *sly-events* buffermouse-3: forget pending continuations" "No current connection" 0 warning [mode-line mouse-1] sly-pop-to-events-buffer [mode-line mouse-3] sly-forget-pending-events "%s SLY-DB buffers waiting\n%s" "mouse-1: go to first one" [mode-line mouse-1] sly-db-pop-to-debugger nil fboundp (error) "*sly-invalid*"] 30]) (defalias 'sly--refresh-mode-line #[0 "\300\301!\207" [force-mode-line-update t] 2]) #@60 Return a pretty version of a package name NAME. (fn NAME) (defalias 'sly--pretty-package-name #[257 "\300\301\"\203\f\302\303\"\207\300\304\"\203\302\303\"\207\207" [string-match "^#?:\\(.*\\)$" match-string 1 "^\"\\(.*\\)\"$"] 4 (#$ . 25077)]) (add-to-list 'mode-line-misc-info '(sly-mode (" [" sly--mode-line-format "] "))) #@101 Evaluate VALUE, if the result is non-nil bind it to VAR and eval BODY. (fn (VAR VALUE) &rest BODY) (defalias 'sly--when-let '(macro . #[128 "\211\203 \211A\262\242\202\300\301\302GD\"\211G\303U\203$\211A\262\242\202+\300\301\302GD\"\242\304DC\305BBE\207" [signal wrong-number-of-arguments sly--when-let 2 let when] 9 (#$ . 25418)])) (byte-code "\300\301\302\303#\300\207" [function-put sly--when-let lisp-indent-function 1] 4) #@78 Same as `sly--when-let', but for multiple BINDINGS (fn BINDINGS &rest BODY) (defalias 'sly--when-let* '(macro . #[385 "\203\300@\301ABBE\207\302B\207" [sly--when-let sly--when-let* progn] 7 (#$ . 25869)])) (byte-code "\300\301\302\303#\300\207" [function-put sly--when-let* lisp-indent-function 1] 4) #@333 Dispatch VALUE to one of PATTERNS. A cross between `case' and `destructuring-bind'. The pattern syntax is: ((HEAD . ARGS) . BODY) The list of patterns is searched for a HEAD `eq' to the car of VALUE. If one is found, the BODY is executed with ARGS bound to the corresponding values in the CDR of VALUE. (fn VALUE &rest PATTERNS) (defalias 'sly-dcase '(macro . #[385 "\300\301!\300\302!\300\303!\304D\305DD\306DDE\307\310\311\312\313 \"\n\"\314\n!@@\315=?\2059\315\316\317 EDC\"BBE\207" [cl-gensym "op-" "rand-" "tmp-" let* car cdr cl-case append mapcar make-closure #[257 "\211@\301=\203\f\301AB\207\211\211\203\211A\262\242\202!\302\303\304GD\"\211\203.\211A\262\242\2025\302\303\304GD\"\211\305\300\206?\306BBBD\207" [V0 t signal wrong-number-of-arguments ((op &rest rands) &rest body) cl-destructuring-bind ((ignore))] 9 "\n\n(fn CLAUSE)"] last t sly-error "Elisp sly-dcase failed: %S"] 15 (#$ . 26185)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sly-dcase lisp-indent-function 1 put edebug-form-spec (sexp &rest (sexp &rest form))] 5) #@43 (fn TYPE &key CONNECTION HIDDEN SUFFIX) (defalias 'sly-buffer-name #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\211\203=\211@\304>\203&\211AA\262\202\305>A@\2034\306\262\202\307\310@\"\210\202\210\311!\204H\312\313!\210\314\315\316\205P\317\320\321\n!\322\306O\227D\205q\323\324 \325=\203m\326 \202o !D\205|\327\330BB\331%\332#\207" [plist-member :connection :hidden :suffix (:connection :hidden :suffix :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:connection :hidden :suffix)" keywordp cl--assertion-failed (keywordp type) mapconcat identity append (" ") "*sly-" symbol-name 1 " for " sly-connection-name t sly-current-connection " (" (")") ("*") ""] 14 (#$ . 27288)]) #@180 Make the region between point and TARGET visible. Minimize window motion if possible. If MOVE-POINT allow point to move to make TARGET visible. (fn TARGET &optional MOVE-POINT) (defalias 'sly-recenter #[513 "\300!?\205q\301 \210\302 \302\303 !Z\302\304 !\302\303 !\302!\305`V\203FZ\\\262\2036\211\306 X\203:\307!\207b\210\307\310!\210\311\310!\207`X\205oZZ\262\203^\211\312V\203d\307\312]!\207b\210\307\312!\210\311\312!\266\205\207" [pos-visible-in-window-p redisplay line-number-at-pos window-start window-end nil window-height recenter -1 move-to-window-line 0] 10 (#$ . 28036)]) #@51 Apply `sly-truncate-lines' to the current buffer. (defalias 'sly-set-truncate-lines #[0 "\205 \302\301!\210\303\211\207" [sly-truncate-lines truncate-lines make-local-variable t] 2 (#$ . 28656)]) #@186 Read a package name from the minibuffer, prompting with PROMPT. If ALLOW-BLANK may return nil to signal no particular package selected. (fn PROMPT &optional INITIAL-VALUE ALLOW-BLANK) (defalias 'sly-read-package-name #[769 "\301\302\303P\304\305!\306?%\211G\307U?\205\211)\207" [completion-ignore-case t sly-completing-read "[sly] " sly-eval (slynk:list-all-package-names t) nil 0] 9 (#$ . 28862)]) #@188 Execute BODY and add PROPS to all the text it inserts. More precisely, PROPS are added to the region between the point's positions before and after executing BODY. (fn PROPS &rest BODY) (defalias 'sly-propertize-region '(macro . #[385 "\300 \301\302BC\303\304B\305\306 FEE\207" [cl-gensym let ((point)) prog1 progn add-text-properties (point)] 11 (#$ . 29276)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sly-propertize-region lisp-indent-function 1 put edebug-form-spec (sexp &rest form)] 5) #@20 (fn FACE STRING) (defalias 'sly-add-face #[514 "\300\301G\302D$\210\207" [add-text-properties 0 face] 7 (#$ . 29804)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-add-face lisp-indent-function 1] 4) #@86 Insert all ARGS and then add text-PROPS to the inserted text. (fn PROPS &rest ARGS) (defalias 'sly-insert-propertized #[385 "`\300\301\"\302`#\210\207" [apply insert add-text-properties] 8 (#$ . 30027)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sly-insert-propertized speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@124 Execute BODY and then rigidly indent its text insertions. Assumes all insertions are made at point. (fn LEVEL &rest BODY) (defalias 'sly-with-rigid-indentation '(macro . #[385 "\300 \300 \301\302B\206\303DD\304\305B\306\307FEE\207" [cl-gensym let ((point)) (current-column) prog1 progn sly-indent-rigidly (point)] 12 (#$ . 30391)])) (byte-code "\300\301\302\303#\300\207" [function-put sly-with-rigid-indentation lisp-indent-function 1] 4) #@25 (fn START END COLUMN) (defalias 'sly-indent-rigidly #[771 "\300\301\"\212b\210\302 \210`X\205\303!\210\304y\305U\205\202 )\207" [make-string 32 beginning-of-line insert-before-markers -1 0] 6 (#$ . 30850)]) #@60 Insert all arguments rigidly indented. (fn &rest STRINGS) (defalias 'sly-insert-indented #[128 "`i\300\301\"\302`#\210\207" [apply insert sly-indent-rigidly] 8 (#$ . 31074)]) #@89 Compose unary FUNCTIONS right-associatively, returning a function (fn &rest FUNCTIONS) (defalias 'sly-compose #[128 "\300\301\"\207" [make-closure #[257 "\301\302\300\303\304\305&\207" [V0 cl-reduce funcall :initial-value :from-end t] 8 "\n\n(fn X)"]] 4 (#$ . 31259)]) #@82 Partially apply FUN to ARGS. The result is a new function. (fn FUN &rest ARGS) (defalias 'sly-curry #[385 "\300\301#\207" [make-closure #[128 "\302\300\303\301\"\"\207" [V0 V1 apply append] 6 "\n\n(fn &rest MORE)"]] 6 (#$ . 31538)]) #@74 Like `sly-curry' but ARGS on the right are applied. (fn FUN &rest ARGS) (defalias 'sly-rcurry #[385 "\300\301#\207" [make-closure #[128 "\302\300\303\301\"\"\207" [V0 V1 apply append] 6 "\n\n(fn &rest MORE)"]] 6 (#$ . 31782)]) #@917 Similar to `with-output-to-temp-buffer'. Bind standard-output and initialize some buffer-local variables. Restore window configuration when closed. NAME is the name of the buffer to be created. PACKAGE is the value `sly-buffer-package'. CONNECTION is the value for `sly-buffer-connection', if nil, no explicit connection is associated with the buffer. If t, the current connection is taken. MODE is the name of a major mode which will be enabled. Non-nil SELECT indicates the buffer should be switched to, unless it is `:hidden' meaning the buffer should not even be displayed. SELECT can also be `:raise' meaning the buffer should be switched to and the frame raised. SAME-WINDOW-P is a form indicating if the popup *can* happen in the same window. The forms SELECT and SAME-WINDOW-P are evaluated at runtime, not macroexpansion time. (fn (NAME &key PACKAGE CONNECTION SELECT SAME-WINDOW-P MODE) &body BODY) (defalias 'sly-with-popup-buffer '(macro . #[128 "\211\203 \211A\262\242\202\300\301\302GD\"\211\203!\211A\262\242\202(\300\301\302GD\"\303\304\"A@\303\305\"A@\303\306\"A@\303\307\"A@\303\310\"A@\211\203t\211@\311>\203\\\211AA\262\202I\312>A@\203k\313\262\202I\314\315@\"\210\202I\210\316\317!\316\320!\316\321!\316\321!\322\n\323=\203\216\324\202\220\nD\n\323=\203\235\325\202\237\nD\326B D\327BBBB\330\331 D\322\332\333\334\f\203\302\335 DC\202\303\336\337\340\341\257\342B\343\344\345BB\322\346\347\350\351\203\346\202\361\205\361\344E\352BBEDC\353\354BBE\351\344\355BB\356BBF\357B$BBBEE\207" [signal wrong-number-of-arguments sly-with-popup-buffer plist-member :package :connection :select :same-window-p :mode (:package :connection :select :same-window-p :mode :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:package :connection :select :same-window-p :mode)" cl-gensym "package-" "connection-" "select" let t (sly-current-package) (sly-current-connection) (major-mode) ((view-read-only nil)) with-current-buffer get-buffer-create ((inhibit-read-only t) (standard-output (current-buffer))) (erase-buffer) append funcall ((sly-popup-buffer-mode 1)) setq sly-buffer-package sly-buffer-connection ((set-syntax-table lisp-mode-syntax-table)) unless eq (:hidden) window display-buffer (current-buffer) if (nil t) when ((if window (select-window window t))) (:raise) ((raise-frame)) ((current-buffer))] 33 (#$ . 32020)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sly-with-popup-buffer lisp-indent-function 1 put edebug-form-spec (sexp &rest form)] 5) #@58 Function to translate Emacs filenames to CL namestrings. (defvar sly-to-lisp-filename-function 'convert-standard-filename (#$ . 34624)) #@58 Function to translate CL namestrings to Emacs filenames. (defvar sly-from-lisp-filename-function 'identity (#$ . 34766)) #@66 Translate the string FILENAME to a Lisp filename. (fn FILENAME) (defalias 'sly-to-lisp-filename #[257 "\301!!\207" [sly-to-lisp-filename-function substring-no-properties] 4 (#$ . 34893)]) #@75 Translate the Lisp filename FILENAME to an Emacs filename. (fn FILENAME) (defalias 'sly-from-lisp-filename #[257 "!\207" [sly-from-lisp-filename-function] 3 (#$ . 35090)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable inferior-lisp-program funcall function #[0 "\300\207" [#1="lisp"] 1 #1#] "Program name for starting a Lisp subprocess to Emacs.\nCan be a string naming a program, a whitespace-separated string\nof \"EXECUTABLE ARG1 ARG2\" or a list (EXECUTABLE ARGS...) where\nEXECUTABLE and ARGS are strings." :type string :group sly-lisp] 8) #@405 *A list of known Lisp implementations. The list should have the form: ((NAME (PROGRAM PROGRAM-ARGS...) &key KEYWORD-ARGS) ...) NAME is a symbol for the implementation. PROGRAM and PROGRAM-ARGS are strings used to start the Lisp process. For KEYWORD-ARGS see `sly-start'. Here's an example: ((cmucl ("/opt/cmucl/bin/lisp" "-quiet") :init sly-init-command) (acl ("acl7") :coding-system emacs-mule)) (defvar sly-lisp-implementations nil (#$ . -35686)) (byte-code "\300\301\302\303\304DD\305\306\307%\210\300\310\302\303\311DD\312\313\314\306\315&\210\300\316\302\303\317DD\320\306\303\313\314&\207" [custom-declare-variable sly-command-switch-to-existing-lisp funcall function #[0 "\300\207" [ask] 1] "Should the `sly' command start new lisp if one is available?" :type (choice (const :tag "Ask the user" ask) (const :tag "Always" 'always) (const :tag "Never" 'never)) sly-auto-select-connection #[0 "\300\207" [ask] 1] "Controls auto selection after the default connection was closed." :group sly-mode (choice (const never) (const always) (const ask)) sly-default-lisp #[0 "\300\207" [nil] 1] "A symbol naming the preferred Lisp implementation.\nSee `sly-lisp-implementations'"] 8) #@1206 Start a Lisp implementation and connect to it. COMMAND designates a the Lisp implementation to start as an "inferior" process to the Emacs process. It is either a pathname string pathname to a lisp executable, a list (EXECUTABLE ARGS...), or a symbol indexing `sly-lisp-implementations'. CODING-SYSTEM is a symbol overriding `sly-net-coding-system'. Interactively, both COMMAND and CODING-SYSTEM are nil and the prefix argument controls the precise behaviour: - With no prefix arg, try to automatically find a Lisp. First consult `sly-command-switch-to-existing-lisp' and analyse open connections to maybe switch to one of those. If a new lisp is to be created, first lookup `sly-lisp-implementations', using `sly-default-lisp' as a default strategy. Then try `inferior-lisp-program' if it looks like it points to a valid lisp. Failing that, guess the location of a lisp implementation. - With a positive prefix arg (one C-u), prompt for a command string that starts a Lisp implementation. - With a negative prefix arg (M-- M-x sly, for example) prompt for a symbol indexing one of the entries in `sly-lisp-implementations' (fn &optional COMMAND CODING-SYSTEM INTERACTIVE) (defalias 'sly #[768 "\3062\211\211\205?\205\307 \211\203> \310=\203!\311\312\313\314#\206) \315=\205)\211@\211\203=\316\317\320!\"\210\321!\210\322\306\313\"\210\210\210\206D\n\206I \323\324\203U\325 \202\204\f\203o\326\f9\203d\206k \206k\f@@\"\202\204<\203x\202{\327!\330@\331AF\262\")\2620\207" [current-prefix-arg sly-command-switch-to-existing-lisp inferior-lisp-program sly-net-coding-system sly-lisp-implementations sly-default-lisp --cl-block-sly-- sly--purge-connections ask sly-prompt-for-connection "[sly] Switch to open connection?\n (Customize `sly-command-switch-to-existing-lisp' to avoid this prompt.)\n Connections: " nil "(start a new one)" always sly-message "Switching to `%s'" sly-connection-name sly-connection-list-default-action throw apply sly-start sly--read-interactive-args sly--lookup-lisp-implementation split-string :program :program-args] 11 (#$ . 36883) (byte-code "\300\211\301E\207" [nil t] 3)]) #@52 History list of command strings. Used by M-x sly. (defvar sly-inferior-lisp-program-history nil (#$ . 39064)) #@83 Return the list of args which should be passed to `sly-start'. Helper for M-x sly (defalias 'sly--read-interactive-args #[0 "\2042 \203\304 \n\206 @@\"\207\305\306\307!!\211\203%\211A\262\242\202,\310\311\312GD\"\313\314F\207\315=\203H\316\317\320\321 \"\322\307$\304 \323!\"\207\305\324\325\306\322!\326#!\211\203^\211A\262\242\202e\310\311\327GD\"\330!\331=\203t\332\333 \"\202u \313\314\334\257\207" [current-prefix-arg sly-lisp-implementations sly-default-lisp sly-net-coding-system sly--lookup-lisp-implementation split-string-and-unquote sly--guess-inferior-lisp-program t signal wrong-number-of-arguments (program &rest args) :program :program-args - sly-completing-read "Lisp name: " mapcar #[257 "\300@!C\207" [symbol-name] 3 "\n\n(fn X)"] nil intern read-shell-command "[sly] Run lisp: " sly-inferior-lisp-program-history (program &rest program-args) prefix-numeric-value 16 read-coding-system "[sly] Set sly-coding-system: " :coding-system] 9 (#$ . 39181)]) #@19 (fn TABLE NAME) (defalias 'sly--lookup-lisp-implementation #[514 "\300\"A\211\204\301\302\"\210\211G\303U\203!\304@!\203!\211@ \262\211\211\203/\211A\262\242\2026\305\306\307GD\"\211\203C\211A\262\242\202J\305\306\307GD\"\310\311\312BBBBBB\207" [assoc error "Could not find lisp implementation with the name '%S'" 1 functionp signal wrong-number-of-arguments ((prog &rest args) &rest keys) :name :program :program-args] 13 (#$ . 40185)]) #@113 Return PROCESS's buffer. With POP-TO-BUFFER, pop to it. (fn SLY-PROCESS-OR-CONNECTION &optional POP-TO-BUFFER) (defalias 'sly-inferior-lisp-buffer #[513 "\203\300\301\"\203\302!\202\205\303\304!\"\211\203(\203(\305!\210\207\2035\2035\306\307!\210\207\203=\310\311!\210\207" [process-get sly-inferior-lisp-process process-buffer sly-inferior-lisp-buffer sly-process pop-to-buffer sly-message "No *inferior lisp* process for current connection!" sly-error "No *inferior lisp* buffer"] 5 (#$ . 40657) (byte-code "\300 \301D\207" [sly-process t] 2)]) #@137 Compute pathname to a seemingly valid lisp implementation. If ERRORP, error if such a thing cannot be found (fn &optional INTERACTIVE) (defalias 'sly--guess-inferior-lisp-program #[256 "\205<\203 \202\302!\211\203\303@!\203\304!\207\305\303\306\"\211\2038\2037 \2047\307\310#\2038\207\203B\311\312\313!!\207\314\207" [inferior-lisp-program noninteractive split-string-and-unquote executable-find combine-and-quote-strings cl-some ("lisp" "sbcl" "clisp" "cmucl" "acl" "alisp") sly-y-or-n-p "Can't find `inferior-lisp-program' (set to `%s'). Use `%s' instead? " sly-error substitute-command-keys "Can't find a suitable Lisp. Use \\[sly-info] to read about `Multiple Lisps'" nil] 7 (#$ . 41236)]) #@1057 Start a Lisp process and connect to it. This function is intended for programmatic use if `sly' is not flexible enough. PROGRAM and PROGRAM-ARGS are the filename and argument strings for the subprocess. INIT is a function that should return a string to load and start Slynk. The function will be called with the PORT-FILENAME and ENCODING as arguments. INIT defaults to `sly-init-function'. CODING-SYSTEM a symbol for the coding system. The default is sly-net-coding-system ENV environment variables for the subprocess (see `process-environment'). INIT-FUNCTION function to call right after the connection is established. BUFFER the name of the buffer to use for the subprocess. NAME a symbol to describe the Lisp implementation DIRECTORY change to this directory before starting the process. (fn &key (PROGRAM (sly-error "must supply :program")) PROGRAM-ARGS DIRECTORY (CODING-SYSTEM sly-net-coding-system) (INIT sly-init-function) NAME (BUFFER (format "*sly-started inferior-lisp for %s*" (file-name-nondirectory program))) INIT-FUNCTION ENV) (defalias 'sly-start #[128 "\302\303\"\206\f\304\305\306!DA@\302\307\"A@\302\310\"A@\302\311\"\206$\304DA@\302\312\"\2060\304 DA@\302\313\"A@\302\314\"\206J\304\315\316\317 !\"DA@\302\320\"A@\302 \321\"A@ \211\203\207\211@\322>\203o\211AA\262\202\\\323 >A@\203~\304\262\202\\\324\325@\"\210\202\\\210\303 \307\n\314\311\f\312 \313\320\321\257\326!\210\327\n\n %\330\"\210\331!\207" [sly-net-coding-system sly-init-function plist-member :program nil sly-error "must supply :program" :program-args :directory :coding-system :init :name :buffer format "*sly-started inferior-lisp for %s*" file-name-nondirectory :init-function :env (:program :program-args :directory :coding-system :init :name :buffer :init-function :env :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:program :program-args :directory :coding-system :init :name :buffer :init-function :env)" sly-check-coding-system sly-maybe-start-lisp sly-inferior-connect sly-inferior-lisp-buffer] 26 (#$ . 41963)]) #@179 Connect to a running Slynk server. Return the connection. With prefix arg, asks if all connections should be closed before. (fn HOST PORT &optional CODING-SYSTEM INTERACTIVE-P) (defalias 'sly-connect #[1026 "\211\203\203 \203\303\304!\203\305 \210\306\307\"\210\310\"\211\311!)\207" [sly-net-processes current-prefix-arg sly-dispatching-connection sly-y-or-n-p "[sly] Close all connections first? " sly-disconnect-all sly-message "Connecting to Slynk on port %S.." sly-net-connect sly-setup-connection] 7 (#$ . 44075) (byte-code "\302\303@\304\211\305%\306\302\307 @\304\211\310%!\304\311F\207" [sly-connect-host-history sly-connect-port-history read-from-minibuffer "[sly] Host: " nil (sly-connect-host-history . 1) string-to-number "[sly] Port: " (sly-connect-port-history . 1) t] 8)]) #@59 Timer object while waiting for an inferior-lisp to start. (defvar sly-connect-retry-timer nil (#$ . 44885)) #@50 Abort connection the current connection attempt. (defalias 'sly-abort-connection #[0 "\203 \301 \210\302\303!\207\304\305!\207" [sly-connect-retry-timer sly-cancel-connect-retry-timer sly-message "Cancelled connection attempt." error "Not connecting"] 2 (#$ . 44999) nil]) #@97 Return a new or existing inferior lisp process. (fn PROGRAM PROGRAM-ARGS ENV DIRECTORY BUFFER) (defalias 'sly-maybe-start-lisp #[1285 "\300!\204\301%\207\301\302!%\207" [comint-check-proc sly-start-lisp generate-new-buffer-name] 12 (#$ . 45280)]) #@50 Hook called whenever a new process gets started. (defvar sly-inferior-process-start-hook nil (#$ . 45548)) #@125 Does the same as `inferior-lisp' but less ugly. Return the created process. (fn PROGRAM PROGRAM-ARGS ENV DIRECTORY BUFFER) (defalias 'sly-start-lisp #[1285 "r\303!q\210\203\304\305!!\210\306 \210\307\"\310\311p\312\310%\210*\313\314!\210\315p!\316\317\314#\210\320\n?\"\210\321\322!\210\211\262)\207" [process-environment process-connection-type sly-kill-without-query-p get-buffer-create cd expand-file-name comint-mode append nil comint-exec "inferior-lisp" lisp-mode-variables t get-buffer-process process-put sly-inferior-lisp-process set-process-query-on-exit-flag run-hooks sly-inferior-process-start-hook] 11 (#$ . 45662)]) #@75 Start a Slynk server in the inferior Lisp and connect. (fn PROCESS ARGS) (defalias 'sly-inferior-connect #[514 "\300\301!\210\302\"\210\303!\207" [sly-delete-slynk-port-file quiet sly-start-slynk-server sly-read-port-and-connect] 5 (#$ . 46316)]) #@67 Start a Slynk server on the inferior lisp. (fn INF-PROCESS ARGS) (defalias 'sly-start-slynk-server #[514 "\211\300\301\"A@\300\302\"A@r\303!q\210\304\305#\210\211\306 \"\307!b\210\310!\210\311\"\262)\207" [plist-member :coding-system :init process-buffer process-put sly-inferior-lisp-args sly-slynk-port-file process-mark insert-before-markers process-send-string] 9 (#$ . 46573)]) #@74 Return the initial process arguments. See `sly-start'. (fn INF-PROCESS) (defalias 'sly-inferior-lisp-args #[257 "\300\301\"\207" [process-get sly-inferior-lisp-args] 4 (#$ . 46977)]) #@140 Return a string to initialize Lisp using ASDF. Fall back to `sly-init-using-slynk-loader' if ASDF fails. (fn PORT-FILENAME CODING-SYSTEM) (defalias 'sly-init-using-asdf #[514 "\300\301\302\303\304\305\306\307 !D\310BB\311\312\313\306\n!EF\314\315\316\"!DE\"\207" [format "%S\n\n" cond (ignore-errors (funcall 'require "asdf") (funcall (read-from-string "asdf:version-satisfies") (funcall (read-from-string "asdf:asdf-version")) "2.019")) push pathname sly-to-lisp-filename sly-slynk-path ((symbol-value (read-from-string "asdf:*central-registry*"))) (funcall (read-from-string "asdf:load-system") :slynk) funcall (read-from-string "slynk:start-server") t read sly-init-using-slynk-loader] 12 (#$ . 47169)]) #@71 Return a string to initialize Lisp. (fn PORT-FILENAME CODING-SYSTEM) (defalias 'sly-init-using-slynk-loader #[514 "\301\302\303 \"!\304\305\306\307\310BB\311\312\313 EF\"\207" [sly-slynk-loader-backend sly-to-lisp-filename expand-file-name sly-slynk-path format "%S\n\n" progn load (:verbose t) (funcall (read-from-string "slynk-loader:init")) funcall (read-from-string "slynk:start-server")] 11 (#$ . 47888)]) #@61 Filename where the SLYNK server writes its TCP port number. (defalias 'sly-slynk-port-file #[0 "\300\301\302\303 \"\304 \"\207" [expand-file-name format "sly.%S" emacs-pid sly-temp-directory] 4 (#$ . 48309)]) (defalias 'sly-temp-directory #[0 "\301\302!\203 \302 \207\303\300!\203\207\304\207" [temporary-file-directory fboundp temp-directory boundp "/tmp/"] 2]) #@24 (fn &optional QUIET) (defalias 'sly-delete-slynk-port-file #[256 "\3001\n\301\302 !0\207\303=\203\304@A\"\207\305\267\202%\303\207\306\307\302 \"\207\310\311\312#\205.\303\207" [(error) delete-file sly-slynk-port-file nil signal #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (quiet 29 sly-message 31)) sly-message "Unable to delete slynk port file %S" error "cl-ecase failed: %s, %s" (nil quiet sly-message)] 6 (#$ . 48682)]) #@25 (fn INFERIOR-PROCESS) (defalias 'sly-read-port-and-connect #[257 "\300\301\302#\207" [sly-attempt-connection nil 1] 5 (#$ . 49165)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable sly-connection-poll-interval funcall function #[0 "\300\207" [0.3] 1] "Seconds to wait between connection attempts when first connecting." :type number :group sly-ui] 8) #@32 (fn PROCESS RETRIES ATTEMPT) (defalias 'sly-attempt-connection #[771 "\304 \210\305 \306 \204\307\310#\210\311!\2037\312\313!8\314V\2037\315 \316!\317\320!\210\321\322\323\"#\324\"\207\203F\314U\203F\307\325\"\207\326!\327=\203R\307\330!\207\311!\203m\312\313!8\314U\203m\307\331!\210\204m\332\262 \203u\333\334!\210\335\n\336\337\340\303 BC  \205\210 S T&\211\207" [sly-lisp-host sly-connect-retry-timer sly-connection-poll-interval sly-ignore-protocol-mismatches sly-cancel-connect-retry-timer sly-slynk-port-file active-minibuffer-window sly-message "Polling %S .. %d (Abort with `M-x sly-abort-connection'.)" file-exists-p 7 file-attributes 0 sly-read-slynk-port sly-inferior-lisp-args sly-delete-slynk-port-file message sly-connect plist-get :coding-system sly-set-inferior-process "Gave up connecting to Slynk after %d attempts." process-status exit "Failed to connect to Slynk: inferior process exited." "(Zero length port file)" 3 cl--assertion-failed (not sly-connect-retry-timer) run-with-timer nil sly-timer-call sly-attempt-connection] 13 (#$ . 49564)]) #@257 Call function FUN with ARGS, reporting all errors. FUN is called with the overriding dynamic environment in ENV, an alist of bindings. The default condition handler for timer functions (see `timer-event-handler') ignores errors. (fn FUN ENV &rest ARGS) (defalias 'sly-timer-call #[642 "\3001=\301\302\"\301\303\"\304\305#\306\203-\211A\262\242\307\211A\262\242DDB\262\202\310\311\237\312\307DDE!\266\2040\207\313\306\314F\"\207" [(debug error) mapcar car cdr make-closure #[0 "\302\300\301\"\207" [V0 V1 apply] 3] nil quote eval let funcall debug "Error in timer"] 13 (#$ . 50676)]) (defalias 'sly-cancel-connect-retry-timer #[0 "\205 \301!\210\302\211\207" [sly-connect-retry-timer cancel-timer nil] 2]) #@67 Read the Slynk server port number from the `sly-slynk-port-file'. (defalias 'sly-read-slynk-port #[0 "\212\300\301\302\"r\211q\210\303\304\"\216\305\306 !\210eb\210\307p!\211\250\204\"\310\311!\210\211\262*\262)\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents sly-slynk-port-file read cl--assertion-failed (integerp port)] 4 (#$ . 51417)]) (defalias 'sly-toggle-debug-on-slynk-error #[0 "\300\301!\203\n\302\303!\207\302\304!\207" [sly-eval (slynk:toggle-debug-on-slynk-error) sly-message "Debug on SLYNK error enabled." "Debug on SLYNK error disabled."] 2 nil nil]) (defalias 'sly-user-first-name #[0 "\300 \301\230\203\f\302 \202\300 \303\304\"\210\305\306\307\"!\207" [user-full-name "" user-login-name string-match "^[^ ]*" capitalize match-string 0] 5]) #@65 Scientifically-proven optimal words of hackerish encouragement. (defvar sly-words-of-encouragement (byte-code "\300\301\302\303\304\305\306\307\310\311\312 \"\257 \207" ["Let the hacking commence!" "Hacks and glory await!" "Hack and be merry!" "Your hacking starts... NOW!" "May the source be with you!" "Take this REPL, brother, and may it serve you well." "Lemonodor-fame is but a hack away!" "Are we consing yet?" format "%s, this could be the start of a beautiful program." sly-user-first-name] 11) (#$ . 52283)) #@45 Return a string of hackerish encouragement. (defalias 'sly-random-words-of-encouragement #[0 "\301\302G!8\303\"\207" [sly-words-of-encouragement eval random t] 3 (#$ . 52806)]) #@49 List of processes (sockets) connected to Lisps. (defvar sly-net-processes nil (#$ . 52991)) #@125 List of functions called when a sly network connection closes. The functions are called with the process as their argument. (defvar sly-net-process-close-hooks nil (#$ . 53090)) #@143 Find the magic secret from the user's home directory. Return nil if the file doesn't exist or is empty; otherwise the first line of the file. (defalias 'sly-secret #[0 "\3001!\301\302\303\"r\211q\210\304\305\"\216\306\307!\210eb\210e\310 {*\2620\207\311\207" [(file-error) generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] insert-file-contents "~/.sly-secret" line-end-position nil] 4 (#$ . 53275)]) (defvar sly--net-connect-counter 0) #@13 (fn PROC) (defalias 'sly-send-secret #[257 "\300 \211\205\301\302\"\303G!P\304\"\266\202\207" [sly-secret encode-coding-string utf-8-unix sly-net-encode-length process-send-string] 7 (#$ . 53782)]) #@51 Establish a connection with a CL. (fn HOST PORT) (defalias 'sly-net-connect #[514 "\304\305\306 T\211\"\307\304$\310\305\311\"!\nB\312\301 D\"\210\313\"\210\314\315\"\210\316\317\"\210\320 ?\"\210\321\322!\203A\322\323\211#\210\324!\210)\207" [inhibit-quit sly--net-connect-counter sly-net-processes sly-kill-without-query-p nil format "sly-%s" open-network-stream sly-make-net-buffer " *%s*" set-process-plist set-process-buffer set-process-filter sly-net-filter set-process-sentinel sly-net-sentinel set-process-query-on-exit-flag fboundp set-process-coding-system binary sly-send-secret] 9 (#$ . 53995)]) #@58 Make a buffer suitable for a network process. (fn NAME) (defalias 'sly-make-net-buffer #[257 "\301!r\211q\210\302 \210\303\300!\210\304)\207" [kill-buffer-query-functions generate-new-buffer buffer-disable-undo make-local-variable nil] 4 (#$ . 54628)]) #@83 Signal an error if CODING-SYSTEM isn't a valid coding system. (fn CODING-SYSTEM) (defalias 'sly-check-coding-system #[257 "\302!\211\204\303\304\305\306\"#\210\211A@\203$\307\301!\203$ \204$\310\301!\210\311\207" [sly-net-valid-coding-systems default-enable-multibyte-characters sly-find-coding-system error "Invalid sly-net-coding-system: %s. %s" mapcar car boundp cl--assertion-failed t] 8 (#$ . 54890) nil]) #@22 (fn CODING-SYSTEM) (defalias 'sly-coding-system-mulibyte-p #[257 "\300!A@\207" [sly-find-coding-system] 3 (#$ . 55316)]) #@22 (fn CODING-SYSTEM) (defalias 'sly-coding-system-cl-name #[257 "\300!AA@\207" [sly-find-coding-system] 3 (#$ . 55446)]) #@64 If non-nil, function to translate outgoing sexps for the wire. (defvar sly-net-send-translator nil (#$ . 55574)) #@46 Sanitize FORM for Slynk or error. (fn FORM) (defalias 'sly--sanitize-or-lose #[257 "\211\247\204-\2119\204-\211;\203\300\301G\302$\210\207\211:\203(\303@!\210\303A!\210\207\304\305\"\210\207" [set-text-properties 0 nil sly--sanitize-or-lose sly-error "Can't serialize %s for Slynk."] 6 (#$ . 55693)]) #@144 Send a SEXP to Lisp over the socket PROC. This is the lowest level of communication. The sexp will be READ and EVAL'd by Lisp. (fn SEXP PROC) (defalias 'sly-net-send #[514 "\303\211\304!\n\203\305\n!\203\n!\202\211\306\307!\310P\311\"\312G!P\313\"\210\314\"*\207" [print-circle print-quoted sly-net-send-translator nil sly--sanitize-or-lose fboundp encode-coding-string sly-prin1-to-string "\n" utf-8-unix sly-net-encode-length sly-log-event process-send-string] 10 (#$ . 56012)]) #@84 Return true iff CODING-SYSTEM can safely encode STRING. (fn CODING-SYSTEM STRING) (defalias 'sly-safe-encoding-p #[514 "\300!\301!\302\232\206\211>\266\202\206\303!?\205\304!?\207" [find-coding-systems-string coding-system-base (undecided) multibyte-string-p sly-coding-system-mulibyte-p] 6 (#$ . 56518)]) #@103 Close the network connection CONNECTION because REASON. (fn CONNECTION REASON &optional DEBUG FORCE) (defalias 'sly-net-close #[1026 "\302\303#\210\304\" =\203\305\204\306\307\"\210\310\305\"\210\203*\311\305\"\210\2032\312!\207\313\314!!\207" [sly-net-processes sly-default-connection process-put sly-net-close-reason remove nil run-hook-with-args sly-net-process-close-hooks set-process-sentinel set-process-filter delete-process kill-buffer process-buffer] 8 (#$ . 56844)]) #@24 (fn PROCESS MESSAGE) (defalias 'sly-net-sentinel #[514 "\300\301\"\302!\210\303\"\207" [format "Lisp connection closed unexpectedly: %s" sly-message sly-net-close] 6 (#$ . 57349)]) #@87 Accept output from the socket and process all complete messages. (fn PROCESS STRING) (defalias 'sly-net-filter #[514 "r\300!q\210db\210\211c\210)\301!\207" [process-buffer sly-process-available-input] 4 (#$ . 57542)]) #@74 Process all complete messages that have arrived from Lisp. (fn PROCESS) (defalias 'sly-process-available-input #[257 "r\300!q\210\301 \205+\302!\303C\304\"\210\305\306#\216r\307\"\210\211\310\240\210*\266\202)\207" [process-buffer sly-net-have-input-p sly-net-read-or-lose nil sly-log-event make-closure #[0 "\301\242?\205\f\302\303\304\305\300$\207" [V0 V1 run-at-time 0 nil sly-process-available-input] 5] sly-dispatch-event t] 7 (#$ . 57769)]) (defalias 'sly-net-decode-length #[0 "\300``\301\\{\302\"\207" [string-to-number 6 16] 4]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sly-net-decode-length speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@49 Return true if a complete message is available. (defalias 'sly-net-have-input-p #[0 "eb\210\300 \301Y\205\300 \301Z\302``\301\\{\303\"Y\207" [buffer-size 6 string-to-number 16] 5 (#$ . 58474)]) #@14 (fn ERROR) (defalias 'sly-handle-net-read-error #[257 "\306 \307\210\307r\310\311\312\313\314p!#!q\210\315p\316 \210\317\320!\210\307\211\321!\210\322\323\324\325!#!\210eb\210\326p\315\"\210,\210\327\330!\203F\331D\207\327\332!\203Q\333\334\"\210\335@A\"\207" [major-mode view-read-only standard-output inhibit-read-only sly-buffer-package sly-buffer-connection buffer-string nil get-buffer-create sly-buffer-name :error :connection get-buffer-process t erase-buffer sly-popup-buffer-mode 1 set-syntax-table princ format "%s\nin packet:\n%s" error-message-string display-buffer sly-y-or-n-p "Skip this packet? " :emacs-skipped-packet "Enter debugger instead? " debug error signal lisp-mode-syntax-table] 10 (#$ . 58676)]) #@16 (fn PROCESS) (defalias 'sly-net-read-or-lose #[257 "\3001\301 0\207\302\303\304#\210\305\306\"\207" [(error) sly-net-read sly-net-close "Fatal net-read error" t error "net-read error: %S"] 6 (#$ . 59423)]) #@41 Read a message from the network buffer. (defalias 'sly-net-read #[0 "eb\210\300``\301\\{\302\"`\301\\\211\\\211\303V\262\204\304\305!\210\214}\210\30617\307\310#\210d\262\311p!0\202<\312!\262)e|\210\207" [string-to-number 6 16 0 cl--assertion-failed (cl-plusp length) (error) decode-coding-region utf-8-unix read sly-handle-net-read-error] 7 (#$ . 59641)]) #@10 (fn N) (defalias 'sly-net-encode-length #[257 "\300\301\"\207" [format "%06x"] 4 (#$ . 60019)]) #@124 Like `prin1-to-string' but don't octal-escape non-ascii characters. This is more compatible with the CL reader. (fn SEXP) (defalias 'sly-prin1-to-string #[257 "\304\211\211\211\305!,\207" [print-level print-length print-escape-newlines print-escape-nonascii nil prin1-to-string] 5 (#$ . 60125)]) #@166 Network process currently executing. This is dynamically bound while handling messages from Lisp; it overrides `sly-buffer-connection' and `sly-default-connection'. (defvar sly-dispatching-connection nil (#$ . 60434)) (byte-code "\300\301\302!!\207" [make-variable-buffer-local (lambda (#1=#:def-tmp-var) (defvar sly-buffer-connection #1# "Network connection to use in the current buffer.\nThis overrides `sly-default-connection'.")) nil] 3) #@155 Network connection to use by default. Used for all Lisp communication, except when overridden by `sly-dispatching-connection' or `sly-buffer-connection'. (defvar sly-default-connection nil (#$ . 60883)) #@89 Return the connection to use for Lisp interaction. Return nil if there's no connection. (defalias 'sly-current-connection #[0 "\206 \206 \n\207" [sly-dispatching-connection sly-buffer-connection sly-default-connection] 1 (#$ . 61092)]) #@94 Return the connection to use for Lisp interaction. Signal an error if there's no connection. (defalias 'sly-connection #[0 "\301 \211\204\203\302 \206,\303\304!\207\211\204 \305 \206,\303\306!\207\307!\204+\303\310\"\207\211\207" [sly-net-processes sly-current-connection sly-auto-select-connection error "Connections available, but none selected." sly-auto-start "No current SLY connection." process-live-p "Current connection %s is closed."] 4 (#$ . 61338)]) (byte-code "\300\301\302\303#\210\304\211\203(\211@\301N\203!\302N\204!\305\302\301N#\210A\266\202\202\210\306\301\302\307#\210\310\302\311\312\313DD\314\315\316\317\320&\207" [defvaralias sly-auto-connect sly-auto-start nil (saved-value saved-variable-comment) put make-obsolete-variable "2.5" custom-declare-variable funcall function #[0 "\300\207" [never] 1] "Controls auto connection when information from lisp process is needed.\nThis doesn't mean it will connect right after SLY is loaded." :group sly-mode :type (choice (const never) (const always) (const ask))] 8) (defalias 'sly-auto-start #[0 "\301=\204\302=\203,\303\304!\203,\305 \306\307\"\216\310 \210\311 \204(\312\313!\210\202\314 )\207\315\207" [sly-auto-start always ask sly-y-or-n-p "No connection. Start SLY? " current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] sly sly-current-connection sleep-for 1 sly-connection nil] 4]) #@141 Execute BODY in the process-buffer of PROCESS. If PROCESS is not specified, `sly-connection' is used. (fn (&optional PROCESS) &body BODY)) (defalias 'sly-with-connection-buffer '(macro . #[128 "\211\203 \211A\262\242\202\300\301\302GD\"\211A\262\242\203'\300\301\302GTD\"\210\303\304\305\306BBDBB\207" [signal wrong-number-of-arguments sly-with-connection-buffer with-current-buffer process-buffer or ((sly-connection) (error "No connection"))] 8 (#$ . 62778)])) (byte-code "\300\301\302\303#\300\207" [function-put sly-with-connection-buffer lisp-indent-function 1] 4) #@389 Define a connection-local variable. The value of the variable can be read by calling the function of the same name (it must not be accessed directly). The accessor function is setf-able. The actual variable bindings are stored buffer-local in the process-buffers of connections. The accessor function refers to the binding for `sly-connection'. (fn VARNAME &rest INITIAL-VALUE-AND-DOC) (defalias 'sly-def-connection-var '(macro . #[385 "\300\301\302A@\303\304\305\304\306\307\310\311DEFDC\305\312\304\311\fDE\303\313 @DC\314\304\311D\315BBB\316BBBEE\257\317\320\321\303\304\305\322\323\307\310\311\324\311DCBDEFD\325B\314\304\311\324\311DCBD\326BBB\327BBBCBF\311DF\207" [progn defun (&optional process) let process or (sly-current-connection) error "Can't access prop %s for no connection" quote process-get once process-put (once) (once) gv-define-setter (store &optional process) \` (\, process) (sly-current-connection) \, ((store-once (\, store))) (store-once) (store-once)] 19 (#$ . 63369)])) (byte-code "\300\301\302\303#\300\207" [function-put sly-def-connection-var lisp-indent-function 2] 4) #@98 Serial number of a connection. Bound in the connection's process-buffer. (fn &optional PROCESS) (defalias 'sly-connection-number #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-connection-number process-get process-put nil] 6 (#$ . 64493)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-connection-number gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-connection-number #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-connection-number)) store-once ((process-put process 'sly-connection-number store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@110 The symbol-names of Lisp's *FEATURES*. This is automatically synchronized from Lisp. (fn &optional PROCESS) (defalias 'sly-lisp-features #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-lisp-features process-get process-put nil] 6 (#$ . 65321)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-lisp-features gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-lisp-features #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-lisp-features)) store-once ((process-put process 'sly-lisp-features store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@58 The strings of Lisp's *MODULES*. (fn &optional PROCESS) (defalias 'sly-lisp-modules #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-lisp-modules process-get process-put nil] 6 (#$ . 66136)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-lisp-modules gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-lisp-modules #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-lisp-modules)) store-once ((process-put process 'sly-lisp-modules store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@61 The process id of the Lisp process. (fn &optional PROCESS) (defalias 'sly-pid #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-pid process-get process-put nil] 6 (#$ . 66893)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-pid gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-pid #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-pid)) store-once ((process-put process 'sly-pid store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@70 The implementation type of the Lisp process. (fn &optional PROCESS) (defalias 'sly-lisp-implementation-type #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-lisp-implementation-type process-get process-put nil] 6 (#$ . 67599)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-lisp-implementation-type gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-lisp-implementation-type #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-lisp-implementation-type)) store-once ((process-put process 'sly-lisp-implementation-type store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@70 The implementation type of the Lisp process. (fn &optional PROCESS) (defalias 'sly-lisp-implementation-version #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-lisp-implementation-version process-get process-put nil] 6 (#$ . 68440)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-lisp-implementation-version gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-lisp-implementation-version #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-lisp-implementation-version)) store-once ((process-put process 'sly-lisp-implementation-version store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@69 The short name for the Lisp implementation. (fn &optional PROCESS) (defalias 'sly-lisp-implementation-name #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-lisp-implementation-name process-get process-put nil] 6 (#$ . 69299)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-lisp-implementation-name gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-lisp-implementation-name #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-lisp-implementation-name)) store-once ((process-put process 'sly-lisp-implementation-name store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@85 The argv[0] of the process running the Lisp implementation. (fn &optional PROCESS) (defalias 'sly-lisp-implementation-program #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-lisp-implementation-program process-get process-put nil] 6 (#$ . 70139)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-lisp-implementation-program gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-lisp-implementation-program #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-lisp-implementation-program)) store-once ((process-put process 'sly-lisp-implementation-program store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@56 The short name for connection. (fn &optional PROCESS) (defalias 'sly-connection-name #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-connection-name process-get process-put nil] 6 (#$ . 71013)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-connection-name gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-connection-name #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-connection-name)) store-once ((process-put process 'sly-connection-name store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@73 The inferior process for the connection if any. (fn &optional PROCESS) (defalias 'sly-inferior-process #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-inferior-process process-get process-put nil] 6 (#$ . 71786)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-inferior-process gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-inferior-process #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-inferior-process)) store-once ((process-put process 'sly-inferior-process store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@50 The communication style. (fn &optional PROCESS) (defalias 'sly-communication-style #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-communication-style process-get process-put nil] 6 (#$ . 72582)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-communication-style gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-communication-style #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-communication-style)) store-once ((process-put process 'sly-communication-style store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@84 The name of the (remote) machine running the Lisp process. (fn &optional PROCESS) (defalias 'sly-machine-instance #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-machine-instance process-get process-put nil] 6 (#$ . 73373)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-machine-instance gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-machine-instance #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-machine-instance)) store-once ((process-put process 'sly-machine-instance store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@71 Coding systems supported by the Lisp process. (fn &optional PROCESS) (defalias 'sly-connection-coding-systems #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-connection-coding-systems process-get process-put nil] 6 (#$ . 74180)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-connection-coding-systems gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-connection-coding-systems #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-connection-coding-systems)) store-once ((process-put process 'sly-connection-coding-systems store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@68 The number of SLY connections made. For generating serial numbers. (defvar sly-connection-counter 0 (#$ . 75028)) #@49 Make a connection out of PROCESS. (fn PROCESS) (defalias 'sly-setup-connection #[257 "\211\301!\210\302!\210\303 \210)\207" [sly-dispatching-connection sly-init-connection-state sly-select-connection sly--setup-contribs] 3 (#$ . 75148)]) #@71 Initialize connection state in the process-buffer of PROC. (fn PROC) (defalias 'sly-init-connection-state #[257 "C\232\203 \305r\306\307 \206\310\311!!q\210\211)\211\211\206'\312 \206'\310\313\314\" T\211\315\314#\266\316\317\320\321\322\"\323\304\fBC$)\207" [sly-net-processes sly-connection-counter sly-buffer-connection sly-current-thread sly-ignore-protocol-mismatches 0 process-buffer sly-connection error "No connection" sly-current-connection "Can't access prop %s for no connection" sly-connection-number process-put t sly-eval-async (slynk:connection-info) sly-curry sly-set-connection-info nil] 8 (#$ . 75396)]) #@76 Rename current buffer NEWNAME, trampling over existing ones. (fn NEWNAME) (defalias 'sly--trampling-rename-buffer #[257 "\301!\211p=?\205\211\203\302\303!\210)\304!\207" [kill-buffer-query-functions get-buffer nil kill-buffer rename-buffer] 4 (#$ . 76040)]) #@75 Initialize CONNECTION with INFO received from Lisp. (fn CONNECTION INFO) (defalias 'sly-set-connection-info #[514 "\302\211\303\304\"A@\303\305\"A@\303\306\"A@\303\307\"A@\303\310\"A@\303\311\"A@\303\312\"A@\303\313\"A@\314\f\"\210\315 \206G\316\317\320\"\321\320#\266\315 \206Y\316\317\322\"\321\322#\266\315 \206k\316\317\323\"\321\323#\266\315 \206|\316\317\324\"\321\324#\266\303\325\"A@\303\326\"A@\303\311\"A@\303\327\"A@\211\203\311\211@\330>\203\261\211AA\262\202\236\331>A@\203\300\332\262\202\236\316\333@\"\210\202\236\210\315 \206\323\316\317\334\"\321\334#\266\315 \206\344\316\317\335\"\321\335#\266\315 \206\365\316\317\336\"\321\336#\266\315 \206\316\317\337\"\321\337#\266\315 \206\316\317\340\"\341!\321\340#\266\303\342\"A@\332\303\325\"A@\210\332\303\311\"A@\210\211\203c\211@\343>\203L\211AA\262\2029\331>A@\203Z\332\262\2029\316\344@\"\210\2029\210\315 \206m\316\317\345\"\321\345#\266\211\303\346\"A@\211\203\247\211@\347>\203\220\211AA\262\202}\331>A@\203\236\332\262\202}\316\350@\"\210\202}\210\315 \206\261\316\317\351\"\321\351#\266\352 \211\205\302\353!\262\354\326\"\211\203\350\336 \230\204\350\315 \206\334\316\317\340\"\341\355!!\321\340#\266\210\356 \210\357\360!\210\354\361\"\211\203\373\211 \210\266r\362!q\210\363\364\365\366#!\210)\367\370!!\211\203#r\211q\210\363\364\371\366#!\210)\210\372\373\374 \"*\207" [sly-current-thread sly-dispatching-connection t plist-member :pid :style :lisp-implementation :machine :features :version :modules :encoding sly-check-version sly-current-connection error "Can't access prop %s for no connection" sly-pid process-put sly-communication-style sly-lisp-features sly-lisp-modules :type :name :program (:type :name :version :program . #1=(:allow-other-keys)) :allow-other-keys nil "Keyword argument %s not one of (:type :name :version :program)" sly-lisp-implementation-type sly-lisp-implementation-version sly-lisp-implementation-name sly-lisp-implementation-program sly-connection-name sly-generate-connection-name :instance (:instance :type :version . #1#) "Keyword argument %s not one of (:instance :type :version)" sly-machine-instance :coding-systems (:coding-systems . #1#) "Keyword argument %s not one of (:coding-systems)" sly-connection-coding-systems sly-inferior-process sly-inferior-lisp-args plist-get symbol-name sly-contrib--load-slynk-dependencies run-hooks sly-connected-hook :init-function sly--events-buffer sly--trampling-rename-buffer sly-buffer-name :events :connection sly-inferior-lisp-buffer sly-process :inferior-lisp sly-message "Connected. %s" sly-random-words-of-encouragement] 22 (#$ . 76313)]) #@21 (fn VERSION CONN) (defalias 'sly-check-version #[514 "\232\206\"?\206\" \206\"\302\303\304#!\206\"\305\306\"\206\"\307 \207" [sly-protocol-version sly-ignore-protocol-mismatches sly-y-or-n-p format "Versions differ: %s (sly) vs. %s (slynk). Continue? " sly-net-close "Versions differ" top-level] 7 (#$ . 79062)]) #@18 (fn LISP-NAME) (defalias 'sly-generate-connection-name #[257 "\301!\203 \302!\262\3032?\304\305\306\211\203\202\307\310#\262\311\312\313\314\315&\2037T\262\305\262\202\316\303\"\266\3050\207" [sly-net-processes file-exists-p file-name-nondirectory --cl-block-nil-- 1 nil t format "%s<%d>" cl-find :key sly-connection-name :test equal throw] 11 (#$ . 79394)]) #@71 If dead CONN was the default connection, select a new one. (fn CONN) (defalias 'sly-select-new-default-connection #[257 "\211=\205 \205\302 @!\210\303\304\305 \306 #\207" [sly-default-connection sly-net-processes sly-select-connection sly-message "Default connection closed; default is now #%S (%S)" sly-connection-number sly-connection-name] 5 (#$ . 79785)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable sly-keep-buffers-on-connection-close funcall function #[0 "\300\207" [(:mrepl)] 1] "List of buffers to keep around after a connection closes." :group sly-mode :type (repeat (choice (const :tag "Debugger" :db) (const :tag "Repl" :mrepl) (const :tag "Ispector" :inspector) (const :tag "Stickers replay" :stickers-replay) (const :tag "Error" :error) (const :tag "Source" :source) (const :tag "Compilation" :compilation) (const :tag "Apropos" :apropos) (const :tag "Xref" :xref) (const :tag "Macroexpansion" :macroexpansion) (symbol :tag "Other")))] 8) #@103 If CONN had some stale buffers, kill them. Respect `sly-keep-buffers-on-connection-close'. (fn CONN) (defalias 'sly-kill-stale-connection-buffers #[257 "\302 \303\304\305\306\"\"\307C:\2038\211@\240\210\310\311\312\"\"\2031r\211\242q\210 )=\2031\313\242!\210A\262\202\f\266\307\207" [sly-keep-buffers-on-connection-close sly-buffer-connection buffer-list mapcar #[257 "\300\301\302\300\303\304!\305\306O\227\"!\"\207" [format ".*%s.*$" regexp-quote "*sly-%s" symbol-name 1 nil] 9 "\n\n(fn TYPE)"] cl-set-difference (:db :mrepl :inspector :stickers-replay :error :source :compilation :apropos :xref :macroexpansion) nil cl-some make-closure #[257 "\301\302\300\242!\"\207" [V0 string-match buffer-name] 5 "\n\n(fn MATCHER)"] kill-buffer] 9 (#$ . 80794)]) (byte-code "\300\301\302\"\210\300\301\303\304#\207" [add-hook sly-net-process-close-hooks sly-select-new-default-connection sly-kill-stale-connection-buffers append] 4) #@61 Purge `sly-net-processes' of dead processes, return living. (defalias 'sly--purge-connections #[0 "\301\211:\203-@\262\302!\203B\262\202&\303\304\"\210\305\306\301\307$\210A\262\202\211\237\207" [sly-net-processes nil process-live-p sly-warning "process %s in `sly-net-processes' dead. Force closing..." sly-net-close "process state invalid" t] 8 (#$ . 81743)]) #@56 (fn &optional PROMPT CONNECTIONS DONT-REQUIRE-MATCH) (defalias 'sly-prompt-for-connection #[768 "\206\301 \302\303\"\304\211:\203#@\262\305!B\262A\262\202\f\211\237\266\203\2031B\2022\211\211\205C\306\206=\307\304?$\310\311\305\312\313&\211\203Q\207\203eG\314U\204c\230\203e\304\207\203m\315\316!\207\315\317!\207" [sly-net-processes sly--purge-connections sort #[514 "\300 =\207" [sly-current-connection] 4 "\n\n(fn P1 P2)"] nil sly-connection-name sly-completing-read "Connection: " cl-find :key :test string= 0 sly-error "No such connection" "No connections"] 14 (#$ . 82129)]) (defalias 'sly-auto-select-connection #[0 "\301 @\302=\203 \211\202\303=\205\304\305!\211\205&\306!\210\307\310\311!\"\210\211\207" [sly-auto-select-connection sly--purge-connections always ask sly-prompt-for-connection "Choose a new default connection: " sly-select-connection sly-message "Switching to connection: %s" sly-connection-name] 6]) (defvar sly-select-connection-hook nil) #@52 Make PROCESS the default connection. (fn PROCESS) (defalias 'sly-select-connection #[257 "\211\301\302!\207" [sly-default-connection run-hooks sly-select-connection-hook] 3 (#$ . 83154)]) (byte-code "\300\301\302\303#\210\304\301\302\305#\207" [defalias sly-cycle-connections sly-next-connection nil make-obsolete "1.0.0-beta"] 4) #@221 Switch to the next SLY connection, cycling through all connections. Skip ARG-1 connections. Negative ARG means cycle back. DONT-WRAP means don't wrap around when last connection is reached. (fn ARG &optional DONT-WRAP) (defalias 'sly-next-connection #[513 "\302\204 \303\304!\207A\204\305\306@!\"\207\307\310 \235?\205!\"G\311\"8\211\2042\303\312!\210\313!\210 \203N =\204N\305\314! !#\210\202[\305\315!\316\"T$\210\317 \207" [sly-net-processes sly-buffer-connection #[257 "\300\301\302!\303!#\207" [format "%s %s" sly-connection-name process-contact] 6 "\n\n(fn C)"] sly-error "No connections to cycle" sly-message "Only one connection: %s" append sly-current-connection mod "No more connections" sly-select-connection "switched to: %s but buffer remains in: %s" "switched to: %s (%s/%s)" cl-position sly--refresh-mode-line] 12 (#$ . 83494) "p"]) #@145 Switch to the previous SLY connection, cycling through all connections. See `sly-next-connection' for other args. (fn ARG &optional DONT-WRAP) (defalias 'sly-prev-connection #[513 "\300[\"\207" [sly-next-connection] 5 (#$ . 84382) "p"]) #@59 Close the current connection. (fn &optional INTERACTIVE) (defalias 'sly-disconnect #[256 "\211\203\n\300\301!\202\f\302 \303\304\"\207" [sly-prompt-for-connection "Connection to disconnect: " sly-current-connection sly-net-close "Disconnecting"] 5 (#$ . 84628) (list t)]) #@29 Disconnect all connections. (defalias 'sly-disconnect-all #[0 "\301\302\"\207" [sly-net-processes mapc #[257 "\300\301\"\207" [sly-net-close "Disconnecting all connections"] 4 "\n\n(fn PROCESS)"]] 3 (#$ . 84910) nil]) #@63 Return the remote port number of CONNECTION. (fn CONNECTION) (defalias 'sly-connection-port #[257 "\300!A@\207" [process-contact] 3 (#$ . 85136)]) #@155 Return the Lisp process for CONNECTION (default `sly-connection'). Return nil if there's no process object for the connection. (fn &optional CONNECTION) (defalias 'sly-process #[256 "\300!\211\205\301!\302>\205\211\207" [sly-inferior-process process-status (run stop)] 4 (#$ . 85292)]) #@27 (fn CONNECTION PROCESS) (defalias 'sly-set-inferior-process #[514 "\211\206\300 \206\301\302\303\"\304\303#\210\207" [sly-current-connection error "Can't access prop %s for no connection" sly-inferior-process process-put] 9 (#$ . 85591)]) #@29 (fn &optional CONNECTION) (defalias 'sly-use-sigint-for-interrupt #[256 "\211\206\300 \301!\211\302\267\202\303\207\304\207\305\306\307#\205\304\207" [sly-connection sly-communication-style #s(hash-table size 4 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:fd-handler 15 nil 15 :spawn 17 :sigio 17)) t nil error "cl-ecase failed: %s, %s" (nil :fd-handler :sigio :spawn)] 7 (#$ . 85846)]) #@67 *If true, don't send background requests if Lisp is already busy. (defvar sly-inhibit-pipelining t (#$ . -86270)) (defalias 'sly-background-activities-enabled-p #[0 "\301 \211\205 \302!\303=\262\205\304 ?\206?\207" [sly-inhibit-pipelining sly-current-connection process-status open sly-busy-p] 3]) (byte-code "\300\301\302!!\210\300\303\304!!\207" [make-variable-buffer-local (lambda (#1=#:def-tmp-var) (defvar sly-current-thread #1# "The id of the current thread on the Lisp side.\nt means the \"current\" thread;\nfixnum a specific thread.")) t (lambda (#1#) (defvar sly-buffer-package #1# "The Lisp package associated with the current buffer.\nThis is set only in buffers bound to specific packages.")) nil] 3) #@59 Functions returning extra options to send with `sly-rex'. (defvar sly-rex-extra-options-functions nil (#$ . 86998)) #@721 (sly-rex (VAR ...) (SEXP &optional PACKAGE THREAD) CLAUSES ...) Remote EXecute SEXP. SEXP is evaluated and the princed version is sent to Lisp. PACKAGE is evaluated and Lisp binds *BUFFER-PACKAGE* to this package. The default value is (sly-current-package). CLAUSES is a list of patterns with same syntax as `sly-dcase'. The result of the evaluation of SEXP is dispatched on CLAUSES. The result is either a sexp of the form (:ok VALUE) or (:abort CONDITION). CLAUSES is executed asynchronously. Note: don't use backquote syntax for SEXP, because various Emacs versions cannot deal with that. (fn (&rest ##) (SEXP &optional (PACKAGE \='(sly-current-package)) (THREAD \='sly-current-thread)) &rest CONTINUATIONS) (defalias 'sly-rex '(macro . #[128 "\300A\203\211A\262\210\202\301\302\303GD\"\210\211A\262\242\211\203*\211A\262\242\2021\301\302\303GD\"\203>\211A\262\242\202?\304\203L\211A\262\242\202M\305\203\\\301\302\303\306G\\D\"\210\307 \310\311\312\313C\314 BBE\315BBBBBBD\207" [nil signal wrong-number-of-arguments sly-rex (sly-current-package) sly-current-thread 3 cl-gensym sly-dispatch-event cl-list* :emacs-rex lambda sly-dcase ((cl-loop for fn in sly-rex-extra-options-functions append (funcall fn)))] 18 (#$ . 87121)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sly-rex lisp-indent-function 2 put edebug-form-spec (sexp (form &optional sexp sexp) &rest (sexp &rest form))] 5) #@162 Return the Common Lisp package in the current context. If `sly-buffer-package' has a value then return that, otherwise search for and read an `in-package' form. (defalias 'sly-current-package #[0 "\206\n\214~\210\301 )\207" [sly-buffer-package sly-find-buffer-package] 1 (#$ . 88588)]) #@139 *Function to use for `sly-find-buffer-package'. The result should be the package-name (a string) or nil if nothing suitable can be found. (defvar sly-find-buffer-package-function 'sly-search-buffer-package (#$ . -88883)) #@70 Figure out which Lisp package the current buffer is associated with. (defalias 'sly-find-buffer-package #[0 " \207" [sly-find-buffer-package-function] 1 (#$ . 89110)]) (byte-code "\300\301\302!!\207" [make-variable-buffer-local (lambda (#1=#:def-tmp-var) (defvar sly-package-cache #1# "Cons of the form (buffer-modified-tick . package)")) nil] 3) (defalias 'sly-search-buffer-package #[0 "\301\212\302\303\304\301#\204\305\303\304\301#\2052\306\304\224\2050\211\203*\307\224\225#\266\202\2022\310\224\225\"\266\202*\207" [case-fold-search t re-search-backward "^[ ]*(\\(cl:\\|common-lisp:\\)?in-package\\>[ ']*\\([^)]+\\)[ ]*)" nil re-search-forward 2 substring-no-properties buffer-substring-no-properties] 6]) #@333 List of stack-tags of waiting on the elisp stack. This is used by the sly-db debugger to decide whether to enter a `recursive-edit', so that if a synchronous `sly-eval' request errors and brings us a Slynk debugger, we can fix the error, invoke a restart and still get the return value of the `sly-eval' as if nothing had happened. (defvar sly--stack-eval-tags nil (#$ . 89846)) #@238 Evaluate SEXP in Slynk's PACKAGE and return the result. If CANCEL-ON-INPUT cancel the request immediately if the user wants to input, and return CANCEL-ON-INPUT-RETVAL. (fn SEXP &optional PACKAGE CANCEL-ON-INPUT CANCEL-ON-INPUT-RETVAL) (defalias 'sly-eval #[1025 "\204\304 \262\305\306\307\310 \"!\211B\311C\312\313\314\"\2162|\315\316 \313\317 \n\n$\n\311\211:\203J@\262\320 !\244\262A\262\2022\211\237\266\203BBBBB!\210\203m\313\321\"\216\322\323\324!\204`*\211 \210\202x\211 \210\325\311\324\"\210\202m\326D0)\327@A\")\207" [sly--stack-eval-tags sly-current-thread sly-rex-extra-options-functions inhibit-quit sly-current-package make-symbol format "sly-result-%d" sly-continuation-counter nil #[0 "\300\301 !\302=?\205 \303\304!\207" [process-status sly-connection open error "Lisp connection closed unexpectedly"] 2] make-closure #[0 "\300\301\240\207" [V0 t] 2] sly-dispatch-event :emacs-rex #[257 "\211\211@A\304\267\202V\211\211G\305U\203\211\242\202\306\307\310GD\"\302\242?\2057\301 \235\2041\311\312\301\300#\210\313\301\314D\"\207\211\315G\305U\204I\306\307\316GD\"\210\302\242?\205U\313\301\311\317D\"\207\320\321\"\207" [V0 V1 V2 sly--stack-eval-tags #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:ok 11 :abort 56)) 1 signal wrong-number-of-arguments (value) error "Reply to nested `sly-eval' request with tag=%S sexp=%S" throw identity nil (_condition) "Synchronous Lisp Evaluation aborted" sly-error "Elisp sly-dcase failed: %S"] 10 "\n\n(fn G8)"] reverse #[0 "\300\301\240\207" [V0 t] 2] t sit-for 30 accept-process-output identity apply] 18 (#$ . 90232)]) #@190 Evaluate SEXP on the superior Lisp and call CONT with the result. CONT is called with the overriding dynamic environment in ENV, an alist of bindings (fn SEXP &optional CONT PACKAGE ENV) (defalias 'sly-eval-async #[1025 "p\302\303\206 \304 \305\306\n  $ \307\211:\2030@\262\310 !\244\262A\262\202\211\237\266\203BBBBB!\266\311\207" [sly-current-thread sly-rex-extra-options-functions sly-dispatch-event :emacs-rex sly-current-package make-closure #[257 "\211\211@A\303\267\202v\211\211G\304U\203\211\242\202\305\306\307GD\"\300\205\\\302q\210\310\311\301\"\310\312\301\"\313\314\300#\315\203N\211A\262\242\316\211A\262\242DDB\262\2024\317\320\237\321\316DDE!\266\204\207\211\211G\304U\203j\211\242\202q\305\306\322GD\"\323\324\"\207\325\326\"\207" [V0 V1 V2 #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:ok 11 :abort 93)) 1 signal wrong-number-of-arguments (result) mapcar car cdr make-closure #[0 "\n\203\300\301!\207\3031\300\301!0\207\304\305@\306=\203'A@;\203'A@\202(\"\207" [V0 V1 debug-on-error (error) sly-message "`sly-eval-async' errored: %s" error] 5] nil quote eval let funcall (condition) sly-message "Evaluation aborted on %s." sly-error "Elisp sly-dcase failed: %S"] 16 "\n\n(fn G12)"] nil reverse :sly-eval-async] 16 (#$ . 91907)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-eval-async lisp-indent-function 1] 4) #@46 Return true if the Slynk connection is open. (defalias 'sly-connected-p #[0 "??\207" [sly-net-processes] 1 (#$ . 93356)]) #@50 Signal an error if we are not connected to Lisp. (defalias 'sly-check-connected #[0 "\300 ?\205\f\301\302\303\304!\"\207" [sly-connected-p error "Not connected. Use `%s' to start a Lisp." substitute-command-keys "\\[sly]"] 4 (#$ . 93485)]) #@13 (fn CONN) (defalias 'sly-debugged-connection-p #[257 "\301 \302\211\211:\203'@\262rq\210)=\211\262?\211\262\203'A\262\202\207" [sly-buffer-connection sly-db-buffers nil] 7 (#$ . 93732)]) #@92 True if Lisp has outstanding requests. Debugged requests are ignored. (fn &optional CONN) (defalias 'sly-busy-p #[256 "\300\206\301 !\302\303\304\"\305 \306\307$\207" [sly-db-debugged-continuations sly-connection cl-remove-if make-closure #[257 "\211\300>\207" [V0] 3 "\n\n(fn ID)"] sly-rex-continuations :key car] 7 (#$ . 93941)]) #@51 Block until the most recent request has finished. (defalias 'sly-sync #[0 "\300 \205\300 @@\301\300 \302\303$\205\304\305\306\"\210\202 \262\207" [sly-rex-continuations cl-find :key car accept-process-output nil 0.1] 6 (#$ . 94284)]) #@33 Check that communication works. (defalias 'sly-ping #[0 "\300\301\302\303!\"\207" [sly-message "%s" sly-eval "PONG"] 4 (#$ . 94531) nil]) #@88 List of (ID . FUNCTION) continuations waiting for RPC results. (fn &optional PROCESS) (defalias 'sly-rex-continuations #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-rex-continuations process-get process-put nil] 6 (#$ . 94675)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-rex-continuations gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-rex-continuations #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-rex-continuations)) store-once ((process-put process 'sly-rex-continuations store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@61 Continuation serial number counter. (fn &optional PROCESS) (defalias 'sly-continuation-counter #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-continuation-counter process-get process-put 0] 6 (#$ . 95492)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-continuation-counter gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-continuation-counter #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-continuation-counter)) store-once ((process-put process 'sly-continuation-counter store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@32 (fn EVENT &optional PROCESS) (defalias 'sly-dispatch-event #[513 "\211\206\306 \307\310\"\206|\211@A\311\267\202r\211\211AAA\203*\211A\262\242\2021\312\313\314GD\"\211A\262\242\211A\262\242\211A\262\242\315 \203R\316 \203R\317\320\"\210\321 \206[\322\323\324\"\324 T\325\324#\210\262\326\327 BBBBB!\210\211B\321 \206\204\322\323\330\"\330 B\325\330#\266\331 \262\266\210\202|\211\211G\332U\203\251\211A\262\242\202\260\312\313\333GD\"\242\211\330 \236\211\203\331\321 \206\303\322\323\330\"\334\330 \"\325\330#\266\211A!\210\331 \202\336\322\335#\262\266\206\202|\211\211A\203\364\211A\262\242\202\373\312\313\336GD\"\211A\262\242\337\211A\262\210\203\312\313\336\340G\\D\"\210\204\341\342!\210\343\"\266\207\202|\211\211G\344U\2039\211A\262\242\202@\312\313\345GD\"\211A\262\242\211A\262\242\211A\262\242\211A\262\242\242\204b\341\342!\210\346&\266\212\202|\211\211G\340U\203\207\211A\262\242\202\216\312\313\347GD\"\211A\262\242\242\204\236\341\342!\210\350#\266\207\202|\211\211G\351U\203\265\211\242\202\274\312\313\352GD\"\326\353D!\266\205\202|\211\211G\354U\203\327\211A\262\242\202\336\312\313\355GD\"\211A\262\242\211A\262\242\242\356$\266\210\202|\211\211G\340U\203\211A\262\242\202\312\313\357GD\"\211A\262\242\242\360#\266\207\202|\211\211G\340U\2032\211A\262\242\2029\312\313\361GD\"\211A\262\242\242\326\362F!\266\207\202|\211\211G\351U\203Z\211\242\202a\312\313\363GD\"\321 \206j\322\323\364\"\325\364#\210\262\266\205\202|\211\211G\351U\203\205\211\242\202\214\312\313\365GD\"\366!\266\205\202|\211\211G\351U\203\241\211\242\202\250\312\313\367GD\"\370 \210\371\372!\373\"\266\205\202|\211\211G\340U\203\307\211A\262\242\202\316\312\313\374GD\"\211A\262\242\242\370 \210\375#\266\207\202|\211\211G\340U\203\364\211A\262\242\202\373\312\313\376GD\"\211A\262\242\242\326\377F!\266\207\202|\211\211G\351U\203\211\242\202%\312\313\201BGD\"\201C!\266\205\202|\211\211G\340U\203@\211A\262\242\202I\312\313\201DGD\"\211A\262\242\242\205g\211\205g\201E\326\377\201FBBB\"\201G\201H\201I\201J%\262\266\207\202|\211\211G\351U\203\212\211\242\202\223\312\313\201KGD\"\201L\351\340\201M$\266\205\202|\211\211G\332U\203\263\211A\262\242\202\274\312\313\201NGD\"\242\204\306\341\342!\210\201O\201P\"\266\206\202|\211\211G\332U\203\344\211A\262\242\202\355\312\313\201QGD\"\242\326\201RE!\266\206\202|\211\211G\332U\203 \211A\262\242\202\312\313\201SGD\"\242\337 \210\337r\201T\201U\201V\201W#!q\210\373p\201X \210\201Y\351!\210\337\211@\201ZA!\210\201[\201\\\201]#!\210eb\210\201^p\373\"\210,\210\322\201_!\266\206\202|\211\211G\332U\203\200\211A\262\242\202\211\312\313\201`GD\"\242\321 \206\224\322\323\330\"\201a\330 \201b\201c$\325\330#\266\322\201d\"\266\206\202|\211\337G\351U\204\306\312\313\201eGD\"\210\266\337\202|\211\211G\351U\203\331\211\242\202\342\312\313\201fGD\"\201g!\266\205\202|\211\211G\332U\203\375\211A\262\242\202\312\313\201hGD\"\242\201i\201j!\206\322\201k#\"\266\206\202|\211\211G\332U\2032\211A\262\242\202;\312\313\201lGD\"\242\326\201mE!\266\206\202|\211\211G\332U\203[\211A\262\242\202d\312\313\201nGD\"\242\322\201o#\266\206\202|\201p\201q\"\266\203)\207" [sly-dispatching-connection major-mode view-read-only standard-output inhibit-read-only sly-buffer-package sly-connection run-hook-with-args-until-success sly-event-hooks #s(hash-table size 26 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:emacs-rex 25 :return 152 :debug-activate 229 :debug 296 :debug-return 374 :emacs-interrupt 424 :read-from-minibuffer 454 :y-or-n-p 503 :emacs-return-string 545 :new-features 589 :indentation-update 632 :eval-no-wait 660 :eval 694 :emacs-return 739 :ed 783 :inspect 815 :background-message 893 :debug-condition 930 :ping 979 :reader-error 1020 :invalid-rpc 1135 :emacs-skipped-packet 1203 :test-delay 1228 :channel-send 1260 :emacs-channel-send 1313 :invalid-channel 1354)) signal wrong-number-of-arguments (form package thread continuation &rest extra-options) sly-use-sigint-for-interrupt sly-busy-p sly-display-oneliner "; pipelined request... %S" sly-current-connection error "Can't access prop %s for no connection" sly-continuation-counter process-put sly-send :emacs-rex sly-rex-continuations sly--refresh-mode-line 2 (value id) remove "Unexpected reply: %S %S" (thread level &optional _ignored) nil 3 cl--assertion-failed thread sly-db--ensure-initialized 6 (thread level condition restarts frames conts) sly-db-setup (thread level stepping) sly-db-exit 1 (thread) :emacs-interrupt 4 (thread tag prompt initial-value) sly-read-from-minibuffer-for-slynk (thread tag question) sly-remote-y-or-n-p (thread tag string) :emacs-return-string (features) sly-lisp-features (info) sly-handle-indentation-update (form) sly-check-eval-in-emacs-enabled eval read t (thread tag form-string) sly-eval-for-lisp (thread tag value) :emacs-return sly-buffer-connection lisp-mode-syntax-table (what) sly-ed (what thread tag) sly-curry (nil) sly--open-inspector :kill-hook :switch :raise (message) sly-temp-message "[background-message] %s" (thread message) sly-message "[debug-condition] %s" (thread tag) :emacs-pong (packet condition) get-buffer-create sly-buffer-name :error :connection erase-buffer sly-popup-buffer-mode set-syntax-table princ format "Invalid protocol message:\n%s\n\n%s" display-buffer "Invalid protocol message" (id message) cl-remove :key car "Invalid rpc: %s" (_pkg) (seconds) sit-for (id msg) sly-channel-send sly-find-channel "Invalid channel id: %S %S" (id msg) :emacs-channel-send (channel-id reason) "Invalid remote channel %s: %s" sly-error "Elisp sly-dcase failed: %S"] 20 (#$ . 96298)]) #@58 Value of `this-command' at time of last `sly-send' call. (defvar sly--send-last-command nil (#$ . 102244)) #@72 Send SEXP directly over the wire on the current connection. (fn SEXP) (defalias 'sly-send #[257 "\302\303 \"\207" [this-command sly--send-last-command sly-net-send sly-connection] 4 (#$ . 102357)]) #@62 Clear all pending continuations and erase connection buffer. (defalias 'sly-reset #[0 "\300 \206 \301\302\303\"\304\303\305#\266\306\307\310 \"\210r\311\312 \206 \301\313!!q\210\314 )\207" [sly-current-connection error "Can't access prop %s for no connection" sly-rex-continuations process-put nil mapc kill-buffer sly-db-buffers process-buffer sly-connection "No connection" erase-buffer] 5 (#$ . 102565) nil]) (defalias 'sly-send-sigint #[0 "\300\301 \302\"\207" [signal-process sly-pid SIGINT] 3 nil nil]) #@59 Alist of the form (ID . CHANNEL). (fn &optional PROCESS) (defalias 'sly-channels #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-channels process-get process-put nil] 6 (#$ . 103084)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-channels gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-channels #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-channels)) store-once ((process-put process 'sly-channels store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@56 Channel serial number counter. (fn &optional PROCESS) (defalias 'sly-channels-counter #[256 "\211\206 \300 \206 \301\302\303\"\304\303\"\206\305\303\306#\210\306\207" [sly-current-connection error "Can't access prop %s for no connection" sly-channels-counter process-get process-put 0] 6 (#$ . 103819)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-channels-counter gv-expander #[385 "\300\301\302$\207" [gv--defsetter sly-channels-counter #[513 "\300\301\302\303BBD\304DD\305BB\207" [let process or ((sly-current-connection) (error "Can't access prop %s for no connection" 'sly-channels-counter)) store-once ((process-put process 'sly-channels-counter store-once) store-once)] 7 "\n\n(fn STORE &optional PROCESS)"]] 7 "\n\n(fn DO &rest ARGS)"]] 4) #@70 compiler-macro for inlining `sly-channel-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-channel-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-channel-p (and (memq (type-of cl-x) cl-struct-sly-channel-tags) t)) nil] 9 (#$ . 104597)]) (put 'sly-channel-p 'compiler-macro 'sly-channel-p--cmacro) #@13 (fn CL-X) (defalias 'sly-channel-p #[257 "\301!>\205 \302\207" [cl-struct-sly-channel-tags type-of t] 3 (#$ . 104939)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put sly-channel-p side-effect-free error-free put sly-channel cl-deftype-satisfies] 5) #@79 compiler-macro for inlining `sly-channel.operations'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-channel\.operations--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-channel\.operations (progn (or (sly-channel-p cl-x) (signal 'wrong-type-argument (list 'sly-channel cl-x))) (aref cl-x 1))) nil] 9 (#$ . 105219)]) (put 'sly-channel\.operations 'compiler-macro 'sly-channel\.operations--cmacro) #@67 Access slot "operations" of `sly-channel' struct CL-X. (fn CL-X) (defalias 'sly-channel\.operations #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-channel-tags type-of signal wrong-type-argument sly-channel 1] 5 (#$ . 105656)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-channel\.operations side-effect-free t] 4) #@73 compiler-macro for inlining `sly-channel.name'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-channel\.name--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-channel\.name (progn (or (sly-channel-p cl-x) (signal 'wrong-type-argument (list 'sly-channel cl-x))) (aref cl-x 2))) nil] 9 (#$ . 106015)]) (put 'sly-channel\.name 'compiler-macro 'sly-channel\.name--cmacro) #@61 Access slot "name" of `sly-channel' struct CL-X. (fn CL-X) (defalias 'sly-channel\.name #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-channel-tags type-of signal wrong-type-argument sly-channel 2] 5 (#$ . 106422)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-channel\.name side-effect-free t] 4) #@71 compiler-macro for inlining `sly-channel.id'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-channel\.id--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-channel\.id (progn (or (sly-channel-p cl-x) (signal 'wrong-type-argument (list 'sly-channel cl-x))) (aref cl-x 3))) nil] 9 (#$ . 106763)]) (put 'sly-channel\.id 'compiler-macro 'sly-channel\.id--cmacro) #@59 Access slot "id" of `sly-channel' struct CL-X. (fn CL-X) (defalias 'sly-channel\.id #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-channel-tags type-of signal wrong-type-argument sly-channel 3] 5 (#$ . 107160)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-channel\.id side-effect-free t] 4) #@74 compiler-macro for inlining `sly-channel.plist'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-channel\.plist--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-channel\.plist (progn (or (sly-channel-p cl-x) (signal 'wrong-type-argument (list 'sly-channel cl-x))) (aref cl-x 4))) nil] 9 (#$ . 107495)]) (put 'sly-channel\.plist 'compiler-macro 'sly-channel\.plist--cmacro) #@62 Access slot "plist" of `sly-channel' struct CL-X. (fn CL-X) (defalias 'sly-channel\.plist #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-channel-tags type-of signal wrong-type-argument sly-channel 4] 5 (#$ . 107907)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put sly-channel\.plist side-effect-free t defalias copy-sly-channel copy-sequence] 4) #@104 compiler-macro for inlining `make-sly-channel'. (fn CL-WHOLE &cl-quote &key OPERATIONS NAME ID PLIST) (defalias 'make-sly-channel--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\211\203D\211@\305>\203,\211AA\262\202\306>A@\203;\307\262\202\310\311@\"\210\202\210\312\313\314\307 \307    & \207" [plist-member :operations :name :id :plist (:operations :name :id :plist :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:operations :name :id :plist)" cl--defsubst-expand (operations name id plist) (cl-block make-sly-channel (record 'sly-channel operations name id plist))] 16 (#$ . 108302)]) (put 'make-sly-channel 'compiler-macro 'make-sly-channel--cmacro) #@84 Constructor for objects of type `sly-channel'. (fn &key OPERATIONS NAME ID PLIST) (defalias 'make-sly-channel #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\211\203D\211@\305>\203,\211AA\262\202\306>A@\203;\307\262\202\310\311@\"\210\202\210\312\313%\207" [plist-member :operations :name :id :plist (:operations :name :id :plist :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:operations :name :id :plist)" record sly-channel] 11 (#$ . 109036)]) (byte-code "\300\301\302\303#\300\207" [function-put make-sly-channel side-effect-free t] 4) #@94 compiler-macro for inlining `sly-make-channel%'. (fn CL-WHOLE-ARG OPERATIONS NAME ID PLIST) (defalias 'sly-make-channel%--cmacro #[1285 "\300\301\302\303\211\211    & \207" [cl--defsubst-expand (operations name id plist) (cl-block sly-make-channel% (record 'sly-channel operations name id plist)) nil] 15 (#$ . 109647)]) (put 'sly-make-channel% 'compiler-macro 'sly-make-channel%--cmacro) #@79 Constructor for objects of type `sly-channel'. (fn OPERATIONS NAME ID PLIST) (defalias 'sly-make-channel% #[1028 "\300\301%\207" [record sly-channel] 10 (#$ . 110047)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put sly-make-channel% side-effect-free t cl-struct-define sly-channel nil cl-structure-object record ((cl-tag-slot) (operations) (name) (id) (plist)) cl-struct-sly-channel-tags] 11) #@34 (fn OPERATIONS &optional NAME) (defalias 'sly-make-channel #[513 "\300 \206 \301\302\303\"\303 T\304\303#\210\262\305\306\307%B\300 \206'\301\302\310\"\310 B\304\310#\266\207" [sly-current-connection error "Can't access prop %s for no connection" sly-channels-counter process-put record sly-channel nil sly-channels] 11 (#$ . 110496)]) #@16 (fn CHANNEL) (defalias 'sly-close-channel #[257 "\301!>\204\302\303\304D\"\210\211\211\305\306I\266\301!>\204%\302\303\304D\"\210\211\307H\310 \205/\311 \236\211\203I\310 \206=\312\313\311\"\314\311 \"\315\311#\210\207\312\316\"\207" [cl-struct-sly-channel-tags type-of signal wrong-type-argument sly-channel 1 closed-channel 3 sly-current-connection sly-channels error "Can't access prop %s for no connection" delete process-put "Can't close invalid channel: %s"] 8 (#$ . 110854)]) #@11 (fn ID) (defalias 'sly-find-channel #[257 "\211\300 \236A\207" [sly-channels] 3 (#$ . 111362)]) #@24 (fn CHANNEL MESSAGE) (defalias 'sly-channel-send #[514 "\301\302@\303!>\204\304\305\306D\"\210\307H\"\2064\310\311@\303!>\2040\304\305\306D\"\210\312H#A#\207" [cl-struct-sly-channel-tags apply gethash type-of signal wrong-type-argument sly-channel 1 error "Unsupported operation %S for channel %d" 3] 10 (#$ . 111466)]) #@27 (fn CHANNEL PROP VALUE) (defalias 'sly-channel-put #[771 "\301!>\204\302\303\304D\"\210\211\305\306\301!>\204$\302\303\304 D\"\210\305H#I\207" [cl-struct-sly-channel-tags type-of signal wrong-type-argument sly-channel 4 plist-put] 11 (#$ . 111813)]) #@21 (fn CHANNEL PROP) (defalias 'sly-channel-get #[514 "\301\302!>\204\303\304\305D\"\210\306H\"\207" [cl-struct-sly-channel-tags plist-get type-of signal wrong-type-argument sly-channel 4] 7 (#$ . 112088)]) #@13 (fn TYPE) (defalias 'sly-channel-method-table-name #[257 "\300\301\302\"!\207" [intern format "sly-%s-channel-methods"] 5 (#$ . 112307)]) #@13 (fn NAME) (defalias 'sly-define-channel-type '(macro . #[257 "\300!\301\302BB\207" [sly-channel-method-table-name defvar ((make-hash-table :size 10))] 5 (#$ . 112454)])) (byte-code "\300\301\302\303#\300\207" [function-put sly-define-channel-type lisp-indent-function defun] 4) #@36 (fn TYPE METHOD ARGS &rest BODY) (defalias 'sly-define-channel-method '(macro . #[899 "\300\301D\302\303BBB\304!F\207" [puthash quote lambda self sly-channel-method-table-name] 9 (#$ . 112742)])) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sly-define-channel-method lisp-indent-function 3 put edebug-form-spec (&define sexp name lambda-list def-body)] 5) #@23 (fn CHANNEL-ID MSG) (defalias 'sly-send-to-remote-channel #[514 "\300\301E!\207" [sly-dispatch-event :emacs-channel-send] 6 (#$ . 113132)]) #@50 *Log protocol events to the *sly-events* buffer. (defvar sly-log-events t (#$ . -113282)) #@69 Record the fact that EVENT occurred in PROCESS. (fn EVENT PROCESS) (defalias 'sly-log-event #[514 "\205Hr\301!q\210\302 \303V\203!\302 \304\245b\210\305\306\307\310#\210e`|\210db\210n\204+\311c\210;\203>\312\313\"\203>\314!\210\202E\212\315p\"\210)db)\207" [sly-log-events sly--events-buffer buffer-size 100000 2 re-search-forward "^(" nil t "\n" string-match "^;" insert-before-markers sly-pprint-event] 6 (#$ . 113378)]) #@79 Pretty print EVENT in BUFFER with limited depth and width. (fn EVENT BUFFER) (defalias 'sly-pprint-event #[514 "\303\304\305\3061\307\"0\202\310\"\262+\207" [pp-escape-newlines print-level print-length 20 6 t (error) pp print] 6 (#$ . 113820)]) #@54 Return or create the event log buffer. (fn PROCESS) (defalias 'sly--events-buffer #[257 "\301\302\"\303!\203\211\206M\304\305\306\307\310!\203 \311D\202'\312\313\314\"D#!r\211q\210\315 \210\316\317!\2039\317 \210\320\300!\210\321\322!\210)\323\302#\210\211\262\207" [sly-buffer-connection process-get sly--events-buffer buffer-live-p get-buffer-create apply sly-buffer-name :events sly-connection-name :connection :suffix format "%s" buffer-disable-undo fboundp lisp-data-mode make-local-variable sly-mode 1 process-put] 10 (#$ . 114084)]) #@56 Pop to the SLY events buffer for PROCESS (fn PROCESS) (defalias 'sly-pop-to-events-buffer #[257 "\300\301!!\207" [pop-to-buffer sly--events-buffer] 4 (#$ . 114650) (byte-code "\300 C\207" [sly-current-connection] 1)]) #@109 Switch to most recent buffer in MODE, a major-mode symbol. With prefix argument, prompt for MODE (fn MODE) (defalias 'sly-switch-to-most-recent #[257 "\301 \302\211\211:\203A@\262rq\210)=\2036p=\2046\303\304\305!\"\2046\306!\210\262\302\211\262\2027\307\203AA\262\202\207" [major-mode buffer-list nil string-match "^ " buffer-name pop-to-buffer t] 9 (#$ . 114877) (byte-code "\203\301\302\303\304\305\306\"\307\310$!\202\311C\207" [current-prefix-arg intern sly-completing-read "Switch to most recent buffer in what mode? " mapcar symbol-name (lisp-mode emacs-lisp-mode) nil t lisp-mode] 6)]) #@58 Forget any outgoing events for the PROCESS (fn PROCESS) (defalias 'sly-forget-pending-events #[257 "\211\211\206\300 \206\301\302\303\"\304\303\305#\210\305\207" [sly-current-connection error "Can't access prop %s for no connection" sly-rex-continuations process-put nil] 7 (#$ . 115504) (byte-code "\300 C\207" [sly-current-connection] 1)]) #@39 Kill and restart the Lisp subprocess. (defalias 'sly-restart-inferior-lisp #[0 "\300 \204\f\301\302\303\304\211$\210\305\306 \307\310#\207" [sly-inferior-process cl--assertion-failed (sly-inferior-process) "No inferior lisp process" nil sly-quit-lisp-internal sly-connection sly-restart-sentinel t] 5 (#$ . 115858) nil]) #@111 When CONNECTION dies, start a similar inferior lisp process. Also rearrange windows. (fn CONNECTION MESSAGE) (defalias 'sly-restart-sentinel #[514 "\300!\204\301\302\303C\303$\210\304!\305!\306\307!!\310\311\"\210\312\313\314\315\"\314\316\"\314\317\"\303%\"\207" [process-status cl--assertion-failed (process-status connection) nil sly-inferior-process sly-inferior-lisp-args buffer-name process-buffer sly-net-close "Restarting inferior lisp process" sly-inferior-connect sly-start-lisp plist-get :program :program-args :env] 12 (#$ . 116187)]) #@60 *When non-nil annotate buffers with compilation notes etc. (defvar sly-highlight-compiler-notes t (#$ . -116756)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313& \207" [custom-declare-variable sly-compilation-finished-hook funcall function #[0 "\300\207" [(sly-maybe-show-compilation-log)] 1] "Hook called after compilation.\nEach function is called with four arguments (SUCCESSP NOTES BUFFER LOADP)\nSUCCESSP indicates if the compilation was successful.\nNOTES is a list of compilation notes.\nBUFFER is the buffer just compiled, or nil if a string was compiled.\nLOADP is the value of the LOAD flag passed to `sly-compile-file', or t\nif a string." :group sly-mode :type hook :options (sly-maybe-show-compilation-log sly-show-compilation-log sly-maybe-show-xrefs-for-notes sly-goto-first-note)] 10) #@56 When non-nil compile with these optimization settings. (defvar sly-compilation-policy nil (#$ . 117579)) #@58 Return the policy for the prefix argument ARG. (fn ARG) (defalias 'sly-compute-policy #[257 "\301\302!\204\n\207\211\211\303V\262\203\304\303\305#BC\207\306=\203$\307\207\310\303\311!\305#BC\207" [sly-compilation-policy #[771 "W\203\207V\203\207\207" [] 5 "\n\n(fn MIN N MAX)"] prefix-numeric-value 0 cl:debug 3 - ((cl:speed . 3)) cl:speed abs] 8 (#$ . 117690)]) #@83 compiler-macro for inlining `sly-compilation-result.tag'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-compilation-result\.tag--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-compilation-result\.tag (progn (car cl-x))) nil] 9 (#$ . 118083)]) (put 'sly-compilation-result\.tag 'compiler-macro 'sly-compilation-result\.tag--cmacro) #@71 Access slot "tag" of `sly-compilation-result' struct CL-X. (fn CL-X) (defalias 'sly-compilation-result\.tag #[257 "\211@\207" [] 2 (#$ . 118456)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-compilation-result\.tag side-effect-free t] 4) #@85 compiler-macro for inlining `sly-compilation-result.notes'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-compilation-result\.notes--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-compilation-result\.notes (progn (nth 1 cl-x))) nil] 9 (#$ . 118714)]) (put 'sly-compilation-result\.notes 'compiler-macro 'sly-compilation-result\.notes--cmacro) #@73 Access slot "notes" of `sly-compilation-result' struct CL-X. (fn CL-X) (defalias 'sly-compilation-result\.notes #[257 "\211A@\207" [] 2 (#$ . 119099)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-compilation-result\.notes side-effect-free t] 4) #@88 compiler-macro for inlining `sly-compilation-result.successp'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-compilation-result\.successp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-compilation-result\.successp (progn (nth 2 cl-x))) nil] 9 (#$ . 119364)]) (put 'sly-compilation-result\.successp 'compiler-macro 'sly-compilation-result\.successp--cmacro) #@76 Access slot "successp" of `sly-compilation-result' struct CL-X. (fn CL-X) (defalias 'sly-compilation-result\.successp #[257 "\3008\207" [2] 3 (#$ . 119764)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-compilation-result\.successp side-effect-free t] 4) #@88 compiler-macro for inlining `sly-compilation-result.duration'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-compilation-result\.duration--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-compilation-result\.duration (progn (nth 3 cl-x))) nil] 9 (#$ . 120039)]) (put 'sly-compilation-result\.duration 'compiler-macro 'sly-compilation-result\.duration--cmacro) #@76 Access slot "duration" of `sly-compilation-result' struct CL-X. (fn CL-X) (defalias 'sly-compilation-result\.duration #[257 "\3008\207" [3] 3 (#$ . 120439)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-compilation-result\.duration side-effect-free t] 4) #@85 compiler-macro for inlining `sly-compilation-result.loadp'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-compilation-result\.loadp--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-compilation-result\.loadp (progn (nth 4 cl-x))) nil] 9 (#$ . 120714)]) (put 'sly-compilation-result\.loadp 'compiler-macro 'sly-compilation-result\.loadp--cmacro) #@73 Access slot "loadp" of `sly-compilation-result' struct CL-X. (fn CL-X) (defalias 'sly-compilation-result\.loadp #[257 "\3008\207" [4] 3 (#$ . 121099)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-compilation-result\.loadp side-effect-free t] 4) #@88 compiler-macro for inlining `sly-compilation-result.faslfile'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-compilation-result\.faslfile--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-compilation-result\.faslfile (progn (nth 5 cl-x))) nil] 9 (#$ . 121365)]) (put 'sly-compilation-result\.faslfile 'compiler-macro 'sly-compilation-result\.faslfile--cmacro) #@76 Access slot "faslfile" of `sly-compilation-result' struct CL-X. (fn CL-X) (defalias 'sly-compilation-result\.faslfile #[257 "\3008\207" [5] 3 (#$ . 121765)]) (byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306& \207" [function-put sly-compilation-result\.faslfile side-effect-free t cl-struct-define sly-compilation-result nil list ((tag) (notes) (successp) (duration) (loadp) (faslfile)) cl-struct-sly-compilation-result-tags] 11) #@53 The result of the most recently issued compilation. (defvar sly-last-compilation-result nil (#$ . 122223)) #@50 Return all compiler notes, warnings, and errors. (defalias 'sly-compiler-notes #[0 "A@\207" [sly-last-compilation-result] 1 (#$ . 122336)]) #@588 Compile and load the buffer's file and highlight compiler notes. With (positive) prefix argument the file is compiled with maximal debug settings (`C-u'). With negative prefix argument it is compiled for speed (`M--'). If a numeric argument is passed set debug or speed settings to it depending on its sign. Each source location that is the subject of a compiler note is underlined and annotated with the relevant information. The commands `sly-next-note' and `sly-previous-note' can be used to navigate between compiler notes and to display their full details. (fn &optional POLICY) (defalias 'sly-compile-and-load-file #[256 "\300\301\302!\"\207" [sly-compile-file t sly-compute-policy] 5 (#$ . 122484) "P"]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable sly-compile-file-options funcall function #[0 "\300\207" [nil] 1] "Plist of additional options that C-c C-k should pass to Lisp.\nCurrently only :fasl-directory is supported." :group sly-lisp :type (plist :key-type symbol :value-type (file :must-match t))] 8) #@153 Compile current buffer's file and highlight resulting compiler notes. See `sly-compile-and-load-file' for further details. (fn &optional LOAD POLICY) (defalias 'sly-compile-file #[512 "\204\n\303\304\305 \"\210\306 \210\307 \203# \203 \310\311\312\300 \"!\203#\313 \210\314\300 !\315\316\n\317D\"!\320\321\2058\322\323!BBB\324\"\210\325\326\"\207" [buffer-file-name compilation-ask-about-save sly-compile-file-options error "Buffer %s is not associated with a file." buffer-name check-parens buffer-modified-p sly-y-or-n-p format "Save file %s? " save-buffer sly-to-lisp-filename sly-simplify-plist append :policy sly-eval-async slynk:compile-file-for-emacs t sly-hack-quotes #[257 "\300p\"\207" [sly-compilation-finished] 4 "\n\n(fn RESULT)"] sly-message "Compiling %s..."] 10 (#$ . 123553) nil]) #@16 (fn ARGLIST) (defalias 'sly-hack-quotes #[257 "\211\300\211:\203@\262\301DB\262A\262\202\211\237\207" [nil quote] 6 (#$ . 124372)]) #@14 (fn PLIST) (defalias 'sly-simplify-plist #[257 "\211\300\211\211\211:\2032\262\211A\262\242\262@\262\301\204\"\300\202%D!\244\262AA\262\202\211\237\207" [nil reverse] 9 (#$ . 124524)]) #@311 Compile the current toplevel form. With (positive) prefix argument the form is compiled with maximal debug settings (`C-u'). With negative prefix argument it is compiled for speed (`M--'). If a numeric argument is passed set debug or speed settings to it depending on its sign. (fn &optional RAW-PREFIX-ARG) (defalias 'sly-compile-defun #[256 "\301!\302 \203\303\304 \305 \"\202\306\303\307 \")\207" [sly-compilation-policy sly-compute-policy use-region-p sly-compile-region region-beginning region-end apply sly-region-for-defun-at-point] 4 (#$ . 124738) "P"]) #@60 Function called by `sly-compile-region' to do actual work. (defvar sly-compile-region-function 'sly-compile-region-as-string (#$ . 125314)) #@37 Compile the region. (fn START END) (defalias 'sly-compile-region #[514 "\301 \210\"\207" [sly-compile-region-function sly-connection] 5 (#$ . 125460) "r"]) #@18 (fn START END) (defalias 'sly-compile-region-as-string #[514 "\300\"\210\301\302\"\"\207" [sly-flash-region sly-compile-string buffer-substring-no-properties] 6 (#$ . 125626)]) #@28 (fn STRING START-OFFSET) (defalias 'sly-compile-string #[514 "\301!\302\303\304 \305D\306 \205\307\306 !\305D\257\310\"\207" [sly-compilation-policy sly-compilation-position sly-eval-async slynk:compile-string-for-emacs buffer-name quote buffer-file-name sly-to-lisp-filename #[257 "\300\301\"\207" [sly-compilation-finished nil] 4 "\n\n(fn RESULT)"]] 11 (#$ . 125816)]) #@21 (fn START-OFFSET) (defalias 'sly-compilation-position #[257 "\212\211b\210\300 iT)D\301D\302BD\207" [line-number-at-pos :position :line] 5 (#$ . 126203)]) (byte-code "\300\301\302\303\304DD\305\306\307%\207" [custom-declare-variable sly-load-failed-fasl funcall function #[0 "\300\207" [never] 1] "Which action to take when COMPILE-FILE set FAILURE-P to T.\nNEVER doesn't load the fasl\nALWAYS loads the fasl\nASK asks the user." :type (choice (const never) (const always) (const ask))] 6) (defalias 'sly-load-failed-fasl-p #[0 "\301\267\202\302\207\303\207\304\305!\207\306\307\310#\205\302\207" [sly-load-failed-fasl #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (never 6 always 8 ask 10)) nil t sly-y-or-n-p "Compilation failed. Load fasl file anyway? " error "cl-ecase failed: %s, %s" (never always ask)] 4]) #@40 (fn RESULT BUFFER &optional MESSAGE) (defalias 'sly-compilation-finished #[770 "A@\3028\3038\3048\3058\306\204\202$\205$\n?\206+\n%\210 \2037\307!\210\211\203N\203N\204H\310 \203N\311\312D!\210\313\314\n%\207" [sly-last-compilation-result sly-highlight-compiler-notes 3 2 5 4 sly-show-note-counts sly-highlight-notes sly-load-failed-fasl-p sly-eval-async slynk:load-file run-hook-with-args sly-compilation-finished-hook] 14 (#$ . 127072)]) #@52 (fn NOTES SECS SUCCESSP LOADP &optional MESSAGE) (defalias 'sly-show-note-counts #[1284 "\300\203 \203 \301\202\203\302\202\303\304\305\"\204\"\306\202#\307\310\311\312\313 \314\315#\316\"\317#\205:\320\321 \"\260!\207" [sly-message "Compiled and loaded" "Compilation finished" sly-add-face font-lock-warning-face "Compilation failed" ". (No warnings)" ": " mapconcat #[257 "\211\211\203\211A\262\242\202\300\301\302GD\"G\303\304\305!\306U\203'\307\202(\310$\207" [signal wrong-number-of-arguments (sev . notes) format "%d %s%s" sly-severity-label 1 "" "s"] 10 "\n\n(fn MSGS)"] sort sly-alistify sly-note\.severity eq #[514 "\300@@\"\207" [sly-severity<] 5 "\n\n(fn X Y)"] " " format " [%.2f secs]"] 15 (#$ . 127558)]) #@75 Highlight compiler notes, warnings, and errors in the buffer. (fn NOTES) (defalias 'sly-highlight-notes #[257 "\300\301C\302\303#\216\211\304 \240\210\305\306\300\"\210\212\214~\210\307ed\"\210\310\311\"+\207" ["Highlighting notes..." nil make-closure #[0 "\300\205\301\242\203\302\303\301\242\"\207\302\304!\207" [V0 V1 message #1="%s" nil] 3] current-message message #1# sly-remove-notes mapc sly--add-in-buffer-note] 7 (#$ . 128324) (byte-code "\300 C\207" [sly-compiler-notes] 1)]) #@17 (fn LOCATION) (defalias 'sly-recompile-location #[257 "\212\300!\210\301 )\207" [sly-move-to-source-location sly-compile-defun] 3 (#$ . 128824)]) #@23 (fn LOCATIONS CONT) (defalias 'sly-recompile-locations #[514 "\301\302\303\304\211:\203Q@\262\212\305!\210\306 \211G\307U\203&\211A\262\242\202-\310\311\312GD\"\242\313\"\314 \315 \316 \205A\317\316 !\257\266\203)B\262A\262\202\211\237\266\203D\303DE\"\207" [sly-compilation-policy sly-eval-async slynk:compile-multiple-strings-for-emacs quote nil sly-move-to-source-location sly-region-for-defun-at-point 2 signal wrong-number-of-arguments (start end) buffer-substring-no-properties buffer-name sly-current-package buffer-file-name sly-to-lisp-filename] 17 (#$ . 128979)]) #@125 Return a single-line version of STRING. Each newlines and following indentation is replaced by a single space. (fn STRING) (defalias 'sly-one-line-ify #[257 "\300\301\302\"r\211q\210\303\304\"\216c\210eb\210\305\306\307\302#\203\"\310\311!\210\202\312 *\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] re-search-forward "\n[\n ]*" nil replace-match " " buffer-string] 6 (#$ . 129587)]) #@14 (fn NOTES) (defalias 'sly-xref--get-xrefs-for-notes #[257 "\300\211\203S\211@\301\302\"\303A\236A@\304\"\305\306\301\307\"\310\301\311\"!#D\203J\203<\211AB\241\266\202LCBB\266\203\262\266A\266\202\202\210\207" [nil cl-getf :location :file assoc format "%s: %s" :severity sly-one-line-ify :message] 14 (#$ . 130056)]) #@103 Show the compiler notes NOTES if they come from more than one file. (fn SUCCESSP NOTES BUFFER LOADP) (defalias 'sly-maybe-show-xrefs-for-notes #[1028 "\300!\211A\205\301\302\303\304 $\207" [sly-xref--get-xrefs-for-notes sly-xref--show-results definition "Compiler notes" sly-current-package] 10 (#$ . 130415)]) #@98 Display the log on failed compilations or if NOTES is non-nil. (fn SUCCESSP NOTES BUFFER LOADP) (defalias 'sly-maybe-show-compilation-log #[1028 "\300\205 \301%\207" [sly-show-compilation-log :hidden] 10 (#$ . 130737)]) #@99 Create and display the compilation log buffer. (fn SUCCESSP NOTES BUFFER LOADP &optional SELECT) (defalias 'sly-show-compilation-log #[1284 "\306r\307\310\311!!q\210\312p\313 \210\314 \210\306\211\315!\210\316$\210\317\2034\320\2025\321\322\261\210\211\323=\204a\324p\314=?\205I\312\"\203W\211\203W\325\312\"\210\210\211\326=\203a\327 \210p,\207" [major-mode view-read-only standard-output inhibit-read-only sly-buffer-package sly-buffer-connection nil get-buffer-create sly-buffer-name :compilation t erase-buffer compilation-mode set-syntax-table sly--insert-compilation-log "Compilation " "successful" "failed" "." :hidden display-buffer select-window :raise raise-frame lisp-mode-syntax-table] 13 (#$ . 130971) (byte-code "\300 C\207" [sly-compiler-notes] 1)]) #@87 Hash-table (NOTE -> (BUFFER POSITION)) for finding notes in the SLY compilation log (defvar sly-compilation-log--notes (make-hash-table) (#$ . 131773)) #@91 Insert NOTES in format suitable for `compilation-mode'. (fn SUCCESSP NOTES BUFFER LOADP) (defalias 'sly--insert-compilation-log #[1028 "\306!\210\307!\211@A@\310\311C\312\313#\216\211\314 \240\210\315\316\310\"\210\317\211\320\321 \nG#c\210\311\211\211\211:\203\206@\262\322@ \"\262`\262\311:\203`@\262\323pB#\210A\262\202G\266\324\325!\"\326\261\210\327!\210\330c\210\331`\332D#\210A\262\311\262\2021\266*\333\304!\210\334p\211)\207" [sly-compilation-log--notes inhibit-modification-hooks inhibit-read-only default-directory compilation-skip-threshold next-error-last-buffer clrhash sly-group-and-sort-notes "Preparing compilation log..." nil make-closure #[0 "\300\205\301\242\203\302\303\301\242\"\207\302\304!\207" [V0 V1 message #1="%s" nil] 3] current-message message #1# t format "cd %s\n%d compiler notes:\n\n" gethash puthash sly--compilation-note-group-button sly-canonicalized-location-to-string ":" sly-insert-note-group "\n" add-text-properties field make-local-variable 0] 20 (#$ . 131933)]) #@50 Insert a group of compiler messages. (fn NOTES) (defalias 'sly-insert-note-group #[257 "\300c\210\211\211\2057\211@\301\302\303!!\304\261\210`\305!c\210\306!\211\203&\300\261\210\210\307\310\"\266\300c\210A\266\202\202\207" ["\n" " " sly-severity-label sly-note\.severity ": " sly-note\.message sly-note\.source-context sly-indent-block 4] 7 (#$ . 132994)]) #@77 If the region back to START isn't a one-liner indent it. (fn START COLUMN) (defalias 'sly-indent-block #[514 "\300 W\205\212b\210\301c\210)\302`#\207" [line-beginning-position "\n" sly-indent-rigidly] 6 (#$ . 133373)]) #@131 Return a list (FILE LINE COLUMN) for sly-location LOCATION. This is quite an expensive operation so use carefully. (fn LOCATION) (defalias 'sly-canonicalized-location #[257 "\212\300\301!!\210\212\302!\210\303 \206\304 \214~\210\305 )iTE*\207" [sly-goto-location-buffer sly-location\.buffer sly-move-to-source-location buffer-file-name buffer-name line-number-at-pos] 4 (#$ . 133606)]) #@12 (fn LOC) (defalias 'sly-canonicalized-location-to-string #[257 "\211\203E\211\211G\300U\203\211A\262\242\202\301\302\303GD\"\211A\262\242\242\304\305\204.\306\202A\307!\211GGW\205;\211\262\206A$\207\304\310!\207" [3 signal wrong-number-of-arguments (filename line col) format "%s:%d:%d" "" file-relative-name "Unknown location"] 10 (#$ . 134003)]) #@81 First sort, then group NOTES according to their canonicalized locs. (fn NOTES) (defalias 'sly-group-and-sort-notes #[257 "\301\302\303\"\304\305\306\"\"\210\307\305\310\"\311\211E\312\305\313#\"\266\202\"D\207" [most-negative-fixnum make-hash-table :test eq mapc make-closure #[257 "\301!\302!\205\303\304!\300#\207" [V0 sly-note\.location sly-location-p puthash sly-canonicalized-location] 6 "\n\n(fn NOTE)"] sly-group-similar #[514 "\301\300\302#\301\300\303#\232\207" [V0 gethash nil t] 7 "\n\n(fn N1 N2)"] "" sort #[514 "\302\300\301#\211G\303U\203\211A\262\242\202\304\305\306GD\"\211A\262\242\242\302\300\301#\211G\303U\2039\211A\262\242\202@\304\305\307GD\"\211A\262\242\242\231\203S\266\310\207\231\203^\266\311\207W\203h\266\310\207V\203r\266\311\207W\207" [V0 V1 gethash 3 signal wrong-number-of-arguments (filename1 line1 col1) (filename2 line2 col2) t nil] 12 "\n\n(fn N1 N2)"]] 12 (#$ . 134382)]) #@13 (fn NOTE) (defalias 'sly-note\.severity #[257 "\300\301\"\207" [plist-get :severity] 4 (#$ . 135358)]) #@13 (fn NOTE) (defalias 'sly-note\.message #[257 "\300\301\"\207" [plist-get :message] 4 (#$ . 135470)]) #@13 (fn NOTE) (defalias 'sly-note\.source-context #[257 "\300\301\"\207" [plist-get :source-context] 4 (#$ . 135580)]) #@13 (fn NOTE) (defalias 'sly-note\.location #[257 "\300\301\"\207" [plist-get :location] 4 (#$ . 135704)]) #@17 (fn SEVERITY) (defalias 'sly-severity-label #[257 "\300\301!\302\"\207" [cl-subseq symbol-name 1] 4 (#$ . 135816)]) #@227 Choose the start and end points for an overlay over NOTE. If the location's sexp is a list spanning multiple lines, then the region around the first element is used. Return nil if there's no useful source location. (fn NOTE) (defalias 'sly-choose-overlay-region #[257 "\300!\211\205u\211\211@A\301\267\202o\211\302G\303U\204#\304\305\306GD\"\210\266\302\207\211\211G\307U\2038\211A\262\242\202?\304\305\310GD\"\211A\262\242\302@\311=\203Q\266\302\207\312 !\313=\203_\314!\207\315\232\203jdSdD\207\316!\207\317\320\"\266\203\207" [sly-note\.location #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:error 18 :location 39)) nil 1 signal wrong-number-of-arguments (_) 3 (file pos _hints) :source-form sly-note\.severity :read-error sly-choose-overlay-for-read-error (:eof) sly-choose-overlay-for-sexp sly-error "Elisp sly-dcase failed: %S"] 11 (#$ . 135942)]) #@17 (fn LOCATION) (defalias 'sly-choose-overlay-for-read-error #[257 "\300!\212\211b\210\301 \203\302 \303 D\202\211TD)\207" [sly-location-offset sly-symbol-at-point sly-symbol-start-pos sly-symbol-end-pos] 4 (#$ . 136872)]) #@17 (fn LOCATION) (defalias 'sly-choose-overlay-for-sexp #[257 "\300!\210\301\302w\210`\3031\304 0\210\202\210\305`\"\203 \211`D\207\211TTb\210\30612\307\310!0\210\2023\210`D\207" [sly-move-to-source-location "'#`" nil (error) sly-forward-sexp sly-same-line-p (error) forward-sexp 1] 5 (#$ . 137107)]) #@82 Return t if buffer positions POS1 and POS2 are on the same line. (fn POS1 POS2) (defalias 'sly-same-line-p #[514 "\212^b\210]\300 X)\207" [line-end-position] 4 (#$ . 137423)]) (defvar sly-severity-face-plist (list :error 'sly-error-face :read-error 'sly-error-face :warning 'sly-warning-face :redefinition 'sly-style-warning-face :style-warning 'sly-style-warning-face :note 'sly-note-face)) #@77 Return the name of the font-lock face representing SEVERITY. (fn SEVERITY) (defalias 'sly-severity-face #[257 "\301\"\206 \302\303\"\207" [sly-severity-face-plist plist-get error "No face for: %S"] 4 (#$ . 137826)]) (defvar sly-severity-order '(:note :style-warning :redefinition :warning :error :read-error)) #@63 Return true if SEV1 is less severe than SEV2. (fn SEV1 SEV2) (defalias 'sly-severity< #[514 "\301\"\301\"W\207" [sly-severity-order cl-position] 6 (#$ . 138147)]) #@189 Move forward through a sourcepath from a fixed position. The point is assumed to already be at the outermost sexp, making the first element of the source-path redundant. (fn SOURCE-PATH) (defalias 'sly-forward-positioned-source-path #[257 "\3001\301 \210\302 0\210\202\210\211A\211\205\303\304!\210\305!\207" [(error) sly-forward-sexp beginning-of-defun down-list 1 sly-forward-source-path] 4 (#$ . 138322)]) #@20 (fn SOURCE-PATH) (defalias 'sly-forward-source-path #[257 "`\30014\301\211:\203+\262\211A\262\242\262\302!\210\203$\303\304!\210A\262\202\266\302 \210\305 0\207\210\211b\207" [(error) nil sly-forward-sexp down-list 1 beginning-of-sexp] 7 (#$ . 138745)]) (defalias 'sly-filesystem-toplevel-directory #[0 "\301>\203\302\207\303\304!\207" [system-type (ms-dos windows-nt) "" file-name-as-directory "/"] 2]) #@473 Returns a filename where the source root directory of TARGET-FILENAME is replaced with the source root directory of BUFFER-FILENAME. If no common source root could be determined, return NIL. E.g. (sly-file-name-merge-source-root "/usr/local/src/joe/upstream/sbcl/code/late-extensions.lisp" "/usr/local/src/joe/hacked/sbcl/compiler/deftype.lisp") ==> "/usr/local/src/joe/hacked/sbcl/code/late-extensions.lisp" (fn TARGET-FILENAME BUFFER-FILENAME) (defalias 'sly-file-name-merge-source-root #[514 "\300\301!\302\303#\300\301!\302\303#\3042`\305\306!\306!\211\305:\203\\@\262\307\310\311\312$\211\204;B\262\266\202U!\306 \233!!\313\304\314 \315!R\"\266A\262\202\266\3050\207" [split-string file-name-directory "/" t --cl-block-nil-- nil reverse #[257 "\300\301\302\303\"\"\207" [apply concat mapcar file-name-as-directory] 6 "\n\n(fn DIRS)"] cl-position :test equal throw sly-filesystem-toplevel-directory file-name-nondirectory] 20 (#$ . 139178)]) #@174 Returns a copy of BASE-DIRNAME where all differences between BASE-DIRNAME and CONTRAST-DIRNAME are propertized with a highlighting face. (fn BASE-DIRNAME CONTRAST-DIRNAME) (defalias 'sly-highlight-differences-in-dirname #[514 "\300!\262\300!\262\301\302\303#\301\302\303#\304\305\303\"r\211q\210\306\307\"\216\310\311 c\210:\203e@\262\312\313\314$\211\204R\315C`\316\317\"\320`#\210\266\302c\266\202^\300!c\210\211T\233\262\210A\262\202'\266ed{*\207" [file-name-as-directory split-string "/" t generate-new-buffer " *temp*" make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] nil sly-filesystem-toplevel-directory cl-position :test equal (face highlight) apply insert add-text-properties] 16 (#$ . 140193)]) #@949 When working on multiple source trees simultaneously, the way `sly-edit-definition' (M-.) works can sometimes be confusing: `M-.' visits locations that are present in the current Lisp image, which works perfectly well as long as the image reflects the source tree that one is currently looking at. In the other case, however, one can easily end up visiting a file in a different source root directory (the one corresponding to the Lisp image), and is thus easily tricked to modify the wrong source files---which can lead to quite some stressfull cursing. If this variable is T, a warning message is issued to raise the user's attention whenever `M-.' is about opening a file in a different source root that also exists in the source root directory of the user's current buffer. There's no guarantee that all possible cases are covered, but if you encounter such a warning, it's a strong indication that you should check twice before modifying. (defvar sly-warn-when-possibly-tricked-by-M-\. t (#$ . 140967)) #@40 (fn TARGET-FILENAME BUFFER-FILENAME) (defalias 'sly-maybe-warn-for-different-source-root #[514 "\300\"\211\205&\211\232?\205&\301!\205&\302\303\304\305!\305!\"\306!P\"\207" [sly-file-name-merge-source-root file-exists-p sly-message "Attention: This is `%s'." sly-highlight-differences-in-dirname file-name-directory file-name-nondirectory] 9 (#$ . 141985)]) #@17 (fn FILENAME) (defalias 'sly-check-location-filename-sanity #[257 "\205\"\211\205 \301!\302 \205\301\302 !\205 \211\205 \303\"\266\202\207" [sly-warn-when-possibly-tricked-by-M-\. file-truename buffer-file-name sly-maybe-warn-for-different-source-root] 6 (#$ . 142363)]) #@20 (fn BUFFER-NAME) (defalias 'sly-check-location-buffer-name-sanity #[257 "\300\301\302!!!\207" [sly-check-location-filename-sanity buffer-file-name get-buffer] 5 (#$ . 142653)]) #@15 (fn BUFFER) (defalias 'sly-goto-location-buffer #[257 "\211\211@A\301\267\202\344\211\211G\302U\203\211\242\202\303\304\305GD\"\306!\307!\210\310!\2062\311\312!)q\207\211\211G\302U\203A\211\242\202H\303\304\313GD\"\314!\210\211q\207\211\211G\315U\203`\211A\262\242\202g\303\304\316GD\"\242\317\320!\203v\321D\202y\322D!\207\211\211G\302U\203\210\211\242\202\217\303\304\323GD\"\324\325\326!!q\210\327 \210\330 \210\211c\210eb\207\211\211G\315U\203\263\211A\262\242\202\272\303\304\331GD\"\242\332\333!\210\312\311\"q\210eb\210\334\335\336Q!\210\337 \340\341\"\216\342 \210p)\262\211q\210eb\207\343\344\"\207" [find-file-suppress-same-file-warnings #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:file 11 :buffer 52 :buffer-and-file 79 :source-form 123 :zip 162)) 1 signal wrong-number-of-arguments (filename) sly-from-lisp-filename sly-check-location-filename-sanity get-file-buffer t find-file-noselect (buffer-name) sly-check-location-buffer-name-sanity 2 (buffer filename) sly-goto-location-buffer get-buffer :buffer :file (string) get-buffer-create sly-buffer-name :source erase-buffer lisp-mode (file entry) require arc-mode re-search-forward " " "$" current-window-configuration make-closure #[0 "\301\300!\207" [V0 set-window-configuration] 2] archive-extract sly-error "Elisp sly-dcase failed: %S"] 11 (#$ . 142839)]) #@17 (fn POSITION) (defalias 'sly-goto-location-position #[257 "\211\211@A\301\267\202\211\211G\302U\203\211\242\202\303\304\305GD\"\302b\210\211S\306S!Zu\207\211\211G\307U\203<\211A\262\242\202C\303\304\310GD\"\242b\210\211u\207\211\211\203Y\211A\262\242\202`\303\304\311GD\"\211A\262\242\203u\303\304\311\307G\\D\"\210eb\210\312!\210\211\203\204\313!\207\314\315w\207\211\211G\302U\203\225\211\242\202\234\303\304\316GD\"\317\320!eb\210\321\322\323\320!\"\315\317#\204\275\321\322\324\"\315\317#\205\300\325\224b)\207\211\211A\203\321\211A\262\242\202\330\303\304\326GD\"\211A\262\242\327#\207\211\211G\307U\203\365\211A\262\242\202\374\303\304\330GD\"\242\211\203 \211b\210\331!\207\332!\207\211\211\203\303\304\315G\302_D\"\210db\207\333\334\"\207" [case-fold-search #s(hash-table size 7 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:position 11 :offset 43 :line 75 :function-name 136 :method 194 :source-path 228 :eof 269)) 1 signal wrong-number-of-arguments (pos) sly-eol-conversion-fixup 2 (start offset) (start &optional column) beginning-of-line move-to-column " " nil (name) t regexp-quote re-search-forward format "\\s *(def\\(\\s_\\|\\sw\\)*\\s +(*%s\\S_" "[( ]%s\\>\\(\\s \\|$\\)" 0 (name specializers &rest qualifiers) sly-search-method-location (source-path start-position) sly-forward-positioned-source-path sly-forward-source-path sly-error "Elisp sly-dcase failed: %S"] 13 (#$ . 144256)]) #@10 (fn N) (defalias 'sly-eol-conversion-fixup #[257 "\211\301U\203\301\207\302!\211\303=\2030\212`\\\301`Y\204*\304y\210S\262\211T\262\202\211S\266\202)\207\301\207" [buffer-file-coding-system 0 coding-system-eol-type 1 nil] 6 (#$ . 145752)]) #@37 (fn NAME SPECIALIZERS QUALIFIERS) (defalias 'sly-search-method-location #[771 "\301\302!\303\304\305#\303\306\307\310\"\305#\311\312$\313\314\301#\205$\315\224b)\207" [case-fold-search t regexp-quote mapconcat #[257 "\300\301Q\207" [".+?\\<" "\\>"] 4 "\n\n(fn EL)"] "" #[257 "\211\300H\301=\203#\302!\211@\303=\203\304\305\306A@\"\307Q\207\310\311@#\207\312\313Q\207" [0 40 read EQL ".*?\\n\\{0,1\\}.*?(EQL.*?'\\{0,1\\}" format "%s" ")" error "don't understand specializer: %s,%s" ".+?\n\\{0,1\\}.+?\\<" "\\>"] 6 "\n\n(fn EL)"] remove "T" format "\\s *(def\\(\\s_\\|\\sw\\)*\\s +%s\\s +%s%s" re-search-forward nil 0] 11 (#$ . 146012)]) #@118 Move to the place where FNAME called. Don't move if there are multiple or no calls in the current defun. (fn FNAME) (defalias 'sly-search-call-site #[257 "\214\301 \210`\302\303Q\304\305\306\304#\203!\305\306\304#\204!\307\224b\202#b)\266\202)\207" [case-fold-search narrow-to-defun "(" "[)\n ]" t re-search-forward nil 0] 7 (#$ . 146676)]) #@74 Move to EDIT-PATH starting at the current toplevel form. (fn EDIT-PATH) (defalias 'sly-search-edit-path #[257 "\211\205i\300U\203\301\302!\204\303 \210\304!\207" [0 looking-at "(" beginning-of-defun sly-forward-source-path] 3 (#$ . 147033)]) #@798 Move to the source location LOCATION. If NOERROR don't signal an error, but return nil. Several kinds of locations are supported: ::= (:location ) | (:error ) ::= (:file ) | (:buffer ) | (:buffer-and-file ) | (:source-form ) | (:zip ) ::= (:position ) ; 1 based (for files) | (:offset ) ; start+offset (for C-c C-c) | (:line []) | (:function-name ) | (:source-path ) | (:method . ) (fn LOCATION &optional NOERROR) (defalias 'sly-move-to-source-location #[513 "\211@A\301\267\202t\211\211G\302U\203\211A\262\242\202#\303\304\305GD\"\306\211A\262\210\306\307!\210\310 !eX\203?\211dX\204L\203H~\210\202L\311\312!\210\211b\207\211\211G\313U\203\\\211\242\202c\303\304\314GD\"\203o\315\316\"\266\306\207\311\316\"\207\317\320\"\207" [widen-automatically #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:location 11 :error 79)) 3 signal wrong-number-of-arguments (buffer _position _hints) nil sly-goto-location-buffer sly-location-offset error "Location is outside accessible part of buffer" 1 (message) sly-message "%s" sly-error "Elisp sly-dcase failed: %S"] 12 (#$ . 147290)]) #@65 Highlight the first sexp after point. (fn &optional START END) (defalias 'sly--highlight-sexp #[512 "\206`\206\212\3001\301 0\210\202\210`)\302\"\207" [(error) forward-sexp sly-flash-region] 7 (#$ . 148820)]) #@26 (fn &optional TIMEOUT) (defalias 'sly--highlight-line #[256 "\300\301 \302 \\\303 \304$\207" [sly-flash-region line-beginning-position current-indentation line-end-position :timeout] 6 (#$ . 149048)]) (byte-code "\300\301\302!!\207" [make-variable-buffer-local (lambda (#1=#:def-tmp-var) (defvar sly-xref--popup-method #1# "Helper for `sly--display-source-location'")) nil] 3) #@692 Display SOURCE-LOCATION in a window according to METHOD. Highlight the resulting sexp. Return the window or raise an error, unless NOERROR is nil, in which case return nil. METHOD specifies how to behave when a reference is selected in an xref buffer. If one of symbols `window' or `frame' just `display-buffer' accordingly. If nil, just switch to buffer in current window. If a cons (WINDOW . METHOD) consider WINDOW the "starting window" and reconsider METHOD like above: If it is nil try to use WINDOW exclusively for showing the location, otherwise prevent that window from being reused when popping to a new window or frame. (fn SOURCE-LOCATION &optional NOERROR (METHOD \='window)) (defalias 'sly--display-source-location #[641 "\211\203 \211A\262\242\202\301\203\302\303\304\305G\\D\"\210\306C\211\307\310\"\240\210\311=\203.\262\312\"\205``\313\242p\"!r\307\314\"\216\315@\316\"\210b\210\317i\320U\205T\321!\210\322 \210\323 *\262\262\207" [sly-xref--popup-method window signal wrong-number-of-arguments sly--display-source-location 3 nil make-closure #[514 "\302\211\303\267\202\304\305\"\207\305\304\305\"\262)\266\207\211:\203Z\211@A\306!\2044\262\211\262\266\202\211\203Q\307!\310\311#\216\300\242\")\262\302\262\266\204\202c\304\310\312\"C\"\207\313!\210\314 \266\203\302\204\207" [V0 pop-up-frames nil #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (window 9 frame 14)) display-buffer t window-live-p window-dedicated-p make-closure #[0 "\302\300\301\"\207" [V0 V1 set-window-dedicated-p] 3] #[514 "\301\300!\205\f\302\300\"\210\300\207" [V0 window-live-p set-window-buffer] 5 "\n\n(fn BUFFER ALIST)"] switch-to-buffer selected-window] 12 "\n\n(fn TARGET-BUFFER METHOD)"] sly-xref sly-move-to-source-location internal--before-with-selected-window #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord recenter 0 1 sly--highlight-sexp selected-window] 10 (#$ . 149435)]) #@181 Pop to SOURCE-LOCATION using METHOD. If called from an xref buffer, method will be `sly-xref' and thus also honour `sly-xref--popup-method'. (fn SOURCE-LOCATION &optional METHOD) (defalias 'sly--pop-to-source-location #[513 "\300 \301!\302=\203\303\304\"\210r\211q\210\305\306\307#!\210)\301\300 !q\207" [selected-window window-buffer sly-xref quit-restore-window bury select-window sly--display-source-location nil] 9 (#$ . 151461)]) #@71 Return the position, as character number, of LOCATION. (fn LOCATION) (defalias 'sly-location-offset #[257 "\214~\210\3001\301\302!!0\210\202\210\303b\210\304!\305\306\"\211\203$\307!\210\210\305\310\"\211\2031\311!\210\210\305\312\"\211\203>\313!\210\210\305\314\"\203L\315 \210\316 \210\210`)\207" [(error) sly-goto-location-position sly-location\.position 0 sly-location\.hints cl-getf :snippet sly-isearch :edit-path sly-search-edit-path :call-site sly-search-call-site :align sly-forward-sexp beginning-of-sexp] 5 (#$ . 151911)]) #@144 Find the longest occurence of STRING either backwards of forwards. If multiple matches exist the choose the one nearest to point. (fn STRING) (defalias 'sly-isearch #[257 "`\300\301\"`b\210\300\302\"`\203O\203OU\2037\303Z!\303Z!W\2031\266\205\202f\211\266\205\202fV\203C\266\205\202fV\205d\211\266\205\202f\203Y\266\205\202f\203c\211\266\205\202f\266\205b\207" [sly-isearch-with-function search-forward search-backward abs] 10 (#$ . 152470)]) #@154 Search for the longest substring of STRING using SEARCH-FN. SEARCH-FN is either the symbol `search-forward' or `search-backward'. (fn SEARCH-FN STRING) (defalias 'sly-isearch-with-function #[514 "\211\300\230?\205Z\3012Z\302G\303\211X\203B\304O\303\305#\203B\306 \262\307\267\2028\304\224b\210\2028\304\225Tb\210T\262\303\262\202\310\301\205U\311!\210\304\224b\210\304\225\304\224Z\"\266\3030\207" ["" --cl-block-nil-- 1 nil 0 t match-data #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (search-forward 44 search-backward 51)) throw store-match-data] 10 (#$ . 152957)]) #@15 (fn BUTTON) (defalias 'sly-note-button-p #[257 "\211\300\301\"\262\302=\207" [button-get type sly-in-buffer-note] 5 (#$ . 153596)]) (byte-code "\300\301\302\"\210\300\303\304\"\210\305\301\306\307#\210\305\303\306\307#\207" [defalias sly-next-note sly-button-forward sly-previous-note sly-button-backward put sly-button-navigation-command t] 4) #@71 Go to the first note in the buffer. (fn SUCCESSP NOTES BUFFER LOADP) (defalias 'sly-goto-first-note #[1028 "\205\neb\210\300\301!\207" [sly-next-note 1] 6 (#$ . 153951) (byte-code "\300 C\207" [sly-compiler-notes] 1)]) #@69 Remove `sly-note' annotation buttons from BEG to END. (fn BEG END) (defalias 'sly-remove-notes #[514 "\300\"\301:\203@\262\302!\203\303!\210A\262\202\301\207" [overlays-in nil sly-note-button-p delete-overlay] 6 (#$ . 154179) (byte-code "\300 \203 \301 \302 D\207edD\207" [region-active-p region-beginning region-end] 2)]) #@85 Present the details of a compiler note to the user. (fn BUTTON &rest MORE-BUTTONS) (defalias 'sly-show-notes #[385 "\301\302\303\304\"B\"\305\306\307\303\310\"!\211\203\311D\202\312\262#\210\211@\313\314!\315\316\"\211\203qrq\210\317!r\320\321\"\216\322@\323\"\210\324\"\211\203g\211@p=\204U\325\326!\210\211Ab\210\327`T!\330`\"\210\331!\266\210\332\333p\"*\262)\207A\203\202\332\334G\335\336\337##\207\332\340\336@!\"\207" [sly-compilation-log--notes mapcar sly-rcurry button-get sly-note sly-button-flash :face face-underline-p face :background highlight sly-buffer-name :compilation get-buffer-window t internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord gethash cl--assertion-failed (eq (car buffer-and-pos) (current-buffer)) field-end sly-flash-region sly-recenter sly-message "Showing note in %s" "%s notes:\n%s" mapconcat sly-note\.message "\n" "%s"] 13 (#$ . 154525) nil]) (byte-code "\301\302\303\304#\210\301\305\303\302\306\307!\310\311\312#\210\211\262\313\314\315\314\316\317& \210\301\320\303\302\321\312%\207" [button-map define-button-type sly-note :supertype sly-button sly-in-buffer-note keymap copy-keymap define-key "RET" nil mouse-action sly-show-notes sly-button-echo modification-hooks (sly--in-buffer-note-modification) sly-compilation-note-group face] 12) #@47 (fn BUTTON AFTER\=\? BEG END &optional LEN) (defalias 'sly--in-buffer-note-modification #[1284 "?\205\300!\207" [delete-overlay] 7 (#$ . 155935)]) #@76 Add NOTE as a `sly-in-buffer-note' button to the source buffer. (fn NOTE) (defalias 'sly--add-in-buffer-note #[257 "\300!\211A\262\242\211A\262\242\203\301\302\303\304G\\D\"\210\205}\305\"\306\307!\"\310:\203I@\262\211\311\312\313!T#\266A\262\202.\266\314\315\316\317\320 \321 \322\323\324\325!\"\326\327\330!!&\f\211\311\312\331\332\333\313\334\335&T#\262\262\266\202\207" [sly-choose-overlay-region signal wrong-number-of-arguments (&optional beg end) 2 sly-button--overlays-between cl-set-difference sly-button--overlays-at nil overlay-put sly-button-level sly-button--level make-button :type sly-in-buffer-note sly-button-search-id sly-button-next-search-id sly-note help-echo format "[sly] %s" sly-note\.message face sly-severity-face sly-note\.severity cl-reduce max :key :initial-value 0] 21 (#$ . 156094)]) #@115 Pepare notes as a `sly-compilation-note' button. For insertion in the `compilation-mode' buffer (fn LABEL NOTES) (defalias 'sly--compilation-note-group-button #[514 "\300\301\302\303\304&\207" [sly--make-text-button nil :type sly-compilation-note-group sly-notes-group] 9 (#$ . 156958)]) (defalias 'sly-show-arglist #[0 "\3001\212\301\302!\210\303\302!\210\304 )0\202\210\305\211\205\"\306\307\310 E\311\"\207" [(error) backward-up-list 1 down-list sly-symbol-at-point nil sly-eval-async slynk:operator-arglist sly-current-package #[257 "\211\205\300\301\"\207" [sly-message "%s"] 4 "\n\n(fn ARGLIST)"]] 5]) #@36 Add point to find-tag-marker-ring. (defalias 'sly-push-definition-stack #[0 "\301\302 \"\207" [find-tag-marker-ring ring-insert point-marker] 3 (#$ . 157586)]) #@54 Pop the edit-definition stack and goto the location. (defalias 'sly-pop-find-definition-stack #[0 "\300 \207" [pop-tag-mark] 1 (#$ . 157753) nil]) #@71 compiler-macro for inlining `sly-xref.dspec'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-xref\.dspec--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-xref\.dspec (progn (car cl-x))) nil] 9 (#$ . 157906)]) (put 'sly-xref\.dspec 'compiler-macro 'sly-xref\.dspec--cmacro) #@59 Access slot "dspec" of `sly-xref' struct CL-X. (fn CL-X) (defalias 'sly-xref\.dspec #[257 "\211@\207" [] 2 (#$ . 158219)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-xref\.dspec side-effect-free t] 4) #@74 compiler-macro for inlining `sly-xref.location'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-xref\.location--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-xref\.location (progn (nth 1 cl-x))) nil] 9 (#$ . 158441)]) (put 'sly-xref\.location 'compiler-macro 'sly-xref\.location--cmacro) #@62 Access slot "location" of `sly-xref' struct CL-X. (fn CL-X) (defalias 'sly-xref\.location #[257 "\211A@\207" [] 2 (#$ . 158771)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put sly-xref\.location side-effect-free t defalias copy-sly-xref copy-sequence] 4) #@91 compiler-macro for inlining `make-sly-xref'. (fn CL-WHOLE &cl-quote &key DSPEC LOCATION) (defalias 'make-sly-xref--cmacro #[385 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202 \304>A@\203.\305\262\202 \306\307@\"\210\202 \210\310\311\312\305\305&\207" [plist-member :dspec :location (:dspec :location :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:dspec :location)" cl--defsubst-expand (dspec location) (cl-block make-sly-xref (list dspec location))] 12 (#$ . 159050)]) (put 'make-sly-xref 'compiler-macro 'make-sly-xref--cmacro) #@71 Constructor for objects of type `sly-xref'. (fn &key DSPEC LOCATION) (defalias 'make-sly-xref #[128 "\300\301\"A@\300\302\"A@\211\2037\211@\303>\203 \211AA\262\202 \304>A@\203.\305\262\202 \306\307@\"\210\202 \210D\207" [plist-member :dspec :location (:dspec :location :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:dspec :location)"] 7 (#$ . 159657)]) (byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306& \207" [function-put make-sly-xref side-effect-free t cl-struct-define sly-xref nil list ((dspec) (location)) cl-struct-sly-xref-tags] 11) #@73 compiler-macro for inlining `sly-location.tag'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-location\.tag--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-location\.tag (progn (car cl-x))) nil] 9 (#$ . 160275)]) (put 'sly-location\.tag 'compiler-macro 'sly-location\.tag--cmacro) #@61 Access slot "tag" of `sly-location' struct CL-X. (fn CL-X) (defalias 'sly-location\.tag #[257 "\211@\207" [] 2 (#$ . 160598)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-location\.tag side-effect-free t] 4) #@76 compiler-macro for inlining `sly-location.buffer'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-location\.buffer--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-location\.buffer (progn (nth 1 cl-x))) nil] 9 (#$ . 160826)]) (put 'sly-location\.buffer 'compiler-macro 'sly-location\.buffer--cmacro) #@64 Access slot "buffer" of `sly-location' struct CL-X. (fn CL-X) (defalias 'sly-location\.buffer #[257 "\211A@\207" [] 2 (#$ . 161166)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-location\.buffer side-effect-free t] 4) #@78 compiler-macro for inlining `sly-location.position'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-location\.position--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-location\.position (progn (nth 2 cl-x))) nil] 9 (#$ . 161404)]) (put 'sly-location\.position 'compiler-macro 'sly-location\.position--cmacro) #@66 Access slot "position" of `sly-location' struct CL-X. (fn CL-X) (defalias 'sly-location\.position #[257 "\3008\207" [2] 3 (#$ . 161754)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-location\.position side-effect-free t] 4) #@75 compiler-macro for inlining `sly-location.hints'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-location\.hints--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-location\.hints (progn (nth 3 cl-x))) nil] 9 (#$ . 161999)]) (put 'sly-location\.hints 'compiler-macro 'sly-location\.hints--cmacro) #@63 Access slot "hints" of `sly-location' struct CL-X. (fn CL-X) (defalias 'sly-location\.hints #[257 "\3008\207" [3] 3 (#$ . 162334)]) (byte-code "\300\301\302\303#\304\305\306\211\307\306\310\311\305\306& \207" [function-put sly-location\.hints side-effect-free t cl-struct-define sly-location nil list ((tag) (buffer) (position) (hints)) cl-struct-sly-location-tags] 11) #@10 (fn O) (defalias 'sly-location-p #[257 "\211:\205 \211@\300=\207" [:location] 3 (#$ . 162712)]) #@13 (fn XREF) (defalias 'sly-xref-has-location-p #[257 "\300A@!\207" [sly-location-p] 3 (#$ . 162817)]) #@45 (fn BUFFER-NAME POSITION &optional HINTS) (defalias 'make-sly-buffer-location #[770 "\300\301D\302D\205\303DF\207" [:location :buffer :position :hints] 8 (#$ . 162926)]) #@43 (fn FILE-NAME POSITION &optional HINTS) (defalias 'make-sly-file-location #[770 "\300\301D\302D\205\303DF\207" [:location :file :position :hints] 8 (#$ . 163110)]) #@336 Lookup the definition of the name at point. If there's no name at point, or a prefix argument is given, then the function name is prompted. METHOD can be nil, or one of `window' or `frame' to specify if the new definition should be popped, respectively, in the current window, a new window, or a new frame. (fn &optional NAME METHOD) (defalias 'sly-edit-definition #[512 "\300\301D!\211\204\302\303\304 #\210\305!\211G\306U\203#\211A\262\242\202*\307\310\311GD\"\242\203<\312 \210\313@A@\"\207A\204F\302\314\"\207\312 \210\315\316\304 \317 \nB%\207" [sly-eval slynk:find-definitions-for-emacs error "No known definition for: %s (in %s)" sly-current-package sly-analyze-xrefs 2 signal wrong-number-of-arguments (1loc file-alist) sly-push-definition-stack sly--pop-to-source-location "%s" sly-xref--show-results definition selected-window] 13 (#$ . 163289) (byte-code "\204\n\301\302!\206 \303\304!C\207" [current-prefix-arg sly-symbol-at-point t sly-read-symbol-name "Edit Definition of: "] 2)]) (defvar sly-edit-uses-xrefs '(:calls :macroexpands :binds :references :sets :specializes)) #@45 Lookup all the uses of SYMBOL. (fn SYMBOL) (defalias 'sly-edit-uses #[257 "\301\302#\207" [sly-edit-uses-xrefs sly-xref--get-xrefs #[1028 "\300\301\"\203O\300@A\301\"\203O@\302G\303U\203#\211A\262\210\202+\304\305\306GD\"\210\242\302G\303U\203>\211A\262\210\202F\304\305\306GD\"\210\242\307 \210\310!\207\307 \210\311\312%\207" [sly-length= 1 nil 2 signal wrong-number-of-arguments (_ (_ loc)) sly-push-definition-stack sly--pop-to-source-location sly-xref--show-results window] 12 "\n\n(fn XREFS TYPE SYMBOL PACKAGE)"]] 5 (#$ . 164408) (byte-code "\300\301!C\207" [sly-read-symbol-name "Edit Uses of: "] 2)]) #@220 Find common filenames in XREFS. Return a list (SINGLE-LOCATION FILE-ALIST). SINGLE-LOCATION is true if all xrefs point to the same location. FILE-ALIST is an alist of the form ((FILENAME . (XREF ...)) ...). (fn XREFS) (defalias 'sly-analyze-xrefs #[257 "\211\205\211@A@\300!\205\301\302\303\"A\"\262\304\305\306#D\207" [sly-location-p cl-every make-closure #[257 "\211A@\300\232\207" [V0] 3 "\n\n(fn X)"] sly-alistify sly-xref-group equal] 6 (#$ . 165052)]) #@13 (fn XREF) (defalias 'sly-xref-group #[257 "\300!\203\241\211A@A@\211@A\301\267\202\234\211\211G\302U\203 \211\242\207\303\304\305GD\"\207\211\211G\302U\2035\211\242\202<\303\304\306GD\"\307!\211\203H\310\311\"\207\310\312\"\207\211\313G\314U\203_\211A\262\210\202g\303\304\315GD\"\210\242\207\211\313G\302U\204{\303\304\316GD\"\210\266\317\207\211\313G\314U\203\221\211A\262\210\202\231\303\304\320GD\"\210\242\207\321\322\"\207\323\207" [sly-xref-has-location-p #s(hash-table size 5 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:file 21 :buffer 40 :buffer-and-file 77 :source-form 106 :zip 127)) 1 signal wrong-number-of-arguments (filename) (bufname) get-buffer format "%S" "%s (previously existing buffer)" nil 2 (_buffer filename) (_) "(S-Exp)" (_zip entry) sly-error "Elisp sly-dcase failed: %S" "(No location)"] 10 (#$ . 165526)]) #@71 Like `sly-edit-definition' but switch to the other window. (fn NAME) (defalias 'sly-edit-definition-other-window #[257 "\300\301\"\207" [sly-edit-definition window] 4 (#$ . 166424) (byte-code "\300\301!C\207" [sly-read-symbol-name "Symbol: "] 2)]) #@71 Like `sly-edit-definition' but switch to the other window. (fn NAME) (defalias 'sly-edit-definition-other-frame #[257 "\300\301\"\207" [sly-edit-definition frame] 4 (#$ . 166680) (byte-code "\300\301!C\207" [sly-read-symbol-name "Symbol: "] 2)]) #@60 Notify Lisp that a source file's buffer has been modified. (defalias 'sly-first-change-hook #[0 "\212\300 \301\302\"\216\303 \205$\304\303 !\205$\305 \205$\306\303 !\307\310D!\262)\262)\207" [match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] buffer-file-name file-exists-p sly-background-activities-enabled-p sly-to-lisp-filename sly-eval-async slynk:buffer-first-change] 5 (#$ . 166934)]) (defalias 'sly-setup-first-change-hook #[0 "\300\301\302\303\304$\207" [add-hook first-change-hook sly-first-change-hook nil t] 5]) (add-hook 'sly-mode-hook 'sly-setup-first-change-hook) #@31 (fn THREAD TAG FORM-STRING) (defalias 'sly-eval-for-lisp #[771 "\300C\300C\300C\301 \302\303&\216\30416\305 \210\306\307!\310\"\240\210\311\242!\210\310\2400\202;\240\262)\207" [nil sly-connection make-closure #[0 "\302\242\203\f\306\303\242D\202#\304\242\203\"\307\310\304\242@!\311\312\304\242A\"BB\202#\313\314\315\300\301F\305\"\207" [V0 V1 V2 V3 V4 V5 :ok :error symbol-name mapcar prin1-to-string (:abort) sly-dispatch-event :emacs-return] 6] (debug error) sly-check-eval-in-emacs-enabled eval read t sly-check-eval-in-emacs-result] 15 (#$ . 167556)]) #@49 Raise an error if X can't be marshaled. (fn X) (defalias 'sly-check-eval-in-emacs-result #[257 "\211;\2069\211\300>\2069\211\250\2069\301!\2069\211:\2035\211\211:\203-\302@!\210\211A\262\202\302!\262\2069\303\304\"\207" [(nil t) keywordp sly-check-eval-in-emacs-result error "Non-serializable return value: %S"] 4 (#$ . 168150)]) #@62 Raise an error if `sly-enable-evaluate-in-emacs' isn't true. (defalias 'sly-check-eval-in-emacs-enabled #[0 "?\205\301\302!\207" [sly-enable-evaluate-in-emacs error "sly-eval-in-emacs disabled for security.Set sly-enable-evaluate-in-emacs true to enable it."] 2 (#$ . 168502)]) #@29 The frame used by `sly-ed'. (defvar sly-ed-frame nil (#$ . 168789)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable sly-ed-use-dedicated-frame funcall function #[0 "\300\207" [nil] 1] "*When non-nil, `sly-ed' will create and reuse a dedicated frame." :type boolean :group sly-mode] 8) #@224 Edit WHAT. WHAT can be: A filename (string), A list (:filename FILENAME &key LINE COLUMN POSITION), A function name (:function-name STRING) nil. This is for use in the implementation of COMMON-LISP:ED. (fn WHAT) (defalias 'sly-ed #[257 "\203 \203\302 !\204\303 \304 !\210\305 \210\211\205\307\211\211@A\306\267\202\301\211\211\2035\211A\262\242\202<\307\310\311GD\"\312\313\"A@\312\314\"A@\312\315\"A@\312\316\"A@\211\203\200\211@\317>\203h\211AA\262\202U\320>A@\203w\321\262\202U\322\323@\"\210\202U\210\324\325!!\210\203\220\326!\210\203\230\327!\210\205\250\211\203\246\330!\202\247b\207\211\211G\331U\203\266\211\242\202\275\307\310\332GD\"\333!\207\334\335\"\266\203\207" [sly-ed-use-dedicated-frame sly-ed-frame frame-live-p make-frame select-frame raise-frame #s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:filename 39 :function-name 169)) signal wrong-number-of-arguments (file &key line column position bytep) plist-member :line :column :position :bytep (:line :column :position :bytep :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:line :column :position :bytep)" find-file sly-from-lisp-filename sly-goto-line move-to-column byte-to-position 1 (name) sly-edit-definition sly-error "Elisp sly-dcase failed: %S"] 14 (#$ . 169120)]) #@168 Move to line LINE-NUMBER (1-based). This is similar to `goto-line' but without pushing the mark and the display stuff that we neither need nor want. (fn LINE-NUMBER) (defalias 'sly-goto-line #[257 "\300 deZU\204\301\302\303\304\211$\210eb\210\211Sy\207" [buffer-size cl--assertion-failed (= (buffer-size) (- (point-max) (point-min))) "sly-goto-line in narrowed buffer" nil] 6 (#$ . 170505)]) #@28 (fn THREAD TAG QUESTION) (defalias 'sly-remote-y-or-n-p #[771 "\300\301\302!F!\207" [sly-dispatch-event :emacs-return sly-y-or-n-p] 9 (#$ . 170906)]) #@40 (fn THREAD TAG PROMPT INITIAL-VALUE) (defalias 'sly-read-from-minibuffer-for-slynk #[1028 "\3001 \301\302#0\202\210\303\304\305F!\207" [(quit) sly-read-from-minibuffer t nil sly-dispatch-event :emacs-return] 10 (#$ . 171067)]) #@207 Read and evaluate STRING and print value in minibuffer. A prefix argument(`C-u') inserts the result into the current buffer. A negative prefix argument (`M--') will sends it to the kill ring. (fn STRING) (defalias 'sly-interactive-eval #[257 "\301=\203\f\302\303D!\207\304=\203\305!\207\306!\207" [current-prefix-arg nil sly-eval-with-transcript slynk:interactive-eval - sly-eval-save sly-eval-print] 4 (#$ . 171313) (byte-code "\300\301!C\207" [sly-read-from-minibuffer "SLY Eval: "] 2)]) #@37 Hook run before start an evalution. (defvar sly-transcript-start-hook nil (#$ . 171819)) #@39 Hook run after finishing a evalution. (defvar sly-transcript-stop-hook nil (#$ . 171914)) #@14 (fn VALUE) (defalias 'sly-display-eval-result #[257 "\300\301\302\"r\211q\210\303\304\"\216c\210eb\210\305\210`TdW\204&`eZ\306 Y\203.\307\310 \"\2022\311\312\"*\207" [generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] 1 frame-width sly-show-description sly-current-package message "=> %s"] 5 (#$ . 172010)]) #@56 Eval FORM in Lisp. Display output, if any. (fn FORM) (defalias 'sly-eval-with-transcript #[257 "\302\303!\210\304\305\306 \307 \310\211:\203&@\262\311 !\244\262A\262\202\211\237\266\203BBBBB!\207" [sly-current-thread sly-rex-extra-options-functions run-hooks sly-transcript-start-hook sly-dispatch-event :emacs-rex sly-current-package #[257 "\211\211@A\300\267\202D\211\211G\301U\203\211\242\202\302\303\304GD\"\305\306!\210\307!\207\211\211G\301U\2034\211\242\202;\302\303\310GD\"\305\306!\210\311\312\"\207\313\314\"\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:ok 11 :abort 39)) 1 signal wrong-number-of-arguments (value) run-hooks sly-transcript-stop-hook sly-display-eval-result (condition) sly-message "Evaluation aborted on %s." sly-error "Elisp sly-dcase failed: %S"] 9 "\n\n(fn G45)"] nil reverse] 12 (#$ . 172395)]) #@78 Eval STRING in Lisp; insert any output and the result at point. (fn STRING) (defalias 'sly-eval-print #[257 "\300\301D\302\"\207" [sly-eval-async slynk:eval-and-grab-output #[257 "\211\211G\300U\203\211A\262\242\202\301\302\303GD\"\242\304 \210`\305 \3068\206)\3078\2032\310\2023\311\261\210\211?\205A\312`\313#\207" [2 signal wrong-number-of-arguments (output value) push-mark syntax-ppss 3 4 "" " => " comment-region 1] 11 "\n\n(fn RESULT)"]] 4 (#$ . 173304)]) #@76 Evaluate STRING in Lisp and save the result in the kill ring. (fn STRING) (defalias 'sly-eval-save #[257 "\300\301D\302\"\207" [sly-eval-async slynk:eval-and-grab-output #[257 "\211\211G\300U\203\211A\262\242\202\301\302\303GD\"\242P\304!\210\305\306!\207" [2 signal wrong-number-of-arguments (output value) kill-new sly-message "Evaluation finished; pushed result to kill ring."] 7 "\n\n(fn RESULT)"]] 4 (#$ . 173794)]) #@74 Evaluate FORM in Lisp and display the result in a new buffer. (fn FORM) (defalias 'sly-eval-describe #[257 "\300\301\302\303 \"\"\207" [sly-eval-async sly-rcurry sly-show-description sly-current-package] 6 (#$ . 174234)]) #@51 If non-nil select description windows on display. (defvar sly-description-autofocus nil (#$ . 174464)) #@23 (fn STRING PACKAGE) (defalias 'sly-show-description #[514 "\306\307!\310  \311r\312!q\210\313p\314 \210\315 \210\316!\210\317 \210\320!\210eb\210\211\321=\204W\322p\315=?\205?\313\"\203M\211\203M\323\313\"\210\210\211\324=\203W\325 \210p,\207" [major-mode sly-description-autofocus view-read-only standard-output inhibit-read-only sly-buffer-package sly-buffer-name :description sly-current-connection nil get-buffer-create t erase-buffer lisp-mode set-syntax-table sly-popup-buffer-mode princ :hidden display-buffer select-window :raise raise-frame sly-buffer-connection lisp-mode-syntax-table] 11 (#$ . 174573)]) (defalias 'sly-last-expression #[0 "\300\212\301 \210`)`\"\207" [buffer-substring-no-properties backward-sexp] 3]) #@42 Evaluate the expression preceding point. (defalias 'sly-eval-last-expression #[0 "\300\301 !\207" [sly-interactive-eval sly-last-expression] 2 (#$ . 175334) nil]) #@100 Evaluate the current toplevel form. Use `sly-re-evaluate-defvar' if the from starts with '(defvar' (defalias 'sly-eval-defun #[0 "\300\301\302 \"\303\304\"\203\305!\207\306!\207" [apply buffer-substring-no-properties sly-region-for-defun-at-point string-match "^(defvar " sly-re-evaluate-defvar sly-interactive-eval] 4 (#$ . 175504) nil]) #@34 Evaluate region. (fn START END) (defalias 'sly-eval-region #[514 "\300\301\302\"D!\207" [sly-eval-with-transcript slynk:interactive-eval-region buffer-substring-no-properties] 7 (#$ . 175854) "r"]) #@64 Evaluate region; pprint the value in a buffer. (fn START END) (defalias 'sly-pprint-eval-region #[514 "\300\301\302\"D!\207" [sly-eval-describe slynk:pprint-eval buffer-substring-no-properties] 7 (#$ . 176061) "r"]) #@69 Evaluate the current buffer. The value is printed in the echo area. (defalias 'sly-eval-buffer #[0 "\300ed\"\207" [sly-eval-region] 3 (#$ . 176286) nil]) #@133 Force the re-evaluaton of the defvar form before point. First make the variable unbound, then evaluate the entire form. (fn FORM) (defalias 'sly-re-evaluate-defvar #[257 "\300\301D!\207" [sly-eval-with-transcript slynk:re-evaluate-defvar] 4 (#$ . 176447) (byte-code "\300 C\207" [sly-last-expression] 1)]) #@63 Evaluate the form before point; pprint the value in a buffer. (defalias 'sly-pprint-eval-last-expression #[0 "\300\301\302 D!\207" [sly-eval-describe slynk:pprint-eval sly-last-expression] 3 (#$ . 176762) nil]) #@78 Evaluate sexp before point; print value into the current buffer (fn STRING) (defalias 'sly-eval-print-last-expression #[257 "\300c\210\301!\207" ["\n" sly-eval-print] 3 (#$ . 176979) (byte-code "\300 C\207" [sly-last-expression] 1)]) #@222 \Edit the value of a setf'able form in a new buffer. The value is inserted into a temporary buffer for editing and then set in Lisp when committed with \[sly-edit-value-commit]. (fn FORM-STRING) (defalias 'sly-edit-value #[257 "\300\301D\302 \303\304#\266\202\"\207" [sly-eval-async slynk:value-for-editing sly-current-package make-closure #[257 "\302\300\301#\207" [V0 V1 sly-edit-value-callback] 5 "\n\n(fn RESULT)"]] 9 (#$ . 177222) (byte-code "\300\301\302 \"C\207" [sly-read-from-minibuffer "Edit value (evaluated): " sly-sexp-at-point] 3)]) (byte-code "\300\301\302!!\207" [make-variable-buffer-local (lambda (#1=#:def-tmp-var) (defvar sly-edit-form-string #1# "The form being edited by `sly-edit-value'.")) nil] 3) #@107 Non-nil if Sly-Edit-Value mode is enabled. Use the command `sly-edit-value-mode' to change this variable. (defvar sly-edit-value-mode nil (#$ . 177982)) (make-variable-buffer-local 'sly-edit-value-mode) #@594 Mode for editing a Lisp value. This is a minor mode. If called interactively, toggle the `Sly-Edit-Value mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `sly-edit-value-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'sly-edit-value-mode #[256 "\302 \303=\203 ?\202\247\203\304W\203\305\202\306\307\301!\2031\310\300 \"\2031\300 B\311\312\203;\313\202<\314\"\210\315\316!\203^\302 \203P\211\302 \232\203^\317\320\203Z\321\202[\322\323#\210\210\324 \210\207" [sly-edit-value-mode local-minor-modes current-message toggle 1 nil t boundp delq run-hooks sly-edit-value-mode-hook sly-edit-value-mode-on-hook sly-edit-value-mode-off-hook called-interactively-p any message "Sly-Edit-Value mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 178192) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar sly-edit-value-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\302\300\304\305#\210\302\300\306\307C#\207" [sly-edit-value-mode-hook variable-documentation put "Hook run after entering or leaving `sly-edit-value-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil] 4) #@35 Keymap for `sly-edit-value-mode'. (defvar sly-edit-value-mode-map (byte-code "\300\301!\203\207\211<\203\302!\207\303\304\"\207" [(("" . sly-edit-value-commit)) keymapp easy-mmode-define-keymap error "Invalid keymap %S"] 4) (#$ . 179893)) (byte-code "\301\302\303\304\211%\207" [sly-edit-value-mode-map add-minor-mode sly-edit-value-mode " Edit-Value" nil] 6) #@42 (fn FORM-STRING CURRENT-VALUE PACKAGE) (defalias 'sly-edit-value-callback #[771 "\306\307\310\"!\311 \312r\313!q\210\314p\315 \210\316 \210\317!\210\320\321!\210\322\321!\210c\210\323p\316=?\205>\314\"\211\203H\324\314\"\210\210p,\266\203r\211q\210\312\325\326!)\207" [major-mode view-read-only standard-output inhibit-read-only sly-buffer-package sly-buffer-connection generate-new-buffer-name format "*Edit %s*" sly-current-connection nil get-buffer-create t erase-buffer lisp-mode set-syntax-table sly-mode 1 sly-edit-value-mode display-buffer select-window sly-message "Type C-c C-c when done" lisp-mode-syntax-table sly-edit-form-string buffer-read-only] 11 (#$ . 180269)]) #@69 Commit the edited value to the Lisp image. \(See `sly-edit-value'.) (defalias 'sly-edit-value-commit #[0 "\204\301\302!\207\303ed\"p\304\305E\306\307\"\"\207" [sly-edit-form-string error "Not editing a value." buffer-substring-no-properties sly-eval-async slynk:commit-edited-value make-closure #[257 "r\300q\210\301\302!)\207" [V0 quit-window t] 3 "\n\n(fn _)"]] 7 (#$ . 180980) nil]) #@24 Untrace all functions. (defalias 'sly-untrace-all #[0 "\300\301!\207" [sly-eval (slynk:untrace-all)] 2 (#$ . 181378) nil]) #@26 Toggle trace. (fn SPEC) (defalias 'sly-toggle-trace-fdefinition #[257 "\300\301\302\303D!\"\207" [sly-message "%s" sly-eval slynk:slynk-toggle-trace] 6 (#$ . 181507) (byte-code "\300\301\302 \"C\207" [sly-read-from-minibuffer "(Un)trace: " sly-symbol-at-point] 3)]) #@60 Display the disassembly for SYMBOL-NAME. (fn SYMBOL-NAME) (defalias 'sly-disassemble-symbol #[257 "\300\301\302PD!\207" [sly-eval-describe slynk:disassemble-form "'"] 5 (#$ . 181781) (byte-code "\300\301!C\207" [sly-read-symbol-name "Disassemble: "] 2)]) #@60 Unbind the function slot of SYMBOL-NAME. (fn SYMBOL-NAME) (defalias 'sly-undefine-function #[257 "\300\301D\302\"\207" [sly-eval-async slynk:undefine-function #[257 "\300\301\"\207" [sly-message "%s"] 4 "\n\n(fn RESULT)"]] 4 (#$ . 182044) (byte-code "\300\301\302\"C\207" [sly-read-symbol-name "fmakunbound: " t] 3)]) #@79 Unintern the symbol given with SYMBOL-NAME PACKAGE. (fn SYMBOL-NAME PACKAGE) (defalias 'sly-unintern-symbol #[514 "\300\301E\302\"\207" [sly-eval-async slynk:unintern-symbol #[257 "\300\301\"\207" [sly-message "%s"] 4 "\n\n(fn RESULT)"]] 6 (#$ . 182371) (byte-code "\300\301\302\"\303\304\305 \"D\207" [sly-read-symbol-name "Unintern symbol: " t sly-read-package-name "from package: " sly-current-package] 4)]) #@63 Delete the package with name PACKAGE-NAME. (fn PACKAGE-NAME) (defalias 'sly-delete-package #[257 "\300\301\302DD!\207" [sly-eval-async cl:delete-package slynk::guess-package] 5 (#$ . 182792) (byte-code "\300\301\302 \"C\207" [sly-read-package-name "Delete package: " sly-current-package] 3)]) #@45 Load the Lisp file FILENAME. (fn FILENAME) (defalias 'sly-load-file #[257 "\300\301!!\302\303D!\207" [sly-to-lisp-filename expand-file-name sly-eval-with-transcript slynk:load-file] 5 (#$ . 183093) (byte-code "\300\301\302\211\211\303 \205\304\303 !%C\207" [read-file-name "[sly] Load file: " nil buffer-file-name file-name-nondirectory] 7)]) #@97 Hook run by `sly-change-directory'. The functions are called with the new (absolute) directory. (defvar sly-change-directory-hooks nil (#$ . 183447)) #@118 Make DIRECTORY become Lisp's current directory. Return whatever slynk:set-default-directory returns. (fn DIRECTORY) (defalias 'sly-change-directory #[257 "\300!\301\302\303!D!r\304\305 \206\306\307!!q\210\310!\210)\311\312\"\210\207" [expand-file-name sly-eval slynk:set-default-directory sly-to-lisp-filename process-buffer sly-connection error "No connection" cd-absolute run-hook-with-args sly-change-directory-hooks] 6 (#$ . 183604)]) #@118 Make DIRECTORY become Lisp's current directory. Return whatever slynk:set-default-directory returns. (fn DIRECTORY) (defalias 'sly-cd #[257 "\300\301\302!\"\207" [sly-message "default-directory: %s" sly-change-directory] 5 (#$ . 184057) (byte-code "\300\301\302\211\303$C\207" [read-directory-name "[sly] Directory: " nil t] 5)]) #@32 Show Lisp's default directory. (defalias 'sly-pwd #[0 "\300\301\302\303!\"\207" [sly-message "Directory %s" sly-eval (slynk:default-directory)] 4 (#$ . 184395) nil]) (defvar sly-documentation-lookup-function 'sly-hyperspec-lookup) #@65 Generalized documentation lookup. Defaults to hyperspec lookup. (defalias 'sly-documentation-lookup #[0 "\301!\207" [sly-documentation-lookup-function call-interactively] 2 (#$ . 184632) nil]) #@52 A wrapper for `hyperspec-lookup' (fn SYMBOL-NAME) (defalias 'sly-hyperspec-lookup #[257 "\300!\207" [hyperspec-lookup] 3 (#$ . 184832) (byte-code "\300\301 !C\207" [common-lisp-hyperspec-read-symbol-name sly-symbol-at-point] 2)]) #@49 Describe the symbol at point. (fn SYMBOL-NAME) (defalias 'sly-describe-symbol #[257 "\211\204\300\301!\210\302\303D!\207" [error "No symbol given" sly-eval-describe slynk:describe-symbol] 4 (#$ . 185070) (byte-code "\300\301!C\207" [sly-read-symbol-name "Describe symbol: "] 2)]) #@78 Display function- or symbol-documentation for SYMBOL-NAME. (fn SYMBOL-NAME) (defalias 'sly-documentation #[257 "\211\204\300\301!\210\302\303D!\207" [error "No symbol given" sly-eval-describe slynk:documentation-symbol] 4 (#$ . 185360) (byte-code "\300\301!C\207" [sly-read-symbol-name "Documentation for symbol: "] 2)]) #@20 (fn SYMBOL-NAME) (defalias 'sly-describe-function #[257 "\211\204\300\301!\210\302\303D!\207" [error "No symbol given" sly-eval-describe slynk:describe-function] 4 (#$ . 185691) (byte-code "\300\301!C\207" [sly-read-symbol-name "Describe symbol's function: "] 2)]) (byte-code "\300\301\302\303\304\305%\210\300\306\307\310\304\305%\207" [custom-declare-face sly-apropos-symbol ((t (:inherit sly-part-button-face))) "Face for the symbol name in Apropos output." :group sly sly-apropos-label ((t (:inherit italic))) "Face for label (`Function', `Variable' ...) in Apropos output."] 6) #@116 Return a short description for the performed apropos search. (fn STRING CASE-SENSITIVE-P PACKAGE ONLY-EXTERNAL-P) (defalias 'sly-apropos-summary #[1028 "\203\300\202 \301\302\303\304\"\203\303\305\"\202\301\203$\306\202%\301\260\207" ["Case-sensitive " "" "Apropos for " format "%S" " in package %S" " (external symbols only)"] 10 (#$ . 186286)]) #@246 Show all bound symbols whose names match STRING. With prefix arg, you're interactively asked for parameters of the search. With M-- (negative) prefix arg, prompt for package only. (fn STRING &optional ONLY-EXTERNAL-P PACKAGE CASE-SENSITIVE-P) (defalias 'sly-apropos #[1025 "\300\301\302D\257\303\304\305\n\n\f$$\"\207" [sly-eval-async slynk-apropos:apropos-list-for-emacs quote sly-rcurry sly-show-apropos sly-apropos-summary] 15 (#$ . 186658) (byte-code "\301=\203\302\303!\304\305\306\307\310#\307F\207\203&\302\311!\312\313!\305\306\307\310#\312\314!F\207\302\303!\304\307\211F\207" [current-prefix-arg - sly-read-from-minibuffer "Apropos external symbols: " t sly-read-package-name "Package (blank for all): " nil allow-blank "Apropos: " sly-y-or-n-p "External symbols only? " "Case-sensitive? "] 6)]) #@45 Shortcut for (sly-apropos nil nil) (defalias 'sly-apropos-all #[0 "\300\301\302!\303\211#\207" [sly-apropos sly-read-from-minibuffer "Apropos all symbols: " nil] 4 (#$ . 187492) nil]) #@126 Show apropos listing for symbols in PACKAGE. With prefix argument include internal symbols. (fn PACKAGE &optional INTERNAL) (defalias 'sly-apropos-package #[513 "\300\301?#\207" [sly-apropos ""] 6 (#$ . 187692) (byte-code "\301\302!\211\303\230\203\304 \202\211\262D\207" [current-prefix-arg sly-read-package-name "Package: " "" sly-current-package] 3)]) (defvar sly-apropos-mode-map (make-sparse-keymap)) (defvar sly-apropos-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [sly-apropos-mode-hook variable-documentation put "Hook run after entering SLY-Apropos mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp sly-apropos-mode-map definition-name sly-apropos-mode] 4) (defvar sly-apropos-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [sly-apropos-mode-abbrev-table sly-apropos-mode-map variable-documentation put purecopy "Keymap for `sly-apropos-mode'." boundp sly-apropos-mode-syntax-table definition-name sly-apropos-mode (lambda (#1=#:def-tmp-var) (defvar sly-apropos-mode-syntax-table #1#)) make-syntax-table "Syntax table for `sly-apropos-mode'." (lambda (#1#) (defvar sly-apropos-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `sly-apropos-mode'." derived-mode-parent apropos-mode] 5) #@227 SLY Apropos Mode TODO In addition to any hooks its parent mode `apropos-mode' might have run, this mode runs the hook `sly-apropos-mode-hook', as the final or penultimate step during initialization. \{sly-apropos-mode-map} (defalias 'sly-apropos-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R =\204R\326 \325C#\210\327 !\210\330\f!\210 \331 \210)\332\333!\207" [delay-mode-hooks major-mode mode-name sly-apropos-mode-map sly-apropos-mode-syntax-table sly-apropos-mode-abbrev-table make-local-variable t apropos-mode sly-apropos-mode "SLY-Apropos" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table sly-mode run-mode-hooks sly-apropos-mode-hook local-abbrev-table] 5 (#$ . 189330) nil]) #@38 (fn PLISTS STRING PACKAGE SUMMARY) (defalias 'sly-show-apropos #[1028 "\204 \306\307\"\207\310 \311r\312\313\314\315\316#!q\210\316p\317 \210\320 \210\321!\210\322\323!\2038\202=\324\261\210\325 \210\326?\"\210\321!\210eb\210\327p\320=?\205Z\316\"\210p,\207" [major-mode view-read-only standard-output inhibit-read-only sly-buffer-package sly-buffer-connection sly-message "No apropos matches for %S" sly-current-connection nil get-buffer-create sly-buffer-name :apropos :connection t erase-buffer sly-apropos-mode set-syntax-table boundp header-line-format "\n\n" sly-set-truncate-lines sly-print-apropos display-buffer lisp-mode-syntax-table] 12 (#$ . 190336)]) (define-button-type 'sly-apropos-symbol :supertype 'sly-part 'face nil 'action 'sly-button-goto-source 'sly-button-inspect #[514 "\300\301\302\"!\207" [sly-inspect format "(quote %s)"] 6 "\n\n(fn NAME TYPE)"] 'sly-button-goto-source #[514 "\300\301\"\207" [sly-edit-definition window] 5 "\n\n(fn NAME TYPE)"] 'sly-button-describe #[514 "\300\301D!\207" [sly-eval-describe slynk:describe-symbol] 5 "\n\n(fn NAME TYPE)"]) #@19 (fn DESIGNATOR) (defalias 'sly--package-designator-prefix #[257 "\211<\204 \300\301!\210\211A@AA@\203\302\202\303P\207" [error "unknown designator type" ":" "::"] 3 (#$ . 191460)]) #@19 (fn DESIGNATOR) (defalias 'sly-apropos-designator-string #[257 "\300!@P\207" [sly--package-designator-prefix] 3 (#$ . 191655)]) #@61 (fn DESIGNATOR ITEM BOUNDS PACKAGE-DESIGNATOR-SEARCHED-P) (defalias 'sly-apropos-insert-symbol #[1028 "\300!\301\302\303\304\305 \302D\306\307\310\304&\n\262\203\311\202!\312!G\302\211\211\211\211:\203d@\262<\2039\202=\211TD\262\211A\262\242\262@\262\313\\ \\\303\314\f%\210A\262\302\262\202'c\266\302\207" [sly-apropos-designator-string sly--make-text-button nil face sly-apropos-symbol part-args part-label "Symbol" :type 0 sly--package-designator-prefix put-text-property highlight] 18 (#$ . 191793)]) #@45 (fn PLISTS PACKAGE-DESIGNATOR-SEARCHED-P) (defalias 'sly-print-apropos #[514 "\300\211\211\211:\203\254@\262\301\302\"\262\303\304!!\262\305\301\306\" $\210\307 \210\300\211\211\211\211:\203\240\262\211A\262\242\262@\262`\262\310>\204\225\311\312\313\314\315 !\316\300O#!\317\320!\210\321\322\323#c\210\317\324!\210\317\203x\325=\204x\202y\326!\210\327`\330\331\211\332\333D\334\335\336\f\257\n#\210\307 \266AA\262\300\262\2020\266A\262\300\262\202\300\207" [nil plist-get :designator substring-no-properties sly-apropos-designator-string sly-apropos-insert-symbol :bounds terpri (:designator :package :bounds) upcase-initials replace-regexp-in-string "-" " " symbol-name 1 princ " " propertize face sly-apropos-label ": " :not-documented "(not documented)" add-text-properties action sly-button-describe #[514 "\300\301E!\207" [sly-eval-describe slynk:describe-definition-for-emacs] 6 "\n\n(fn NAME TYPE)"] part-args button t apropos-label] 27 (#$ . 192344)]) #@18 (fn NAME TYPE) (defalias 'sly-apropos-describe #[514 "\300\301E!\207" [sly-eval-describe slynk:describe-definition-for-emacs] 6 (#$ . 193368)]) (require 'info) (defalias 'sly-info--file #[0 "\301\302\303\304\"\"\206 \305\306!\207" [Info-directory-list cl-some #[257 "\300\211\301\"\206\f\211\302\"\207" [#[514 "\301\"\301\"\302!\205\211\207" [sly-path expand-file-name file-exists-p] 6 "\n\n(fn SUBDIR NAME)"] "sly.info" "sly.info.gz"] 5 "\n\n(fn SUBDIR)"] append ("doc" ".") sly-error "No sly.info, run `make -C doc sly.info' from a SLY git checkout"] 5]) (require 'info) (defvar sly-info--cached-node-names nil) #@13 (fn FILE) (defalias 'sly-info--node-names #[257 "\206'\301\302\303\"r\211q\210\304\305\"\216\306p\"\210\3071 \310 0\202\"\210\311*\262\211\207" [sly-info--cached-node-names generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] info (error) Info-build-node-completions nil] 5 (#$ . 194004)]) #@43 Read SLY manual (fn FILE &optional NODE) (defalias 'sly-info #[513 "\300\203 \301\302#\202!\207" [info format "(%s)%s"] 7 (#$ . 194369) (byte-code "\300 \211\301\302\303\304\305!\"\306\307$D\207" [sly-info--file sly-completing-read "Manual node? (`Top' to read the whole manual): " remove ("*") sly-info--node-names nil t] 8)]) (defvar sly-xref-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\310#\210\302\314\312#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\323\"\210\207" [button-buffer-map make-sparse-keymap define-key " " sly-xref-goto " " sly-xref-show "n" sly-xref-next-line "p" sly-xref-prev-line "." "," "" sly-recompile-xref " " sly-recompile-all-xrefs "q" quit-window set-keymap-parent] 5)) (defvar sly-xref-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [sly-xref-mode-hook variable-documentation put "Hook run after entering Xref mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp sly-xref-mode-map definition-name sly-xref-mode] 4) (defvar sly-xref-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [sly-xref-mode-abbrev-table sly-xref-mode-map variable-documentation put purecopy "Keymap for `sly-xref-mode'." boundp sly-xref-mode-syntax-table definition-name sly-xref-mode (lambda (#1=#:def-tmp-var) (defvar sly-xref-mode-syntax-table #1#)) make-syntax-table "Syntax table for `sly-xref-mode'." (lambda (#1#) (defvar sly-xref-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `sly-xref-mode'." derived-mode-parent lisp-mode] 5) #@442 sly-xref-mode: Major mode for cross-referencing. \The most important commands: \[sly-xref-show] - Display referenced source and keep xref window. \[sly-xref-goto] - Jump to referenced source and dismiss xref window. \{sly-xref-mode-map} In addition to any hooks its parent mode `lisp-mode' might have run, this mode runs the hook `sly-xref-mode-hook', as the final or penultimate step during initialization. (defalias 'sly-xref-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R =\204R\326 \325C#\210\327 !\210\330\f!\210 \331\211\307 \332 \210)\333\334!\207" [delay-mode-hooks major-mode mode-name sly-xref-mode-map sly-xref-mode-syntax-table sly-xref-mode-abbrev-table make-local-variable t lisp-mode sly-xref-mode "Xref" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table nil sly-mode run-mode-hooks sly-xref-mode-hook local-abbrev-table font-lock-defaults delayed-mode-hooks buffer-read-only] 6 (#$ . 196332) nil]) (defalias 'sly-next-line/not-add-newlines #[0 "\301\302y)\207" [next-line-add-newlines nil 1] 1 nil nil]) #@109 Execute BODY in a xref buffer, then show that buffer. (fn (XREF-TYPE SYMBOL &optional PACKAGE) &body BODY) (defalias 'sly-with-xref-buffer '(macro . #[128 "\211\203 \211A\262\242\202\300\301\302GD\"\303A\203#\211A\262\210\202+\300\301\302GD\"\210\303\211A\262\210\211A\262\242\203G\300\301\302\304G\\D\"\210\305\306\307\310BBB\311BBB\207" [signal wrong-number-of-arguments sly-with-xref-buffer nil 3 sly-with-popup-buffer (sly-buffer-name :xref :connection t) :package (:connection t :select t :mode 'sly-xref-mode) (sly-set-truncate-lines)] 10 (#$ . 197710)])) (byte-code "\300\301\302\303#\304\305\306\307\310\311\312\311\313\314\311\315& \207" [function-put sly-with-xref-buffer lisp-indent-function 1 define-button-type sly-xref :supertype sly-part action sly-button-goto-source mouse-action sly-button-show-source #[257 "\300!\207" [sly-xref--show-location] 3 "\n\n(fn LOCATION)"] #[257 "\300\301\"\207" [sly--pop-to-source-location sly-xref] 4 "\n\n(fn LOCATION)"]] 13) #@23 (fn LABEL LOCATION) (defalias 'sly-xref-button #[514 "\300\301\302\303\304C\305\306&\207" [sly--make-text-button nil :type sly-xref part-args part-label "Location"] 11 (#$ . 198718)]) #@202 Insert XREF-ALIST in the current-buffer. XREF-ALIST is of the form ((GROUP . ((LABEL LOCATION) ...)) ...). GROUP and LABEL are for decoration purposes. LOCATION is a source-location. (fn XREF-ALIST) (defalias 'sly-insert-xrefs #[257 "\211\300\211:\203m@\262\211A\262\242\262\301\302D`\303\304\"\305`#\210\266\300\211\211\211\211:\203d@\262\211A\262\242\262@\262`\262\306\307\310!\"\302\261\210\305`\311D#\210A\262\300\262\202,\266A\262\202\266\312\313!\207" [nil (face bold) "\n" apply insert add-text-properties " " sly-xref-button sly-one-line-ify sly-location backward-delete-char 1] 15 (#$ . 198915)]) #@12 (fn ARG) (defalias 'sly-xref-next-line #[257 "\300!\211\205\n\301!\207" [forward-button sly-button-show-source] 4 (#$ . 199571) "p"]) #@12 (fn ARG) (defalias 'sly-xref-prev-line #[257 "\300[!\207" [sly-xref-next-line] 3 (#$ . 199716) "p"]) #@12 (fn LOC) (defalias 'sly-xref--show-location #[257 "\211@\211\300\267\202\301!\207\302\303A@\"\207\211\304=\203\304\207\305\306\307#\205$\304\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:location 8 :error 12)) sly--display-source-location sly-message "%s" nil error "cl-ecase failed: %s, %s" (:location :error nil)] 6 (#$ . 199826)]) #@165 Maybe show a buffer listing the cross references XREFS. METHOD is used to set `sly-xref--popup-method', which see. (fn XREFS TYPE SYMBOL PACKAGE &optional METHOD) (defalias 'sly-xref--show-results #[1284 "\204 \306\307\"\210\310\207\311 \310r\312\313\314\315\316#!q\210\316p\317 \210\320 \210\321!\210\322 \210\323!\210eb\210\324p\320=?\205F\316\"\211\203P\325\316\"\210\210p,\207" [major-mode view-read-only standard-output inhibit-read-only sly-buffer-package sly-buffer-connection sly-message "No references found for %s." nil sly-current-connection get-buffer-create sly-buffer-name :xref :connection t erase-buffer sly-xref-mode set-syntax-table sly-set-truncate-lines sly-insert-xrefs display-buffer select-window lisp-mode-syntax-table sly-xref--popup-method] 13 (#$ . 200224)]) #@61 Show all known callers of the function SYMBOL. (fn SYMBOL) (defalias 'sly-who-calls #[257 "\300\301\"\207" [sly-xref :calls] 4 (#$ . 201040) (byte-code "\300\301\302\"C\207" [sly-read-symbol-name "Who calls: " t] 3)]) #@70 Show all known functions called by the function SYMBOL. (fn SYMBOL) (defalias 'sly-calls-who #[257 "\300\301\"\207" [sly-xref :calls-who] 4 (#$ . 201266) (byte-code "\300\301\302\"C\207" [sly-read-symbol-name "Who calls: " t] 3)]) #@70 Show all known referrers of the global variable SYMBOL. (fn SYMBOL) (defalias 'sly-who-references #[257 "\300\301\"\207" [sly-xref :references] 4 (#$ . 201505) (byte-code "\300\301\302\"C\207" [sly-read-symbol-name "Who references: " t] 3)]) #@68 Show all known binders of the global variable SYMBOL. (fn SYMBOL) (defalias 'sly-who-binds #[257 "\300\301\"\207" [sly-xref :binds] 4 (#$ . 201755) (byte-code "\300\301\302\"C\207" [sly-read-symbol-name "Who binds: " t] 3)]) #@68 Show all known setters of the global variable SYMBOL. (fn SYMBOL) (defalias 'sly-who-sets #[257 "\300\301\"\207" [sly-xref :sets] 4 (#$ . 201988) (byte-code "\300\301\302\"C\207" [sly-read-symbol-name "Who sets: " t] 3)]) #@60 Show all known expanders of the macro SYMBOL. (fn SYMBOL) (defalias 'sly-who-macroexpands #[257 "\300\301\"\207" [sly-xref :macroexpands] 4 (#$ . 202218) (byte-code "\300\301\302\"C\207" [sly-read-symbol-name "Who macroexpands: " t] 3)]) #@66 Show all known methods specialized on class SYMBOL. (fn SYMBOL) (defalias 'sly-who-specializes #[257 "\300\301\"\207" [sly-xref :specializes] 4 (#$ . 202464) (byte-code "\300\301\302\"C\207" [sly-read-symbol-name "Who specializes: " t] 3)]) #@69 List the callers of SYMBOL-NAME in a xref window. (fn SYMBOL-NAME) (defalias 'sly-list-callers #[257 "\300\301\"\207" [sly-xref :callers] 4 (#$ . 202713) (byte-code "\300\301!C\207" [sly-read-symbol-name "List callers: "] 2)]) #@69 List the callees of SYMBOL-NAME in a xref window. (fn SYMBOL-NAME) (defalias 'sly-list-callees #[257 "\300\301\"\207" [sly-xref :callees] 4 (#$ . 202948) (byte-code "\300\301!C\207" [sly-read-symbol-name "List callees: "] 2)]) #@72 Make an XREF request to Lisp. (fn TYPE SYMBOL &optional CONTINUATION) (defalias 'sly-xref #[770 "\300\301\302D\302DE\303\304\305 %\"\207" [sly-eval-async slynk:xref quote sly-rcurry #[1285 "\300\"\205\301!A@\206\302$\262\207" [sly-xref-implemented-p sly-analyze-xrefs sly-xref--show-results] 11 "\n\n(fn RESULT TYPE SYMBOL PACKAGE CONT)"] sly-current-package] 11 (#$ . 203183)]) #@69 Tell if xref TYPE is available according to XREFS. (fn TYPE XREFS) (defalias 'sly-xref-implemented-p #[514 "\211\300=\203\301\302\303!\304 #\210\305\207\306\207" [:not-implemented sly-display-oneliner "%s is not implemented yet on %s." sly-xref-type sly-lisp-implementation-name nil t] 6 (#$ . 203594)]) #@58 Return a human readable version of xref TYPE. (fn TYPE) (defalias 'sly-xref-type #[257 "\300\301\302!\"\207" [format "who-%s" sly-cl-symbol-name] 5 (#$ . 203908)]) #@80 Make multiple XREF requests at once. (fn TYPES SYMBOL &optional CONTINUATION) (defalias 'sly-xref--get-xrefs #[770 "\300\301\302D\302DE\303\304$\"\207" [sly-eval-async slynk:xrefs quote make-closure #[257 "\302\206\303\304\211\211:\203*@\262\211A\262\242\262\305!BB\262A\262\202 \211\237\266\204\300\301\306 $\207" [V0 V1 V2 sly-xref--show-results nil sly-xref-type sly-current-package] 8 "\n\n(fn RESULT)"]] 10 (#$ . 204080)]) (defalias 'sly-xref-location-at-point #[0 "\212\300\301!\210\302`\303\"\206\304\305!)\207" [beginning-of-line 1 get-text-property sly-location error "No reference at point."] 3]) (defalias 'sly-xref-dspec-at-point #[0 "\212\301\302!\210\303 p\304\305#\216\306!\210\307 \210\310 \210\311 )\266\202)\207" [lisp-mode-syntax-table beginning-of-line 1 syntax-table make-closure #[0 "r\301q\210\302\300!)\207" [V0 V1 set-syntax-table] 2] set-syntax-table forward-sexp backward-sexp sly-sexp-at-point] 6]) (defalias 'sly-all-xrefs #[0 "\300\212eb\210\301y\302U\203$\303`\304\"\211\203 \305 \211D\211B\262\266\210\202)\211\237\207" [nil 1 0 get-text-property sly-location sly-xref-dspec-at-point] 6]) #@46 Goto the cross-referenced location at point. (defalias 'sly-xref-goto #[0 "\300\301 \302\"\207" [sly--pop-to-source-location sly-xref-location-at-point sly-xref] 3 (#$ . 205246) nil]) #@48 Display the xref at point in the other window. (defalias 'sly-xref-show #[0 "\300\301 !\207" [sly--display-source-location sly-xref-location-at-point] 2 (#$ . 205436) nil]) #@222 Search the next text range where PROP is non-nil. Return the value of PROP. If BACKWARD is non-nil, search backward. If PROP-VALUE-FN is non-nil use it to extract PROP's value. (fn PROP &optional BACKWARD PROP-VALUE-FN) (defalias 'sly-search-property #[769 "\203\300\202 \301\206\302\303\"`\304`\"b\210 \211\262\204*m\204*o\203\211\2062b\210\304\207" [previous-single-char-property-change next-single-char-property-change make-closure #[0 "\301`\300\"\207" [V0 get-text-property] 3] nil] 10 (#$ . 205616)]) #@111 Recompile definition at point. Uses prefix arguments like `sly-compile-defun'. (fn &optional RAW-PREFIX-ARG) (defalias 'sly-recompile-xref #[256 "\301!\302 \303 \304C\305\306Cp#\"\266\202)\207" [sly-compilation-policy sly-compute-policy sly-xref-location-at-point sly-xref-dspec-at-point sly-recompile-locations sly-rcurry sly-xref-recompilation-cont] 9 (#$ . 206150) "P"]) #@107 Recompile all definitions. Uses prefix arguments like `sly-compile-defun'. (fn &optional RAW-PREFIX-ARG) (defalias 'sly-recompile-all-xrefs #[256 "\301!\302\211\303 \211\203(\211@\304!\203!\211@B\262\211A@B\262A\266\202\202\210\305\306\307p#\"\266\202)\207" [sly-compilation-policy sly-compute-policy nil sly-all-xrefs sly-xref-has-location-p sly-recompile-locations sly-rcurry sly-xref-recompilation-cont] 9 (#$ . 206536) "P"]) #@30 (fn RESULTS DSPECS BUFFER) (defalias 'sly-xref-recompilation-cont #[771 "r\211q\210\300\301!\302\"\210\212\303\302\211:\2032@\262\3048\206'A@\205'\305B\262A\262\202\211\237\266\203\"*\207" [sly-compilation-finished sly-aggregate-compilation-results nil sly-xref-insert-recompilation-flags 2 :complained] 10 (#$ . 206986)]) #@16 (fn RESULTS) (defalias 'sly-aggregate-compilation-results #[257 "\300\301\302\303\304\"\"\305\306\"\301\307\303\310\"\"F\207" [:compilation-result cl-reduce append mapcar sly-compilation-result\.notes cl-every sly-compilation-result\.successp + sly-compilation-result\.duration] 9 (#$ . 207334)]) #@35 (fn DSPECS COMPILATION-RESULTS) (defalias 'sly-xref-insert-recompilation-flags #[514 "\301\302 eb\210\301\301:\203h@\262:\203h@\262\212\301\211\303!\210\304 \262\232\2044\301\262\202 \266\301\210\305\306iZT\"\210\307\310\311=\203N\312\202Y\301=\203X\313\202Y\"c\210)A\262A\262\202 \266)\301\207" [buffer-read-only nil sly-column-max search-forward sly-xref-dspec-at-point insert-char 32 format "[%s]" t :success :failure] 11 (#$ . 207643)]) (defvar sly-macroexpansion-minor-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\305#\210\301\313\314#\210\301\315\316#\210\301\317\320#\210\207" [make-sparse-keymap define-key "g" sly-macroexpand-again "a" sly-macroexpand-all-inplace "q" quit-window [remap sly-macroexpand-1] sly-macroexpand-1-inplace [remap sly-macroexpand-all] [remap sly-compiler-macroexpand-1] sly-compiler-macroexpand-1-inplace [remap sly-expand-1] sly-expand-1-inplace [remap undo] sly-macroexpand-undo] 5)) #@127 Non-nil if Sly-Macroexpansion minor mode is enabled. Use the command `sly-macroexpansion-minor-mode' to change this variable. (defvar sly-macroexpansion-minor-mode nil (#$ . 208673)) (make-variable-buffer-local 'sly-macroexpansion-minor-mode) #@611 SLY mode for macroexpansion This is a minor mode. If called interactively, toggle the `Sly-Macroexpansion minor mode' mode. If the prefix argument is positive, enable the mode, and if it is zero or negative, disable the mode. If called from Lisp, toggle the mode if ARG is `toggle'. Enable the mode if ARG is nil, omitted, or is a positive number. Disable the mode if ARG is a negative number. To check whether the minor mode is enabled in the current buffer, evaluate `sly-macroexpansion-minor-mode'. The mode's hook is called both when the mode is enabled and when it is disabled. (fn &optional ARG) (defalias 'sly-macroexpansion-minor-mode #[256 "\302 \303=\203 ?\202\247\203\304W\203\305\202\306\307\301!\2031\310\300 \"\2031\300 B\311\304!\210\312\313\203?\314\202@\315\"\210\316\317!\203b\302 \203T\211\302 \232\203b\320\321\203^\322\202_\323\324#\210\210\325 \210\207" [sly-macroexpansion-minor-mode local-minor-modes current-message toggle 1 nil t boundp delq read-only-mode run-hooks sly-macroexpansion-minor-mode-hook sly-macroexpansion-minor-mode-on-hook sly-macroexpansion-minor-mode-off-hook called-interactively-p any message "Sly-Macroexpansion minor mode %sabled%s" "en" "dis" " in current buffer" force-mode-line-update] 6 (#$ . 208923) (byte-code "\203\n\301!\202 \302C\207" [current-prefix-arg prefix-numeric-value toggle] 2)]) (defvar sly-macroexpansion-minor-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\303\301\305\306#\210\303\301\307\310C#\210\311\312\313\314\300!\205#\310\211%\207" [sly-macroexpansion-minor-mode-map sly-macroexpansion-minor-mode-hook variable-documentation put "Hook run after entering or leaving `sly-macroexpansion-minor-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" custom-type hook standard-value nil add-minor-mode sly-macroexpansion-minor-mode " Macroexpand" boundp] 6) #@22 (fn &optional ARG) (defalias 'sly-macroexpand-undo #[256 "\302\303\304!\203 \304ed\"\210\302\305!*\207" [inhibit-read-only undo-no-redo t fboundp sly-remove-edits undo] 4 (#$ . 210901) nil]) #@102 Specifies the last macroexpansion preformed. This variable specifies both what was expanded and how. (defvar sly-eval-macroexpand-expression nil (#$ . 211105)) #@34 (fn EXPANDER &optional STRING) (defalias 'sly-eval-macroexpand #[513 "\211\206\301\302!D\303\304\"\207" [sly-eval-macroexpand-expression sly-sexp-at-point interactive sly-eval-async sly-initialize-macroexpansion-buffer] 6 (#$ . 211271)]) #@36 Reperform the last macroexpansion. (defalias 'sly-macroexpand-again #[0 "\301\302\303p\"\"\207" [sly-eval-macroexpand-expression sly-eval-async sly-rcurry sly-initialize-macroexpansion-buffer] 5 (#$ . 211523) nil]) #@35 (fn EXPANSION &optional BUFFER) (defalias 'sly-initialize-macroexpansion-buffer #[513 "\302\206\303 !\210\304\305\211\306 \210c\210eb\210\307\310!\203#\310 \202%\311 *\207" [buffer-undo-list inhibit-read-only pop-to-buffer sly-create-macroexpansion-buffer nil t erase-buffer fboundp font-lock-ensure font-lock-fontify-buffer] 4 (#$ . 211745)]) (defalias 'sly-create-macroexpansion-buffer #[0 "\306\307!\310 \311 \312r\313!q\210\314p\315 \210\316 \210\317!\210\320\321!\210\314\322p\316=?\2054\314\"\210p,\207" [major-mode view-read-only standard-output inhibit-read-only sly-buffer-package sly-buffer-connection sly-buffer-name :macroexpansion sly-current-package sly-current-connection nil get-buffer-create t erase-buffer lisp-mode set-syntax-table sly-macroexpansion-minor-mode 1 display-buffer lisp-mode-syntax-table font-lock-keywords-case-fold-search] 8]) #@123 Substitute the sexp at point with its macroexpansion. NB: Does not affect sly-eval-macroexpand-expression (fn EXPANDER) (defalias 'sly-eval-macroexpand-inplace #[257 "\300\301!\302@!\302A!`p\303\304\"D\305\306%\"\207" [sly-bounds-of-sexp-at-point interactive copy-marker sly-eval-async buffer-substring-no-properties make-closure #[257 "r\303q\210\305\306\307!\203\307ed\"\210\300b\210\300\301|\210\310!\210\302b*\207" [V0 V1 V2 V3 buffer-read-only nil fboundp sly-remove-edits sly-insert-indented] 4 "\n\n(fn EXPANSION)"]] 14 (#$ . 212640) nil]) #@177 Display the macro expansion of the form at point. The form is expanded with CL:MACROEXPAND-1 or, if a prefix argument is given, with CL:MACROEXPAND. (fn &optional REPEATEDLY) (defalias 'sly-macroexpand-1 #[256 "\300\203 \301\202\n\302!\207" [sly-eval-macroexpand slynk:slynk-macroexpand slynk:slynk-macroexpand-1] 3 (#$ . 213216) "P"]) #@29 (fn &optional REPEATEDLY) (defalias 'sly-macroexpand-1-inplace #[256 "\300\203 \301\202\n\302!\207" [sly-eval-macroexpand-inplace slynk:slynk-macroexpand slynk:slynk-macroexpand-1] 3 (#$ . 213562) "P"]) #@137 Display the recursively macro expanded sexp at point. With optional JUST-ONE prefix arg, use CL:MACROEXPAND-1. (fn &optional JUST-ONE) (defalias 'sly-macroexpand-all #[256 "\300\203 \301\202\n\302!\207" [sly-eval-macroexpand slynk:slynk-macroexpand-1 slynk:slynk-macroexpand-all] 3 (#$ . 213777) "P"]) #@55 Display the recursively macro expanded sexp at point. (defalias 'sly-macroexpand-all-inplace #[0 "\300\301!\207" [sly-eval-macroexpand-inplace slynk:slynk-macroexpand-all] 2 (#$ . 214089) nil]) #@83 Display the compiler-macro expansion of sexp at point. (fn &optional REPEATEDLY) (defalias 'sly-compiler-macroexpand-1 #[256 "\300\203 \301\202\n\302!\207" [sly-eval-macroexpand slynk:slynk-compiler-macroexpand slynk:slynk-compiler-macroexpand-1] 3 (#$ . 214289) "P"]) #@83 Display the compiler-macro expansion of sexp at point. (fn &optional REPEATEDLY) (defalias 'sly-compiler-macroexpand-1-inplace #[256 "\300\203 \301\202\n\302!\207" [sly-eval-macroexpand-inplace slynk:slynk-compiler-macroexpand slynk:slynk-compiler-macroexpand-1] 3 (#$ . 214568) "P"]) #@343 Display the macro expansion of the form at point. The form is expanded with CL:MACROEXPAND-1 or, if a prefix argument is given, with CL:MACROEXPAND. Contrary to `sly-macroexpand-1', if the form denotes a compiler macro, SLYNK-BACKEND:COMPILER-MACROEXPAND or SLYNK-BACKEND:COMPILER-MACROEXPAND-1 are used instead. (fn &optional REPEATEDLY) (defalias 'sly-expand-1 #[256 "\300\203 \301\202\n\302!\207" [sly-eval-macroexpand slynk:slynk-expand slynk:slynk-expand-1] 3 (#$ . 214864) "P"]) #@177 Display the macro expansion of the form at point. The form is expanded with CL:MACROEXPAND-1 or, if a prefix argument is given, with CL:MACROEXPAND. (fn &optional REPEATEDLY) (defalias 'sly-expand-1-inplace #[256 "\300\203 \301\202\n\302!\207" [sly-eval-macroexpand-inplace slynk:slynk-expand slynk:slynk-expand-1] 3 (#$ . 215362) "P"]) #@157 Expand the format-string at point and display it. With prefix arg, or if no string at point, prompt the user for a string to expand. (fn &optional STRING) (defalias 'sly-format-string-expand #[256 "\300\301\"\207" [sly-eval-macroexpand slynk:slynk-format-string-expand] 4 (#$ . 215710) (byte-code "\204 \301 \206\302\303\301 \"C\207" [current-prefix-arg sly-string-at-point sly-read-from-minibuffer "Expand format: "] 3)]) #@17 Interrupt Lisp. (defalias 'sly-interrupt #[0 "\301 \203\302 \207\303\304D!\207" [sly-current-thread sly-use-sigint-for-interrupt sly-send-sigint sly-dispatch-event :emacs-interrupt] 3 (#$ . 216145) nil]) (defalias 'sly-quit #[0 "\300\301!\207" [error "Not implemented properly. Use `sly-interrupt' instead."] 2]) #@95 Quit lisp, kill the inferior process and associated buffers. (fn &optional KILL INTERACTIVE) (defalias 'sly-quit-lisp #[512 "\211\203\n\300\301!\202\f\302 \303\304#\207" [sly-prompt-for-connection "Connection to quit: " sly-current-connection sly-quit-lisp-internal sly-quit-sentinel] 7 (#$ . 216468) (list current-prefix-arg t)]) #@366 Kill SLY socket connection CONNECTION. Do this by evaluating (SLYNK:QUIT-LISP) in it, and don't wait for it to reply as usual with other evaluations. If it's non-nil, setup SENTINEL to run on CONNECTION when it finishes dying. If KILL is t, and there is such a thing, also kill the inferior lisp process associated with CONNECTION. (fn CONNECTION SENTINEL KILL) (defalias 'sly-quit-lisp-internal #[771 "\301\302!\210\303\304\"\210\305\304C\306\307\310$\"\210\311\312\"\210T\211\262\313W\2037\211\242\2047\314\315!\210\202!\211\242?\205F\311\316\"\210\317!\266\202)\207" [sly-dispatching-connection sly-eval-async (slynk:quit-lisp) set-process-filter nil 0 set-process-sentinel make-closure #[514 "\302\303\240\210\304\305#\210\306!\301\203+\211\203+\307!\310>\204+\304\311#\210\312!\266\202L\301\203=\211\203=\304\313#\266\202L\301\203K\211\204K\304\314#\210\210\300\205T\300\"\207" [V0 V1 V2 t sly-message "Connection %s is dying (%s)" sly-inferior-process process-status (exit signal) "Quitting %s: also killing the inferior process %s" kill-process "Quitting %s: inferior process was already dead" "Quitting %s: No inferior process to kill!"] 7 "\n\n(fn CONNECTION STATUS)"] sly-message "Waiting for connection %s to die by itself..." 30 sleep-for 0.1 "Connection %s didn't die by itself. Killing it." delete-process] 12 (#$ . 216811)]) #@24 (fn PROCESS MESSAGE) (defalias 'sly-quit-sentinel #[514 "\300!\204\301\302\303C\303$\210\304!\211\205\305!\203 \306!\210\211\203(\307!\210\310\311\"\210\312\313!\207" [process-status cl--assertion-failed (process-status process) nil sly-inferior-process process-buffer delete-process kill-buffer sly-net-close "Quitting lisp" sly-message "Connection closed."] 7 (#$ . 218206)]) #@36 Hook run on entry to the debugger. (defvar sly-db-hook nil (#$ . 218606)) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable sly-db-initial-restart-limit funcall function #[0 "\300\207" [6] 1] "Maximum number of restarts to display initially." :group sly-debugger :type integer] 8) #@24 (fn &rest VARIABLES) (defalias 'sly-make-variables-buffer-local #[128 "\300\301\"\207" [mapcar make-variable-buffer-local] 4 (#$ . 218930)]) (byte-code "\300\301\302!\303\302!\304\302!\305\302!\306\302!\307\302!&\207" [sly-make-variables-buffer-local (lambda (#1=#:def-tmp-var) (defvar sly-db-condition #1# "A list (DESCRIPTION TYPE) describing the condition being debugged.")) nil (lambda (#1#) (defvar sly-db-restarts #1# "List of (NAME DESCRIPTION) for each available restart.")) (lambda (#1#) (defvar sly-db-level #1# "Current debug level (recursion depth) displayed in buffer.")) (lambda (#1#) (defvar sly-db-backtrace-start-marker #1# "Marker placed at the first frame of the backtrace.")) (lambda (#1#) (defvar sly-db-restart-list-start-marker #1# "Marker placed at the first restart in the restart list.")) (lambda (#1#) (defvar sly-db-continuations #1# "List of ids for pending continuation."))] 8) #@73 Return STRING propertised with face sly-db-NAME-face. (fn NAME STRING) (defalias 'sly-db-in-face '(macro . #[514 "\300\301\302\303!\"!\304\305!\306DC\307\310DEF\207" [intern format "sly-db-%s-face" symbol-name cl-gensym "string" let sly-add-face quote] 9 (#$ . 219848)])) (byte-code "\300\301\302\303#\300\207" [function-put sly-db-in-face lisp-indent-function 1] 4) #@31 Syntax table for SLY-DB mode. (defvar sly-db-mode-syntax-table (byte-code "\301!\302\303\304#\210\302\305\306#\210\207" [lisp-mode-syntax-table copy-syntax-table modify-syntax-entry 60 "(" 62 ")"] 5) (#$ . 220228)) (defvar sly-db-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\320#\210\302\322\323#\210\302\324\325#\210\302\326\327#\210\302\330\331#\210\302\332\333#\210\302\334\335#\210\302\336\337#\210\302\340\341#\210\342\"\210\207" [button-buffer-map make-sparse-keymap define-key "n" sly-db-down "p" sly-db-up "\356" sly-db-details-down "\360" sly-db-details-up "<" sly-db-beginning-of-backtrace ">" sly-db-end-of-backtrace "a" sly-db-abort "q" "c" sly-db-continue "A" sly-db-break-with-system-debugger "B" sly-db-break-with-default-debugger "P" sly-db-print-condition "I" sly-db-invoke-restart-by-name "C" sly-db-inspect-condition ":" sly-interactive-eval "Q" sly-db-quit set-keymap-parent] 5)) (defvar sly-db-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [sly-db-mode-hook variable-documentation put "Hook run after entering sly-db mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp sly-db-mode-map definition-name sly-db-mode] 4) (defvar sly-db-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\317#\207" [sly-db-mode-abbrev-table sly-db-mode-map variable-documentation put purecopy "Keymap for `sly-db-mode'." boundp sly-db-mode-syntax-table definition-name sly-db-mode (lambda (#1=#:def-tmp-var) (defvar sly-db-mode-syntax-table #1#)) make-syntax-table "Syntax table for `sly-db-mode'." (lambda (#1#) (defvar sly-db-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `sly-db-mode'." derived-mode-parent] 5) #@1790 Superior lisp debugger mode. In addition to ordinary SLY commands, the following are available:\ Commands to invoke restarts: \[sly-db-quit] - quit \[sly-db-abort] - abort \[sly-db-continue] - continue \[sly-db-invoke-restart-0]-\[sly-db-invoke-restart-9] - restart shortcuts \[sly-db-invoke-restart-by-name] - invoke restart by name Navigation commands: \[forward-button] - next interactive button \[sly-db-down] - down \[sly-db-up] - up \[sly-db-details-down] - down, with details \[sly-db-details-up] - up, with details \[sly-db-beginning-of-backtrace] - beginning of backtrace \[sly-db-end-of-backtrace] - end of backtrace Commands to examine and operate on the selected frame:\ \[sly-db-show-frame-source] - show frame source \[sly-db-goto-source] - go to frame source \[sly-db-toggle-details] - toggle details \[sly-db-disassemble] - dissassemble frame \[sly-db-eval-in-frame] - prompt for a form to eval in frame \[sly-db-pprint-eval-in-frame] - eval in frame and pretty print result \[sly-db-inspect-in-frame] - inspect in frame's context \[sly-db-restart-frame] - restart frame \[sly-db-return-from-frame] - return from frame Miscellaneous commands:\ \[sly-db-step] - step \[sly-db-break-with-default-debugger] - switch to native debugger \[sly-db-break-with-system-debugger] - switch to system debugger (gdb) \[sly-interactive-eval] - eval \[sly-db-inspect-condition] - inspect signalled condition Full list of commands: \{sly-db-mode-map} Full list of frame-specific commands: \{sly-db-frame-map} This mode runs the hook `sly-db-mode-hook', as the final or penultimate step during initialization. (defalias 'sly-db-mode #[0 "\306\300!\210\307\310 \210\311\312\313 !\210\314\f!\210 \315 \210\314\f!\210\316 \210\317 \307\320\321!\210\322\321!\210)\323\324!\207" [delay-mode-hooks major-mode mode-name sly-db-mode-map sly-db-mode-syntax-table sly-db-mode-abbrev-table make-local-variable t kill-all-local-variables sly-db-mode "sly-db" use-local-map set-syntax-table erase-buffer sly-set-truncate-lines sly-connection sly-mode 1 sly-interactive-buttons-mode run-mode-hooks sly-db-mode-hook local-abbrev-table sly-buffer-connection buffer-read-only] 2 (#$ . 222394) nil]) (byte-code "\301\302\211W\2032\211\303\304\305\"!\304\306\"\307\310\311\312\313 D\257\314\"\210\315\316!#\266\211T\262\202\266\317\320\321\322\323DD\324\325\326\327\330&\207" [sly-db-mode-map 10 0 intern format "sly-db-invoke-restart-%S" "Invoke restart numbered %S." eval defun nil (interactive) sly-db-invoke-restart t define-key number-to-string custom-declare-variable sly-db-focus-debugger funcall function #[0 "\300\207" [auto] 1] "Control if debugger window gets focus immediately.\n\nIf nil, the window is never focused automatically; if the symbol\n`auto', the window is only focused if the user has performed no\nother commands in the meantime (i.e. he/she is expecting a\npossible debugger); any other non-nil value means to always\nautomatically focus the debugger window." :group sly-debugger :type (choice (const always) (const never) (const auto))] 13) #@109 Return a list of where PREDICATE returns true. PREDICATE is executed in the buffer to test. (fn PREDICATE) (defalias 'sly-filter-buffers #[257 "\300\301\302\"\303 \"\207" [cl-remove-if-not make-closure #[257 "r\211q\210\300 )\207" [V0] 2 "\n\n(fn %BUFFER)"] buffer-list] 5 (#$ . 225656)]) #@91 Return a list of all sly-db buffers (belonging to CONNECTION.) (fn &optional CONNECTION) (defalias 'sly-db-buffers #[256 "\211\203 \300\301\302\"!\207\300\303!\207" [sly-filter-buffers make-closure #[0 " \300=\205 \n\303=\207" [V0 sly-buffer-connection major-mode sly-db-mode] 2] #[0 "\301=\207" [major-mode sly-db-mode] 2]] 5 (#$ . 225953)]) #@36 (fn THREAD &optional CONNECTION) (defalias 'sly-db-find-buffer #[513 "\211\206\300 \301\302\303#\304 \"\207" [sly-connection cl-find-if make-closure #[257 "r\211q\210\n\301=\205 \300=)\207" [V0 V1 sly-buffer-connection sly-current-thread] 3 "\n\n(fn BUFFER)"] sly-db-buffers] 8 (#$ . 226307)]) #@74 Maybe pop to *sly-db* buffer for current context. (fn &optional BUTTON) (defalias 'sly-db-pop-to-debugger-maybe #[256 "\301!\211\203 \302!\207\303\304!\207" [sly-current-thread sly-db-find-buffer pop-to-buffer sly-error "Can't find a *sly-db* debugger for this context"] 4 (#$ . 226615) nil]) #@79 Get a sly-db buffer. The chosen buffer the default connection's it if exists. (defalias 'sly-db-get-default-buffer #[0 "\300\301 !@\207" [sly-db-buffers sly-current-connection] 2 (#$ . 226918)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sly-db-get-default-buffer speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@58 Pop to the first *sly-db* buffer if at least one exists. (defalias 'sly-db-pop-to-debugger #[0 "\300\301 !@\211\203 \302!\207\303\304!\207" [sly-db-buffers sly-current-connection pop-to-buffer sly-error "No *sly-db* debugger buffers for this connection"] 3 (#$ . 227270) nil]) #@78 Find or create a sly-db-buffer for THREAD. (fn THREAD &optional CONNECTION) (defalias 'sly-db-get-buffer #[513 "\211\206\302 \303\"\206&\304\305\306\307\310\311 \"%r\312!q\210p)\262\207" [sly-buffer-connection sly-current-thread sly-connection sly-db-find-buffer sly-buffer-name :db :connection :suffix format "thread %d" generate-new-buffer] 11 (#$ . 227555)]) #@94 Return the all debugged continuations for CONNECTION across SLY-DB buffers. (fn CONNECTION) (defalias 'sly-db-debugged-continuations #[257 "\302 \303\211:\203&@\262\304rq\210=\205 )!\244\262A\262\202\211\237\207" [sly-buffer-connection sly-db-continuations sly-db-buffers nil reverse] 7 (#$ . 227937)]) (defalias 'sly-db-confirm-buffer-kill #[0 "\301!\203\f\302\303!\205\3041\305 0\210\202\210\306\207" [sly-buffer-connection process-live-p sly-y-or-n-p "Really kill sly-db buffer and throw to toplevel?" (error) sly-db-quit t] 2]) #@111 Display (or pop to) sly-db for THREAD as appropriate. Also mark the window as a debugger window. (fn THREAD) (defalias 'sly-db--display-debugger #[257 "\303p\304=\203 \n=\202\203\305\"\210\306 \202 \307\"\310\311#\210\207" [sly-db-focus-debugger sly--send-last-command last-command (sly-db--display-in-prev-sly-db-window) auto pop-to-buffer selected-window display-buffer set-window-parameter sly-db] 8 (#$ . 228500)]) #@407 Setup a new SLY-DB buffer. CONDITION is a string describing the condition to debug. RESTARTS is a list of strings (NAME DESCRIPTION) for each available restart. FRAME-SPECS is a list of (NUMBER DESCRIPTION &optional PLIST) describing the initial portion of the backtrace. Frames are numbered from 0. CONTS is a list of pending Emacs continuations. (fn THREAD LEVEL CONDITION RESTARTS FRAME-SPECS CONTS) (defalias 'sly-db-setup #[1542 "r\306!q\210\232\203 \232\202\307\204!\310\311\312\313 D$\210\314\315!!r\316\317\"\216\320@\321\"\210\232\204\235\307\322 \210\323\324\325\313\307$\210\326\327\"-\330!\210\331\332\333\334\"\210\334\335\261\210\336 .\337\340/#\210\335\332\333\341\"\210\341\335\261\210\336 0\212\203\217\342\343!\307\"\210\202\222\344c\210)\345\346!\210\3471!\210)\350e\351\"\2102\205\255\352\353!\210\354 *\262)\207" [sly-db-level sly-db-condition inhibit-read-only sly-current-thread mode-name sly-db-restarts sly-db-get-buffer t cl--assertion-failed (if (equal sly-db-level level) (equal sly-db-condition condition) t) "Bug: sly-db-level is equal but condition differs\n%s\n%s" nil internal--before-with-selected-window sly-db--display-debugger make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord sly-db-mode add-hook kill-buffer-query-functions sly-db-confirm-buffer-kill format "sly-db[%d]" sly-db-insert-condition "\n\n" sly-add-face sly-db-section-face "Restarts:" "\n" point-marker sly-db-insert-restarts 0 "Backtrace:" sly-db-insert-frames sly-db-prune-initial-frames "[No backtrace]" run-hooks sly-db-hook set-syntax-table sly-recenter allow-moving-point sly-message "Entering recursive edit.." recursive-edit sly-db-continuations sly-db-restart-list-start-marker sly-db-initial-restart-limit sly-db-backtrace-start-marker lisp-mode-syntax-table sly--stack-eval-tags] 12 (#$ . 228942)]) #@21 (fn BUFFER ALIST) (defalias 'sly-db--display-in-prev-sly-db-window #[514 "\300\301!\211\205\302\303#\210\304\"\210\211\207" [get-window-with-predicate #[257 "\300\301\"\211\205\f\302!?\207" [window-parameter sly-db buffer-live-p] 4 "\n\n(fn W)"] display-buffer-record-window reuse set-window-buffer] 7 (#$ . 230862)]) #@179 Initialize debugger buffer for THREAD. If such a buffer exists for LEVEL, it is assumed to have been sufficiently initialized, and this function does nothing. (fn THREAD LEVEL) (defalias 'sly-db--ensure-initialized #[514 "\302!\211\205r\211q\210\232)?\205E\303\304\305\306\307\310  # \306\211:\203;@\262\311 !\244\262A\262\202#\211\237\266\203BBBBB!\207" [sly-db-level sly-rex-extra-options-functions sly-db-find-buffer sly-dispatch-event :emacs-rex (slynk:debugger-info-for-emacs 0 10) nil make-closure #[257 "\211\211@A\302=\203&\211\211G\303U\203\211\242\202\304\305\306GD\"\307\310\300\301$\207\311\312\"\207" [V0 V1 :ok 1 signal wrong-number-of-arguments (result) apply sly-db-setup sly-error "Elisp sly-dcase failed: %S"] 11 "\n\n(fn G71)"] reverse] 14 (#$ . 231198)]) #@51 Hooks run in the debugger buffer just before exit (defvar sly-db-exit-hook nil (#$ . 232010)) #@72 Exit from the debug level LEVEL. (fn THREAD LEVEL &optional STEPPING) (defalias 'sly-db-exit #[770 "\302!\211\2055r\211q\210\303\304\"\305\306!\210\203#\307\310\311\307\312$\2024\211\313\314 !=\2041\315 \2024\316\317!)\207" [kill-buffer-query-functions sly-db-level sly-db-find-buffer remove sly-db-confirm-buffer-kill run-hooks sly-db-exit-hook nil run-with-timer 0.4 sly-db-close-step-buffer window-buffer selected-window kill-buffer quit-window t] 9 (#$ . 232110)]) #@15 (fn BUFFER) (defalias 'sly-db-close-step-buffer #[257 "\301!\205r\211q\210?\205\302\303!)\207" [sly-db-level buffer-live-p quit-window t] 3 (#$ . 232597)]) #@140 Insert the text for CONDITION. CONDITION should be a list (MESSAGE TYPE EXTRAS). EXTRAS is currently used for the stepper. (fn CONDITION) (defalias 'sly-db-insert-condition #[257 "\211\211G\300U\203\211A\262\242\202\301\302\303GD\"\211A\262\242\242\304\305\"\210\211\262\306\304\307\"\210\211\262\261\210\310!\207" [3 signal wrong-number-of-arguments (msg type extras) sly-add-face sly-db-topline-face "\n" sly-db-condition-face sly-db-dispatch-extras] 11 (#$ . 232768)]) #@267 Handlers for the extra options sent in a debugger invocation. Each function is called with one argument, a list (OPTION VALUE). It should return non-nil iff it can handle OPTION, and thus preventing other handlers from trying. Functions are run in the SLDB buffer. (defvar sly-db-extras-hooks nil (#$ . 233266)) #@15 (fn EXTRAS) (defalias 'sly-db-dispatch-extras #[257 "\211\211\205;\211@\211\211@A\300=\203.\211\211G\301U\203\211\242\202&\302\303\304GD\"\305!\266\2024\306\307\"\266A\266\202\202\207" [:show-frame-source 1 signal wrong-number-of-arguments (n) sly-db-show-frame-source run-hook-with-args-until-success sly-db-extras-hooks] 11 (#$ . 233585)]) #@126 Insert RESTARTS and add the needed text props RESTARTS should be a list ((NAME DESCRIPTION) ...). (fn RESTARTS START COUNT) (defalias 'sly-db-insert-restarts #[771 "G\203\\^\202\211\300#\301\211\211:\203h@\262\211A\262\242\262@\262\302\303!\304\305\"\210\211\262\306\307\310\311 \"\312\313\"\262\314$\302\304\315\"\210\211\262\261\210\316c\210A\262\211T\262\202\266\211W\205~\307\317\312\320#\321\322$\316\261\207" [cl-subseq nil " " number-to-string sly-add-face sly-db-restart-number-face ": " sly-make-action-button format "[%s]" make-closure #[257 "\301\300!\207" [V0 sly-db-invoke-restart] 3 "\n\n(fn BUTTON)"] restart-number sly-db-restart-face "\n" " --more--" #[257 "\303\304!\305!T|\210\306\300\301\307#\210\310p!\211\205-\311!r\312\313\"\216\314@\315\"\210\316d!*\262\262)\207" [V0 V1 inhibit-read-only t button-start button-end sly-db-insert-restarts nil get-buffer-window internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord sly-recenter] 6 "\n\n(fn BUTTON)"] point-entered #[514 "\300!\207" [push-button] 4 "\n\n(fn _ NEW)"]] 19 (#$ . 233952)]) #@19 (fn FRAME-SPEC) (defalias 'sly-db-frame-restartable-p #[257 "\300AA@\301\"\205 \302\207" [plist-get :restartable t] 4 (#$ . 235162)]) #@154 Return the prefix of FRAMES-SPECS to initially present to the user. Regexp heuristics are used to avoid showing SLYNK-internal frames. (fn FRAME-SPECS) (defalias 'sly-db-prune-initial-frames #[257 "\301\302\303\211:\203$@\262\304A@\"\204$B\262A\262\202\211\237\266\203\206,)\207" [case-fold-search t "^\\([() ]\\|lambda\\)*slynk\\>" nil string-match] 8 (#$ . 235307)]) #@122 Insert frames for FRAME-SPECS into buffer. If MORE is non-nil, more frames are on the Lisp stack. (fn FRAME-SPECS MORE) (defalias 'sly-db-insert-frames #[514 "\300C:\203\211@\240\210\301\242!\210A\262\202\203(\302\303\304\305\"\306\307$c\210\300\207" [nil sly-db-insert-frame sly-make-action-button " --more--\n" make-closure #[257 "\302\300\242@T\211\303\\\304\305E!\306\303\"\307!\310!|\210\212\311\"\210)\312p!\211\205?\313!r\314\315\"\216\316@\317\"\210\320d!*\262\262)\207" [V0 inhibit-read-only t 40 sly-eval slynk:backtrace sly-length= button-start button-end sly-db-insert-frames get-buffer-window internal--before-with-selected-window make-closure #[0 "\301\300!\207" [V0 internal--after-with-selected-window] 2] select-window norecord sly-recenter] 10 "\n\n(fn BUTTON)"] point-entered #[514 "\300!\207" [push-button] 4 "\n\n(fn _ NEW)"]] 9 (#$ . 235702)]) (defvar sly-db-frame-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\302\325\304#\210\302\326\327#\210\302\330\331#\210\302\332\333#\210\302\334\335#\210\302\336\337#\210\340\"\210\207" [sly-part-button-keymap make-sparse-keymap define-key "t" sly-db-toggle-details "v" sly-db-show-frame-source "." sly-db-goto-source "D" sly-db-disassemble "e" sly-db-eval-in-frame "d" sly-db-pprint-eval-in-frame "i" sly-db-inspect-in-frame "r" sly-db-restart-frame "R" sly-db-return-from-frame " " "s" sly-db-step "x" sly-db-next "o" sly-db-out "b" sly-db-break-on-return "" sly-db-recompile-frame-source set-keymap-parent] 5)) (defvar sly-db-frame-menu-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\310#\210\302\311\312#\210\302\313\314#\210\302\315\316#\210\302\317\320#\210\302\321\322#\210\302\323\324#\210\325\"\210\207" [sly-button-popup-part-menu-keymap make-sparse-keymap define-key [sly-db-disassemble] (menu-item "Dissassemble" sly-db-disassemble) [sly-db-eval-in-frame] (menu-item "Eval In Context" sly-db-eval-in-frame) [sly-db-pprint-eval-in-frame] (menu-item "Eval and Pretty Print In Context" sly-db-pprint-eval-in-frame) [sly-db-inspect-in-frame] (menu-item "Inspect In Context" sly-db-inspect-in-frame) [sly-db-restart-frame] (menu-item "Restart" sly-db-restart-frame) [sly-db-return-from-frame] (menu-item "Return Value" sly-db-return-from-frame) [sly-db-toggle-details] (menu-item "Toggle Details" sly-db-toggle-details) [sly-db-show-frame-source] (menu-item "Show Source" sly-db-show-frame-source) [sly-db-goto-source] (menu-item "Go To Source" sly-db-goto-source) set-keymap-parent] 5)) (define-button-type 'sly-db-frame :supertype 'sly-part 'keymap sly-db-frame-map 'part-menu-keymap sly-db-frame-menu-map 'action 'sly-db-toggle-details 'mouse-action 'sly-db-toggle-details) #@14 (fn FRAME) (defalias 'sly-db--guess-frame-function #[257 "\3001\301\302\303\304A@#!@@0\207\210\305\207" [(error) read-from-string replace-regexp-in-string "#" "" nil] 6 (#$ . 238562)]) #@37 (fn LABEL FRAME FACE &rest PROPS) (defalias 'sly-db-frame-button #[899 "\300\301\302\303\304\305\306 @\307 @\310A@\311@\312!D\313\314\315@\"&\207" [apply sly--make-text-button nil :type sly-db-frame face field frame-number frame-string part-args sly-db--guess-frame-function part-label format "Frame %d"] 24 (#$ . 238758)]) (defalias 'sly-db-frame-number-at-point #[0 "\300 \301\302\"\207" [sly-db-frame-button-near-point button-get frame-number] 4]) (defalias 'sly-db-frame-button-near-point #[0 "\300\301\302\303#\206\304`\305\"\206\306\307!\207" [sly-button-at nil sly-db-frame no-error get-text-property nearby-frame-button error "No frame button here"] 4]) #@49 Insert a frame for FRAME-SPEC. (fn FRAME-SPEC) (defalias 'sly-db-insert-frame #[257 "\211@A@`\301\302\303\"\304\305#\306\307!\203\310\202\311#\312\261\210\313`\314\315\316\317`\320Z!\257#\207" [sly-db-frame-map propertize format "%2d: " face sly-db-frame-label-face sly-db-frame-button sly-db-frame-restartable-p sly-db-restartable-frame-line-face sly-db-frame-line-face "\n" add-text-properties field keymap nearby-frame-button button-at 2] 15 (#$ . 239449)]) (defalias 'sly-db--goto-last-visible-frame #[0 "db\210\300`\301\"?\205\302`\301\"b\210\202\207" [get-text-property frame-string previous-single-property-change] 3]) #@23 Goto the first frame. (defalias 'sly-db-beginning-of-backtrace #[0 "b\207" [sly-db-backtrace-start-marker] 1 (#$ . 240103) nil]) #@43 Cycle between restart list and backtrace. (defalias 'sly-db-cycle #[0 "`\211W\203\nb\207\211 W\203 b\207b\207" [sly-db-restart-list-start-marker sly-db-backtrace-start-marker] 3 (#$ . 240239) nil]) #@54 Fetch the entire backtrace and go to the last frame. (defalias 'sly-db-end-of-backtrace #[0 "\300 \210\301 \207" [sly-db--fetch-all-frames sly-db--goto-last-visible-frame] 1 (#$ . 240449) nil]) (defalias 'sly-db--fetch-all-frames #[0 "\302\211\303 \210\304 \305`\306\"b\210`d|\210\212\307c\210\310\311\312T\313BB!\314\")\262*\207" [inhibit-point-motion-hooks inhibit-read-only t sly-db--goto-last-visible-frame sly-db-frame-number-at-point next-single-char-property-change frame-string "\n" sly-db-insert-frames sly-eval slynk:backtrace (nil) nil] 6]) #@81 Highlight FRAME-NUMBER's expression in a source code buffer. (fn FRAME-NUMBER) (defalias 'sly-db-show-frame-source #[257 "\300\301D\302\"\207" [sly-eval-async slynk:frame-source-location #[257 "\211\211@A\300=\203'\211\211G\301U\203\211\242\202\302\303\304GD\"\305\306\"\210\307 \207\310!\207" [:error 1 signal wrong-number-of-arguments (message) sly-message "%s" ding sly--display-source-location] 9 "\n\n(fn SOURCE-LOCATION)"]] 4 (#$ . 241011) (byte-code "\300 C\207" [sly-db-frame-number-at-point] 1)]) (define-button-type 'sly-db-local-variable :supertype 'sly-part 'sly-button-inspect #[514 "\300\301E!\207" [sly-eval-for-inspector slynk:inspect-frame-var] 6 "\n\n(fn FRAME-ID VAR-ID)"] 'sly-button-pretty-print #[514 "\300\301E!\207" [sly-eval-describe slynk:pprint-frame-var] 6 "\n\n(fn FRAME-ID VAR-ID)"] 'sly-button-describe #[514 "\300\301E!\207" [sly-eval-describe slynk:describe-frame-var] 6 "\n\n(fn FRAME-ID VAR-ID)"]) #@46 (fn LABEL FRAME-NUMBER VAR-ID &rest PROPS) (defalias 'sly-db-local-variable-button #[899 "\300\301\302\303\304\305  D\306\307\310\f\"\n&\n\207" [apply sly--make-text-button nil :type sly-db-local-variable part-args part-label format "Local Variable %d"] 16 (#$ . 241968)]) #@79 Get (BEG END) for FRAME-BUTTON's details, or nil if hidden (fn FRAME-BUTTON) (defalias 'sly-db-frame-details-region #[257 "\300!\301\302!\303\"SU?\205D\207" [button-end field-end button-start escape] 5 (#$ . 242254)]) #@129 Toggle display of details for the current frame. The details include local variable bindings and CATCH-tags. (fn FRAME-BUTTON) (defalias 'sly-db-toggle-details #[257 "\300!\203\n\301!\207\302!\207" [sly-db-frame-details-region sly-db-hide-frame-details sly-db-show-frame-details] 3 (#$ . 242488) (byte-code "\300 C\207" [sly-db-frame-button-near-point] 1)]) #@50 Show details for FRAME-BUTTON (fn FRAME-BUTTON) (defalias 'sly-db-show-frame-details #[257 "\303\304\305\306\"D!\211G\307U\203\211A\262\242\202\310\311\312GD\"\242\313\211\212\314!b\210\315\316\317\2036\320\2027\321\322\323\"\210\211\262\261\210\324\325\305\306\":\203\305@\262\326\327\"A@\326\330\"A@\326\331\"A@\211\203\221\211@\332>\203z\211AA\262\202g\333>A@\203\210\325\262\202g\334\335@\"\210\202g\210\316 \324U\203\240\336\202\245\337\340\"P\322\341\"\210\211\262\342\343\n#\261\266T\262A\262\202J\266\203\316\317\322\323\344\"\210\344\261\210\211\203\377\211@`\316\337\345\"\322\346\"\210\211\262\261\210\347`\350D#\266A\266\202\202\327\210\347\351!`\352\305 \352\"\353\n\354\f\257#\210\325\211\313\211\203 `\202#\351!\262\355!\262\203I\351!\351 !V\203I\356\351!\314!\357#\210\325\262\202\266+\360\361\351!\362\"!\207" [inhibit-point-motion-hooks inhibit-read-only sly-db-frame-map sly-eval slynk:frame-locals-and-catch-tags button-get frame-number 2 signal wrong-number-of-arguments (locals catches) t button-end " " "\n" " " "Locals:" "[No Locals]" sly-add-face sly-db-section-face 0 nil plist-member :name :id :value (:name :id :value :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:name :id :value)" "" format "#%d" sly-db-local-name-face " = " sly-db-local-variable-button "Catch-tags:" "%s" sly-db-catch-tag-face add-text-properties catch-tag button-start field keymap nearby-frame-button previous-button remove-text-properties (keymap nil) sly-recenter field-end escape] 21 (#$ . 242857) (byte-code "\300 C\207" [sly-db-frame-button-near-point] 1)]) #@21 (fn FRAME-BUTTON) (defalias 'sly-db-hide-frame-details #[257 "\301\302!\211\204 \303\304!\210\211@`W\203!`A@W\203!\305!b\210\306\307\")\207" [inhibit-read-only t sly-db-frame-details-region cl--assertion-failed to-delete button-start apply delete-region] 5 (#$ . 244571) (byte-code "\300 C\207" [sly-db-frame-button-near-point] 1)]) #@70 Disassemble the code for frame with FRAME-NUMBER. (fn FRAME-NUMBER) (defalias 'sly-db-disassemble #[257 "\300\301D\302\"\207" [sly-eval-async slynk:sly-db-disassemble #[257 "\300\301\"\207" [sly-show-description nil] 4 "\n\n(fn RESULT)"]] 4 (#$ . 244920) (byte-code "\300 C\207" [sly-db-frame-number-at-point] 1)]) #@99 Prompt for an expression and evaluate it in the selected frame. (fn FRAME-NUMBER STRING PACKAGE) (defalias 'sly-db-eval-in-frame #[771 "\300\301F\302\"\207" [sly-eval-async slynk:eval-string-in-frame sly-display-eval-result] 8 (#$ . 245244) (sly-db-frame-eval-interactive "Eval in frame (%s)> ")]) #@110 Prompt for an expression, evaluate in selected frame, pretty-print result. (fn FRAME-NUMBER STRING PACKAGE) (defalias 'sly-db-pprint-eval-in-frame #[771 "\300\301F\302\"\207" [sly-eval-async slynk:pprint-eval-string-in-frame #[257 "\300\301\"\207" [sly-show-description nil] 4 "\n\n(fn RESULT)"]] 8 (#$ . 245553) (sly-db-frame-eval-interactive "Eval in frame (%s)> ")]) #@16 (fn FSTRING) (defalias 'sly-db-frame-eval-interactive #[257 "\301 \302\303D!\304\305\"!)E\207" [sly-buffer-package sly-db-frame-number-at-point sly-eval slynk:frame-package-name sly-read-from-minibuffer format] 8 (#$ . 245934)]) #@90 Prompt for an expression and inspect it in the selected frame. (fn FRAME-NUMBER STRING) (defalias 'sly-db-inspect-in-frame #[514 "\300\301E!\207" [sly-eval-for-inspector slynk:inspect-in-frame] 6 (#$ . 246178) (byte-code "\300 \301\302\303 \"D\207" [sly-db-frame-number-at-point sly-read-from-minibuffer "Inspect in frame (evaluated): " sly-sexp-at-point] 4)]) #@41 Inspect the current debugger condition. (defalias 'sly-db-inspect-condition #[0 "\300\301!\207" [sly-eval-for-inspector (slynk:inspect-current-condition)] 2 (#$ . 246548) nil]) (defalias 'sly-db-print-condition #[0 "\300\301!\207" [sly-eval-describe (slynk:sdlb-print-condition)] 2 nil nil]) #@61 Move down ARG frames. With negative ARG, move up. (fn ARG) (defalias 'sly-db-down #[257 "\300\301!W\203X\300\302\211\211\303\304W\203O\211\203`\202\262\211\300W\262\203.\305\202/\306\307\"\262\310\307\"\262\203Ab\210\204OT\262\302\262\202\266T\262\202\302\207" [0 abs nil t 2 previous-single-char-property-change next-single-char-property-change frame-number get-text-property] 11 (#$ . 246846) "p"]) #@61 Move up ARG frames. With negative ARG, move down. (fn ARG) (defalias 'sly-db-up #[257 "\300\206\301[!\207" [sly-db-down 1] 3 (#$ . 247290) "p"]) #@20 (fn MOVE-FN ARG) (defalias 'sly-db-sugar-move #[514 "\300 \211\203\301!\203\302!\210\210!\210\300 \211\205%\303\304\305\"!\210\306!\207" [sly-db-frame-button-near-point sly-db-frame-details-region sly-db-hide-frame-details sly-db-show-frame-source button-get frame-number sly-db-show-frame-details] 7 (#$ . 247445)]) #@48 Move up ARG frames and show details. (fn ARG) (defalias 'sly-db-details-up #[257 "\300\301\"\207" [sly-db-sugar-move sly-db-up] 4 (#$ . 247781) "p"]) #@50 Move down ARG frames and show details. (fn ARG) (defalias 'sly-db-details-down #[257 "\300\301\"\207" [sly-db-sugar-move sly-db-down] 4 (#$ . 247939) "p"]) #@19 Quit to toplevel. (defalias 'sly-db-quit #[0 "\204 \303\300\304\305\211$\210\306\307\310\311 \312\n\305\211:\203-@\262\313 !\244\262A\262\202\211\237\266\203BBBBB!\207" [sly-db-restarts sly-current-thread sly-rex-extra-options-functions cl--assertion-failed "sly-db-quit called outside of sly-db buffer" nil sly-dispatch-event :emacs-rex (slynk:throw-to-toplevel) sly-current-package #[257 "\211\211@A\300\267\2029\211\211G\301U\203\211\242\202\302\303\304GD\"\305\306\"\207\211\307G\301U\2045\302\303\310GD\"\210\266\307\207\311\312\"\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:ok 11 :abort 36)) 1 signal wrong-number-of-arguments (x) error "sly-db-quit returned [%s]" nil (_) sly-error "Elisp sly-dcase failed: %S"] 10 "\n\n(fn G90)"] reverse] 11 (#$ . 248103) nil]) #@32 Invoke the "continue" restart. (defalias 'sly-db-continue #[0 "\204 \303\300\304\305\211$\210\306\307\310\311 \312\n\305\211:\203-@\262\313 !\244\262A\262\202\211\237\266\203BBBBB!\207" [sly-db-restarts sly-current-thread sly-rex-extra-options-functions cl--assertion-failed "sly-db-continue called outside of sly-db buffer" nil sly-dispatch-event :emacs-rex (slynk:sly-db-continue) sly-current-package #[257 "\211\211@A\300\267\2028\211\301G\302U\204\303\304\305GD\"\210\306\307!\210\310 \207\211\301G\302U\2044\303\304\311GD\"\210\266\301\207\312\313\"\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:ok 11 :abort 35)) nil 1 signal wrong-number-of-arguments (_) sly-message "No restart named continue" ding (_) sly-error "Elisp sly-dcase failed: %S"] 10 "\n\n(fn G94)"] reverse] 11 (#$ . 248956) nil]) #@29 Invoke the "abort" restart. (defalias 'sly-db-abort #[0 "\300\301\302\"\207" [sly-eval-async (slynk:sly-db-abort) #[257 "\300\301\"\207" [sly-message "Restart returned: %S"] 4 "\n\n(fn V)"]] 3 (#$ . 249837) nil]) #@109 Invoke the restart number NUMBER. Interactively get the number from a button at point. (fn RESTART-NUMBER) (defalias 'sly-db-invoke-restart #[257 "\303\304\305E\306 \307\n\310\211:\203%@\262\311 !\244\262A\262\202 \211\237\266\203BBBBB!\207" [sly-db-level sly-current-thread sly-rex-extra-options-functions sly-dispatch-event :emacs-rex slynk:invoke-nth-restart-for-emacs sly-current-package #[257 "\211\211@A\300\267\2029\211\211G\301U\203\211\242\202\302\303\304GD\"\305\306\"\207\211\307G\301U\2045\302\303\310GD\"\210\266\307\207\311\312\"\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:ok 11 :abort 36)) 1 signal wrong-number-of-arguments (value) sly-message "Restart returned: %s" nil (_) sly-error "Elisp sly-dcase failed: %S"] 10 "\n\n(fn G98)"] nil reverse] 12 (#$ . 250058) (byte-code "\300\301`!\302\"\207" [button-get sly-button-at restart-number] 3)]) #@21 (fn RESTART-NAME) (defalias 'sly-db-invoke-restart-by-name #[257 "\301\302\303\304\305\306&!\207" [sly-db-restarts sly-db-invoke-restart cl-position :test string= :key first] 9 (#$ . 251003) (byte-code "\302\303\304 \305\302\306\307&)C\207" [completion-ignore-case sly-db-restarts t sly-completing-read "Restart: " nil "" sly-db-invoke-restart-by-name] 7)]) #@53 Enter default debugger. (fn &optional DONT-UNWIND) (defalias 'sly-db-break-with-default-debugger #[256 "\302\303\304??D\305\306 \305\211:\203%@\262\307 !\244\262A\262\202 \211\237\266\203BBBBB!\207" [sly-current-thread sly-rex-extra-options-functions sly-dispatch-event :emacs-rex slynk:sly-db-break-with-default-debugger nil #[257 "\211\211@A\300=\203 \211\301G\302U\204\303\304\305GD\"\210\266\301\207\306\307\"\207" [:abort nil 1 signal wrong-number-of-arguments (_) sly-error "Elisp sly-dcase failed: %S"] 10 "\n\n(fn G102)"] reverse] 12 (#$ . 251374) "P"]) #@58 Enter system debugger (gdb). (fn &optional LIGHTWEIGHT) (defalias 'sly-db-break-with-system-debugger #[256 "\301\"\207" [sly-buffer-connection sly-attach-gdb] 4 (#$ . 251964) "P"]) #@289 Run `gud-gdb'on the connection with PID `pid'. If `lightweight' is given, do not send any request to the inferior Lisp (e.g. to obtain default gdb config) but only operate from the Emacs side; intended for cases where the Lisp is truly screwed up. (fn CONNECTION &optional LIGHTWEIGHT) (defalias 'sly-attach-gdb #[513 "\303!\304!?\205\305\306!)\307\310\311\206\312#!\210r q\210\211\211\205E\211@\313\n\314 \315#\2048\316\317!\210\202(\211c\210\320 \210A\266\202\202\"\262)\207" [sly-dispatching-connection gud-comint-buffer comint-prompt-regexp sly-pid sly-lisp-implementation-program sly-eval (slynk:gdb-initial-commands) gud-gdb format "gdb -p %d %s" "" looking-back line-beginning-position nil sit-for 0.01 comint-send-input] 11 (#$ . 252155) (byte-code "\300\301\302 \"\303D\207" [sly-read-connection "Attach gdb to: " sly-connection "P"] 3)]) #@109 Read a connection from the minibuffer. Return the net process, or nil. (fn PROMPT &optional INITIAL-VALUE) (defalias 'sly-read-connection #[513 "\211>\204\n\301\302!\210\303\304\305\306\"\"\307\310\311\312 !%\"A\207" [sly-net-processes cl--assertion-failed (memq initial-value sly-net-processes) #[257 "\300\301\302!\303!#\207" [format "%s (pid %d)" sly-connection-name sly-pid] 6 "\n\n(fn P)"] mapcar make-closure #[257 "\300!B\207" [V0] 3 "\n\n(fn P)"] assoc sly-completing-read nil t] 12 (#$ . 253029)]) #@55 Step to next basic-block boundary. (fn FRAME-NUMBER) (defalias 'sly-db-step #[257 "\300\301D!\207" [sly-eval-async slynk:sly-db-step] 4 (#$ . 253557) (byte-code "\300 C\207" [sly-db-frame-number-at-point] 1)]) #@36 Step over call. (fn FRAME-NUMBER) (defalias 'sly-db-next #[257 "\300\301D!\207" [sly-eval-async slynk:sly-db-next] 4 (#$ . 253775) (byte-code "\300 C\207" [sly-db-frame-number-at-point] 1)]) #@72 Resume stepping after returning from this function. (fn FRAME-NUMBER) (defalias 'sly-db-out #[257 "\300\301D!\207" [sly-eval-async slynk:sly-db-out] 4 (#$ . 253974) (byte-code "\300 C\207" [sly-db-frame-number-at-point] 1)]) #@105 Set a breakpoint at the current frame. The debugger is entered when the frame exits. (fn FRAME-NUMBER) (defalias 'sly-db-break-on-return #[257 "\300\301D\302\"\207" [sly-eval-async slynk:sly-db-break-on-return #[257 "\300\301\"\207" [sly-message "%s"] 4 "\n\n(fn MSG)"]] 4 (#$ . 254208) (byte-code "\300 C\207" [sly-db-frame-number-at-point] 1)]) #@64 Set a breakpoint at the start of the function NAME. (fn NAME) (defalias 'sly-db-break #[257 "\300\301D\302\"\207" [sly-eval-async slynk:sly-db-break #[257 "\300\301\"\207" [sly-message "%s"] 4 "\n\n(fn MSG)"]] 4 (#$ . 254564) (byte-code "\300\301\302\"C\207" [sly-read-symbol-name "Function: " t] 3)]) #@150 Reads an expression in the minibuffer and causes the function to return that value, evaluated in the context of the frame. (fn FRAME-NUMBER STRING) (defalias 'sly-db-return-from-frame #[514 "\302\303\304E\305 \306 \307\211:\203%@\262\310 !\244\262A\262\202 \211\237\266\203BBBBB!\207" [sly-current-thread sly-rex-extra-options-functions sly-dispatch-event :emacs-rex slynk:sly-db-return-from-frame sly-current-package #[257 "\211\211@A\300\267\2029\211\211G\301U\203\211\242\202\302\303\304GD\"\305\306\"\207\211\307G\301U\2045\302\303\310GD\"\210\266\307\207\311\312\"\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:ok 11 :abort 36)) 1 signal wrong-number-of-arguments (value) sly-message "%s" nil (_) sly-error "Elisp sly-dcase failed: %S"] 10 "\n\n(fn G106)"] nil reverse] 13 (#$ . 254876) (byte-code "\300 \301\302!D\207" [sly-db-frame-number-at-point sly-read-from-minibuffer "Return from frame: "] 3)]) #@111 Causes the frame to restart execution with the same arguments as it was called originally. (fn FRAME-NUMBER) (defalias 'sly-db-restart-frame #[257 "\302\303\304D\305 \306 \307\211:\203$@\262\310 !\244\262A\262\202\f\211\237\266\203BBBBB!\207" [sly-current-thread sly-rex-extra-options-functions sly-dispatch-event :emacs-rex slynk:restart-frame sly-current-package #[257 "\211\211@A\300\267\2029\211\211G\301U\203\211\242\202\302\303\304GD\"\305\306\"\207\211\307G\301U\2045\302\303\310GD\"\210\266\307\207\311\312\"\207" [#s(hash-table size 2 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:ok 11 :abort 36)) 1 signal wrong-number-of-arguments (value) sly-message "%s" nil (_) sly-error "Elisp sly-dcase failed: %S"] 10 "\n\n(fn G110)"] nil reverse] 12 (#$ . 255866) (byte-code "\300 C\207" [sly-db-frame-number-at-point] 1)]) #@41 Toggle the value of *break-on-signals*. (defalias 'sly-toggle-break-on-signals #[0 "\300\301\302\"\207" [sly-eval-async (slynk:toggle-break-on-signals) #[257 "\300\301\"\207" [sly-message "%s"] 4 "\n\n(fn MSG)"]] 3 (#$ . 256745) nil]) #@46 (fn FRAME-NUMBER &optional RAW-PREFIX-ARG) (defalias 'sly-db-recompile-frame-source #[513 "\300\301D\302!\303\304\"\262\"\207" [sly-eval-async slynk:frame-source-location sly-compute-policy make-closure #[257 "\211\211@A\302=\203'\211\211G\303U\203\211\242\202\304\305\306GD\"\307\310\"\210\311 \207\300\312!)\207" [V0 sly-compilation-policy :error 1 signal wrong-number-of-arguments (message) sly-message "%s" ding sly-recompile-location] 9 "\n\n(fn SOURCE-LOCATION)"]] 8 (#$ . 256987) (byte-code "\301 D\207" [current-prefix-arg sly-db-frame-number-at-point] 2)]) (defvar sly-threads-buffer-timer nil) (byte-code "\300\301\302\303\304DD\305\306\307\310\311&\207" [custom-declare-variable sly-threads-update-interval funcall function #[0 "\300\207" [nil] 1] "Interval at which the list of threads will be updated." :type (choice (number :value 0.5) (const nil)) :group sly-ui] 8) #@28 Display a list of threads. (defalias 'sly-list-threads #[0 "\306\307\310\311#\312 \313r\314!q\210\311p\315 \210\316 \210\313\317!\210\320p!\210eb\210\203B\2039\321!\210\322\211\320p$\323\324\325\326\327$\210\330p\316=?\205S\311\"\210p,\207" [major-mode view-read-only standard-output inhibit-read-only sly-buffer-package sly-buffer-connection sly-buffer-name :threads :connection t sly-current-connection nil get-buffer-create erase-buffer sly-thread-control-mode set-syntax-table sly-update-threads-buffer cancel-timer run-with-timer add-hook kill-buffer-hook sly--threads-buffer-teardown append local display-buffer lisp-mode-syntax-table sly-threads-update-interval sly-threads-buffer-timer] 8 (#$ . 257893) nil]) (defalias 'sly--threads-buffer-teardown #[0 "\203\302!\210\303 !\205\304\305!\207" [sly-threads-buffer-timer sly-buffer-connection cancel-timer process-live-p sly-eval-async (slynk:quit-thread-browser)] 2]) #@25 (fn &optional BUFFER) (defalias 'sly-update-threads-buffer #[256 "r\211\206pq\210\300\301\302\")\207" [sly-eval-async (slynk:list-threads) #[257 "rpq\210\300!)\207" [sly--display-threads] 3 "\n\n(fn THREADS)"]] 4 (#$ . 258853) nil]) #@92 Move point in the current buffer and in the window the buffer is displayed. (fn POSITION) (defalias 'sly-move-point #[257 "\300p\301\"b\210\211\205\302\"\207" [get-buffer-window t set-window-point] 5 (#$ . 259097)]) #@16 (fn THREADS) (defalias 'sly--display-threads #[257 "\301\302`\303\"\304 i\305 \210\306!\210\307A\310\311\312\313&eb\210\211\206\"y\210\314!\210\315`!\262)\207" [inhibit-read-only t get-text-property thread-id line-number-at-pos erase-buffer sly-insert-threads cl-position :key car :test equal move-to-column sly-move-point] 11 (#$ . 259325)]) #@22 (fn LIST-OF-LISTS) (defalias 'sly-transpose-lists #[257 "\211@G\300\301W\2036\301\211:\203'@\262\234B\262A\262\202\211\237\266\203B\262T\262\202\211\237\207" [0 nil] 10 (#$ . 259685)]) #@45 (fn LINE LINE-PROPS COL-PROPS COL-WIDTHS) (defalias 'sly-insert-table-row #[1028 "`\300\300\300:\203K@\262:\203K@\262:\203K@\262C`\301\302\"\303`#\210\266\304\305GZ\"\210A\262A\262A\262\202\266\300\303`#\210\207" [nil apply insert add-text-properties insert-char 32] 19 (#$ . 259902)]) #@109 Insert a "table" so that the columns are nicely aligned. (fn ROWS HEADER ROW-PROPERTIES COLUMN-PROPERTIES) (defalias 'sly-insert-table #[1028 "GB\301!\302\211:\203E@\262\302\211:\2037@\262G\203-]\266\202\2020\211\266\202A\262\202\266\202TB\262A\262\202\n\211\237\266\203\303\304\305\"r\211q\210\306\307\"\216\310\302\311\302\"$\210\312 *\262\313\300!\203r\211\202w\211\314\261\210\302\302:\203\246@\262:\203\246@\262\310  $\210\314c\210A\262A\262\202}\266\302\207" [header-line-format sly-transpose-lists nil generate-new-buffer " *temp*" t make-closure #[0 "\301\300!\205 \302\300!\207" [V0 buffer-name kill-buffer] 2] sly-insert-table-row make-list buffer-string boundp "\n"] 17 (#$ . 260234)]) (defvar sly-threads-table-properties '(nil (face bold))) #@16 (fn THREADS) (defalias 'sly-insert-threads #[257 "\211@A\301\211:\203#@\262\302\303!\304\301O!B\262A\262\202\211\237\266\203\301\211:\203]@\262\301\211:\203N@\262\305\306\"B\262A\262\2026\211\237\266\203B\262A\262\202*\211\237\266\203\301\211\307\301:\203\210@\262@\262\310\311FB\262A\262T\262\202f\211\237\266\205\301\307\301:\203\253@\2628B\262A\262T\262\202\220\211\237\266\204\312$\207" [sly-threads-table-properties nil capitalize symbol-name 1 format "%s" 0 thread-index thread-id sly-insert-table] 14 (#$ . 261057)]) (defvar sly-thread-control-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\207" [make-sparse-keymap define-key "a" sly-thread-attach "d" sly-thread-debug "g" sly-update-threads-buffer "k" sly-thread-kill "q" quit-window] 5)) (defvar sly-thread-control-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [sly-thread-control-mode-hook variable-documentation put "Hook run after entering Threads mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp sly-thread-control-mode-map definition-name sly-thread-control-mode] 4) (defvar sly-thread-control-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\317#\207" [sly-thread-control-mode-abbrev-table sly-thread-control-mode-map variable-documentation put purecopy "Keymap for `sly-thread-control-mode'." boundp sly-thread-control-mode-syntax-table definition-name sly-thread-control-mode (lambda (#1=#:def-tmp-var) (defvar sly-thread-control-mode-syntax-table #1#)) make-syntax-table "Syntax table for `sly-thread-control-mode'." (lambda (#1#) (defvar sly-thread-control-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `sly-thread-control-mode'." derived-mode-parent] 5) #@177 SLY Thread Control Panel Mode. \{sly-thread-control-mode-map} This mode runs the hook `sly-thread-control-mode-hook', as the final or penultimate step during initialization. (defalias 'sly-thread-control-mode #[0 "\306\300!\210\307\310 \210\311\312\313 !\210\314\f!\210 \203$\306\315!\210\307 \316\317!\210\320\317!\210\307)\321\322!\207" [delay-mode-hooks major-mode mode-name sly-thread-control-mode-map sly-thread-control-mode-syntax-table sly-thread-control-mode-abbrev-table make-local-variable t kill-all-local-variables sly-thread-control-mode "Threads" use-local-map set-syntax-table truncate-lines read-only-mode 1 sly-mode run-mode-hooks sly-thread-control-mode-hook local-abbrev-table sly-truncate-lines buffer-undo-list] 2 (#$ . 263250) nil]) (defalias 'sly-thread-kill #[0 "\300\301\302\303\304\305!DE!\210\306\307!\207" [sly-eval cl:mapc 'slynk:kill-nth-thread quote sly-get-properties thread-index call-interactively sly-update-threads-buffer] 6 nil nil]) #@23 (fn PROP START END) (defalias 'sly-get-region-properties #[771 "\300\211\301\211\203\302\"\203\202 \303\"\202 \303\"\262X\2037\302\"B\262\300\262\202\237\207" [nil t get-text-property next-single-property-change] 9 (#$ . 264240)]) #@13 (fn PROP) (defalias 'sly-get-properties #[257 "\300 \203 \301\302 \303 #\207\304`\"\211\205\211C\207" [use-region-p sly-get-region-properties region-beginning region-end get-text-property] 5 (#$ . 264508)]) (defalias 'sly-thread-attach #[0 "\300`\301\"\302 \303\304E!\266\305\306!\207" [get-text-property thread-index sly-slynk-port-file sly-eval-async slynk:start-slynk-server-in-thread sly-read-port-and-connect nil] 6 nil nil]) (defalias 'sly-thread-debug #[0 "\300`\301\"\302\303D!\207" [get-text-property thread-index sly-eval-async slynk:debug-nth-thread] 4 nil nil]) (defvar sly-connection-list-mode-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\306\307#\210\301\310\311#\210\301\312\313#\210\301\314\315#\210\207" [make-sparse-keymap define-key "d" sly-connection-list-make-default "g" sly-update-connection-list " " sly-connection-list-default-action " " sly-quit-connection-at-point "R" sly-restart-connection-at-point "q" quit-window] 5)) (defvar sly-connection-list-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [sly-connection-list-mode-hook variable-documentation put "Hook run after entering SLY-Connections mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp sly-connection-list-mode-map definition-name sly-connection-list-mode] 4) (defvar sly-connection-list-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\322#\207" [sly-connection-list-mode-abbrev-table sly-connection-list-mode-map variable-documentation put purecopy "Keymap for `sly-connection-list-mode'." boundp sly-connection-list-mode-syntax-table definition-name sly-connection-list-mode (lambda (#1=#:def-tmp-var) (defvar sly-connection-list-mode-syntax-table #1#)) make-syntax-table "Syntax table for `sly-connection-list-mode'." (lambda (#1#) (defvar sly-connection-list-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `sly-connection-list-mode'." derived-mode-parent tabulated-list-mode] 5) #@253 SLY Connection List Mode. \{sly-connection-list-mode-map} In addition to any hooks its parent mode `tabulated-list-mode' might have run, this mode runs the hook `sly-connection-list-mode-hook', as the final or penultimate step during initialization. (defalias 'sly-connection-list-mode #[0 "\306\300!\210\307\310 \210\311\312\310\313N\203\314\311\313\310\313N#\210\315 !\204'\316 \317 \"\210\320\f!\211\2035\211\321 =\203;\322\f\323 \"\210\210\324 \325\"\204R =\204R\326 \325C#\210\327 !\210\330\f!\210 \306\331!\210\332\333 \210)\334\335!\207" [delay-mode-hooks major-mode mode-name sly-connection-list-mode-map sly-connection-list-mode-syntax-table sly-connection-list-mode-abbrev-table make-local-variable t tabulated-list-mode sly-connection-list-mode "SLY-Connections" mode-class put keymap-parent set-keymap-parent current-local-map char-table-parent standard-syntax-table set-char-table-parent syntax-table abbrev-table-get :parents abbrev-table-put use-local-map set-syntax-table tabulated-list-format [("Default" 8) ("Name" 24 t) ("Host" 12) ("Port" 6) ("Pid" 6 t) ("Type" 1000 t)] tabulated-list-init-header run-mode-hooks sly-connection-list-mode-hook local-abbrev-table] 5 (#$ . 266853) nil]) (defalias 'sly--connection-at-point #[0 "\300`\301\"\206\n\302\303!\207" [get-text-property tabulated-list-id error "No connection at point"] 3]) (defvar sly-connection-list-button-action nil) #@19 (fn CONNECTION) (defalias 'sly-connection-list-default-action #[257 "!\207" [sly-connection-list-button-action] 3 (#$ . 268278) (byte-code "\300 C\207" [sly--connection-at-point] 1)]) (defalias 'sly-update-connection-list #[0 "\302\301!\210\303\304\305!\"`\306 \210\211b\207" [sly-net-processes tabulated-list-entries make-local-variable mapcar #[257 "\211\301=\203\f\302\202 \303\304\305!\206\306!\307\310\311\"E\312!@\313\314\312!A@\"\313\314\315 !\"\316!\2069\306&D\207" [sly-default-connection vector "*" " " file-name-nondirectory sly-connection-name "unknown" action make-closure #[257 " \205 \300!\207" [V0 sly-connection-list-button-action] 3 "\n\n(fn BUTTON)"] process-contact format "%s" sly-pid sly-lisp-implementation-type] 11 "\n\n(fn P)"] reverse tabulated-list-print] 4 nil nil]) #@19 (fn CONNECTION) (defalias 'sly-quit-connection-at-point #[257 "\211\302\303 \304\305!\"\306\307!\210 >\203,\310\303 \"\203$\311\312!\210\313!\210\314\315\316\"\210\202)\266\317 \207" [sly-dispatching-connection sly-net-processes time-add current-time seconds-to-time 3 sly-quit-lisp t time-less-p sly-message "Quit timeout expired. Disconnecting." delete-process sit-for 0 100 sly-update-connection-list] 6 (#$ . 269104) (byte-code "\300 C\207" [sly--connection-at-point] 1)]) #@19 (fn CONNECTION) (defalias 'sly-restart-connection-at-point #[257 "\211\301 )\207" [sly-dispatching-connection sly-restart-inferior-lisp] 2 (#$ . 269600) (byte-code "\300 C\207" [sly--connection-at-point] 1)]) #@54 Make the connection at point the default connection. (defalias 'sly-connection-list-make-default #[0 "\300\301 !\210\302 \207" [sly-select-connection sly--connection-at-point sly-update-connection-list] 2 (#$ . 269818) nil]) #@36 Display a list of all connections. (defalias 'sly-list-connections #[0 "\306r\307\310\311!!q\210\312p\313 \210\314 \210\306\211\315!\210\316 \210\317p\314=?\205+\312\"\210p,\207" [major-mode view-read-only standard-output inhibit-read-only sly-buffer-package sly-buffer-connection nil get-buffer-create sly-buffer-name :connections t erase-buffer sly-connection-list-mode set-syntax-table sly-update-connection-list display-buffer lisp-mode-syntax-table] 6 (#$ . 270049) nil]) (custom-declare-group 'sly-inspector nil "Options for the SLY inspector." :prefix "sly-inspector-" :group 'sly) #@48 Buffer-local inspector name (a string), or nil (defvar sly--this-inspector-name nil (#$ . 270654)) #@150 (fn SLYFUN-AND-ARGS &key (ERROR-MESSAGE "Couldn\='t inspect") RESTORE-POINT SAVE-SELECTED-WINDOW (INSPECTOR-NAME sly--this-inspector-name) OPENER) (defalias 'sly-eval-for-inspector #[385 "\302\303\"\206\304A@\302\305\"A@\302\306\"A@\302\307\"\206 \310DA@\302\311\"A@\211\203T\211@\312>\203<\211AA\262\202)\313>A@\203K\310\262\202)\314\315@\"\210\202)\210\316\317\"\203a\320\321!\210 \322=\205i\323 \324\325\326\f@D\fABBBB\206\213\327\330    &\"\207" [sly--this-inspector-name major-mode plist-member :error-message (nil "Couldn't inspect") :restore-point :save-selected-window :inspector-name nil :opener (:error-message :restore-point :save-selected-window :inspector-name :opener :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:error-message :restore-point :save-selected-window :inspector-name :opener)" cl-some listp sly-warning "`sly-eval-for-inspector' not meant to be passed a generic form" sly-inspector-mode sly-inspector-position sly-eval-async slynk:eval-for-inspector quote make-closure #[257 "\305\203\211\301\302\303\304%\207\306\300!\207" [V0 V1 V2 V3 V4 #[1285 "\300\301\205 \302\303\n?&\207" [sly--open-inspector :point :inspector-name :switch] 13 "\n\n(fn RESTORE-POINT SAVE-SELECTED-WINDOW INSPECTOR-NAME POS RESULTS)"] sly-message] 8 "\n\n(fn RESULTS)"]] 17 (#$ . 270760)]) (defalias 'sly-read-inspector-name #[0 "\302 \303\211:\2036@\262rq\210\304 =\205 \305=)\211\203.\306\307\"\211\203-\211B\262\210\210A\262\202\211\237\266\203\310\311\312B\303\211\211\211\312&\211\312\230?\205N\211\207" [sly-buffer-connection major-mode buffer-list nil sly-current-connection sly-inspector-mode buffer-local-value sly--this-inspector-name sly-completing-read "Inspector name: " "default"] 9]) (defalias 'sly-maybe-read-inspector-name #[0 "\203 \302 \206\n \207" [current-prefix-arg sly--this-inspector-name sly-read-inspector-name] 1]) #@82 Eval an expression and inspect the result. (fn STRING &optional INSPECTOR-NAME) (defalias 'sly-inspect #[513 "\300\301D\302#\207" [sly-eval-for-inspector slynk:init-inspector :inspector-name] 6 (#$ . 272718) (byte-code "\300 \301\302\205\f\303\304\"\305Q\306\307\310\211#\"\211D\207" [sly-maybe-read-inspector-name sly-read-from-minibuffer "Inspect value" format " in inspector \"%s\"" " (evaluated): " sly-sexp-at-point interactive nil] 7)]) (defvar sly-inspector-mode-map (byte-code "\301 \302\303\304#\210\302\305\306#\210\302\307\304#\210\302\310\306#\210\302\311\306#\210\302\312\313#\210\302\314\315#\210\302\316\317#\210\302\320\321#\210\302\322\323#\210\302\324\325#\210\326\"\210\207" [button-buffer-map make-sparse-keymap define-key "l" sly-inspector-pop "n" sly-inspector-next [mouse-6] [mouse-7] " " "D" sly-inspector-describe-inspectee "e" sly-inspector-eval "h" sly-inspector-history "g" sly-inspector-reinspect ">" sly-inspector-fetch-all "q" sly-inspector-quit set-keymap-parent] 5)) (defvar sly-inspector-mode-hook nil) (byte-code "\300\301N\204\f\302\300\301\303#\210\304\305!\204\302\305\306\307#\210\300\207" [sly-inspector-mode-hook variable-documentation put "Hook run after entering SLY-Inspector mode.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" boundp sly-inspector-mode-map definition-name sly-inspector-mode] 4) (defvar sly-inspector-mode-map (make-sparse-keymap)) (byte-code "\301\302N\204\303\301\302\304\305!#\210\306\307!\204\303\307\310\311#\210\312\313 !\210\307\302N\204-\303\307\302\304\314!#\210\306\300!\204B\303\300\310\311#\210\315\316\300\317\"\210!\210\300\302N\204P\303\300\302\304\320!#\210\303\311\321\317#\207" [sly-inspector-mode-abbrev-table sly-inspector-mode-map variable-documentation put purecopy "Keymap for `sly-inspector-mode'." boundp sly-inspector-mode-syntax-table definition-name sly-inspector-mode (lambda (#1=#:def-tmp-var) (defvar sly-inspector-mode-syntax-table #1#)) make-syntax-table "Syntax table for `sly-inspector-mode'." (lambda (#1#) (defvar sly-inspector-mode-abbrev-table #1#)) define-abbrev-table nil "Abbrev table for `sly-inspector-mode'." derived-mode-parent] 5) #@136 \{sly-inspector-mode-map} This mode runs the hook `sly-inspector-mode-hook', as the final or penultimate step during initialization. (defalias 'sly-inspector-mode #[0 "\306\300!\210\307\310 \210\311\312\313 !\210\314\f!\210 \314!\210\315 \210\307\316\317!\210)\320\321!\207" [delay-mode-hooks major-mode mode-name sly-inspector-mode-map sly-inspector-mode-syntax-table sly-inspector-mode-abbrev-table make-local-variable t kill-all-local-variables sly-inspector-mode "SLY-Inspector" use-local-map set-syntax-table sly-set-truncate-lines sly-mode 1 run-mode-hooks sly-inspector-mode-hook local-abbrev-table lisp-mode-syntax-table buffer-read-only] 2 (#$ . 274978) nil]) (define-button-type 'sly-inspector-part :supertype 'sly-part 'sly-button-inspect #[257 "\300\301D\302\303 #\207" [sly-eval-for-inspector slynk:inspect-nth-part :inspector-name sly-maybe-read-inspector-name] 5 "\n\n(fn ID)"] 'sly-button-pretty-print #[257 "\300\301D!\207" [sly-eval-describe slynk:pprint-inspector-part] 4 "\n\n(fn ID)"] 'sly-button-describe #[257 "\300\301D!\207" [sly-eval-describe slynk:describe-inspector-part] 4 "\n\n(fn ID)"] 'sly-button-show-source #[257 "\300\301\302\303DDD\304\"\207" [sly-eval-async slynk:find-source-location-for-emacs quote :inspector #[257 "\300\301\"\207" [sly--display-source-location noerror] 4 "\n\n(fn RESULT)"]] 6 "\n\n(fn ID)"]) #@29 (fn LABEL ID &rest PROPS) (defalias 'sly-inspector-part-button #[642 "\300\301\302\303\304\305C\306\307\n&\n\207" [apply sly--make-text-button nil :type sly-inspector-part part-args part-label "Inspector Object"] 14 (#$ . 276351)]) #@20 (fn FACE STRING) (defalias 'sly-inspector-fontify '(macro . #[514 "\300\301\302\303\304\"!DE\207" [sly-add-face quote intern format "sly-inspector-%s-face"] 8 (#$ . 276595)])) #@402 Display INSPECTED-PARTS in a new inspector window. Optionally set point to POINT. If KILL-HOOK is provided, it is added to local KILL-BUFFER hooks for the inspector buffer. INSPECTOR-NAME is the name of the target inspector, or nil if the default one is to be used. SWITCH indicates the buffer should be switched to (defaults to t) (fn INSPECTED-PARTS &key POINT KILL-HOOK INSPECTOR-NAME (SWITCH t)) (defalias 'sly--open-inspector #[385 "\306\307\"A@\306\310\"A@\306\311\"A@\306\312\"\206\313A@\211\203H\211@\314>\2030\211AA\262\202\315>A@\203?\316\262\202\317\320@\"\210\202\210\321 \316\210\316r\322\323\324\325\326\327\n%!q\210\326p\330 \210\331 \210\316\332:!\210\203}\333\334\326\211$\210\335\336!\210\306\337\"A@\306\340\"A@\306\341\"A@\211\203\303\211@\342>\203\254\211AA\262\202\231\315>A@\203\272\316\262\202\231\317\343@\"\210\202\231\210\344\345\326$c\210`Sf\346=\203\333\347\350!\210\202\314\351\352\353\354\"\351\261\210\212\355!\210)\n\203\n:\204\376\356\357\360 \361E\"\210\3621eb\210\n@Sy\210\363 A!0\266\202\210\266\364 \210\211\365=\204R\366p\331=\2055?\2065=?\205:\326\"\203H\211\203H\367\326\"\210\210\211\370=\203R\371 \210p,\207" [major-mode view-read-only standard-output inhibit-read-only sly-buffer-package sly-buffer-connection plist-member :point :kill-hook :inspector-name :switch (nil t) (:point :kill-hook :inspector-name :switch . #1=(:allow-other-keys)) :allow-other-keys nil error "Keyword argument %s not one of (:point :kill-hook :inspector-name :switch)" sly-current-connection get-buffer-create sly-buffer-name :inspector :connection t :suffix erase-buffer sly-inspector-mode set-syntax-table add-hook kill-buffer-hook make-local-variable sly--this-inspector-name :id :title :content (:id :title :content . #1#) "Keyword argument %s not one of (:id :title :content)" sly-inspector-part-button skip 10 backward-delete-char 1 "\n" sly-add-face sly-inspector-label-face "--------------------" sly-inspector-insert-content signal wrong-type-argument cons point (error) move-to-column buffer-disable-undo :hidden display-buffer select-window :raise raise-frame lisp-mode-syntax-table] 18 (#$ . 276783)]) (defvar sly-inspector-limit 500) #@16 (fn CONTENT) (defalias 'sly-inspector-insert-content #[257 "\300\301\302#\207" [sly-inspector-fetch-chunk nil #[257 "\301\302\301\211#)\207" [inhibit-read-only t sly-inspector-insert-chunk] 5 "\n\n(fn CHUNK)"]] 5 (#$ . 279049)]) #@105 Insert CHUNK at point. If PREV resp. NEXT are true insert more-buttons as needed. (fn CHUNK PREV NEXT) (defalias 'sly-inspector-insert-chunk #[771 "\211G\300U\203\211A\262\242\202\301\302\303GD\"\211A\262\242\211A\262\242\242\2036\304V\2036\305\306\"\210\307\310\"\210\205I\211W\205I\305\311\"\207" [4 signal wrong-number-of-arguments (ispecs len start end) 0 sly-inspector-insert-more-button t mapc sly-inspector-insert-ispec nil] 11 (#$ . 279290)]) #@14 (fn ISPEC) (defalias 'sly-inspector-insert-ispec #[257 "\211;\203 \211\202\200\211\211@A\300\267\202z\211\211G\301U\203%\211A\262\242\202,\302\303\304GD\"\242\305\"\266\206\202\200\211\211G\306U\203D\211\242\202K\302\303\307GD\"\310\311\"\266\205\202\200\211\211G\301U\203e\211A\262\242\202l\302\303\312GD\"\242\313\314\315\"\"\266\206\202\200\316\317\"\266\203c\207" [#s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:value 20 :label 55 :action 84)) 2 signal wrong-number-of-arguments (string id) sly-inspector-part-button 1 (string) sly-add-face sly-inspector-label-face (string id) sly-make-action-button make-closure #[257 "\301\302\300D\303\304#\207" [V0 sly-eval-for-inspector slynk::inspector-call-nth-action :restore-point t] 5 "\n\n(fn BUTTON)"] sly-error "Elisp sly-dcase failed: %S"] 12 (#$ . 279773)]) #@97 Return a pair (Y-POSITION X-POSITION) representing the position of point in the current buffer. (defalias 'sly-inspector-position #[0 "\214~\210\300 i)B\207" [line-number-at-pos] 2 (#$ . 280661)]) #@32 Reinspect the previous object. (defalias 'sly-inspector-pop #[0 "\300\301\302\303#\207" [sly-eval-for-inspector (slynk:inspector-pop) :error-message "No previous object"] 4 (#$ . 280864) nil]) #@41 Inspect the next object in the history. (defalias 'sly-inspector-next #[0 "\300\301\302\303#\207" [sly-eval-for-inspector (slynk:inspector-next) :error-message "No next object"] 4 (#$ . 281063) nil]) #@150 Quit the inspector and kill the buffer. With optional RESET (true with prefix arg), also reset the inspector on the Lisp side. (fn &optional RESET) (defalias 'sly-inspector-quit #[256 "\211\203\300\301!\210\302 \207" [sly-eval-async (slynk:quit-inspector) quit-window] 3 (#$ . 281270) "p"]) #@41 Describe the currently inspected object (defalias 'sly-inspector-describe-inspectee #[0 "\300\301!\207" [sly-eval-describe (slynk:describe-inspectee)] 2 (#$ . 281570) nil]) #@129 Eval an expression in the context of the inspected object. The `*' variable will be bound to the inspected object. (fn STRING) (defalias 'sly-inspector-eval #[257 "\300\301D!\207" [sly-eval-with-transcript slynk:inspector-eval] 4 (#$ . 281750) (byte-code "\300\301!C\207" [sly-read-from-minibuffer "Inspector eval: "] 2)]) #@40 Show the previously inspected objects. (defalias 'sly-inspector-history #[0 "\300\301!\207" [sly-eval-describe (slynk:inspector-history)] 2 (#$ . 282081) nil]) #@33 (fn &optional INSPECTOR-NAME) (defalias 'sly-inspector-reinspect #[256 "\300\301\302#\207" [sly-eval-for-inspector (slynk:inspector-reinspect) :inspector-name] 5 (#$ . 282247) (byte-code "\300 C\207" [sly-maybe-read-inspector-name] 1)]) (defalias 'sly-inspector-toggle-verbose #[0 "\300\301!\207" [sly-eval-for-inspector (slynk:inspector-toggle-verbose)] 2 nil nil]) #@23 (fn INDEX PREVIOUS) (defalias 'sly-inspector-insert-more-button #[514 "\300\203 \301\202\n\302\303\304D$c\207" [sly-make-action-button " [--more--]\n" " [--more--]" sly-inspector-fetch-more range-args] 8 (#$ . 282623)]) #@49 Fetch all inspector contents and go to the end. (defalias 'sly-inspector-fetch-all #[0 "\301dS!\211\203\302\303\"\203\304\305!)\207\306\307!\207" [sly-inspector-limit button-at button-get range-args nil sly-inspector-fetch-more sly-error "No more elements to fetch"] 4 (#$ . 282856) nil]) #@15 (fn BUTTON) (defalias 'sly-inspector-fetch-more #[257 "\300\301\"\211G\302U\203\211A\262\242\202\303\304\305GD\"\242\306\307T\211F\310\311\312 \"\"#\207" [button-get range-args 2 signal wrong-number-of-arguments (index prev) sly-inspector-fetch-chunk nil sly-rcurry make-closure #[514 "\302\303\300!\304\300!|\210\305\211?#)\207" [V0 inhibit-read-only t button-start button-end sly-inspector-insert-chunk] 6 "\n\n(fn CHUNK PREV)"]] 11 (#$ . 283158)]) #@24 (fn CHUNK PREV CONT) (defalias 'sly-inspector-fetch-chunk #[771 "\301$\207" [sly-inspector-limit sly-inspector-fetch] 8 (#$ . 283634)]) #@30 (fn CHUNK LIMIT PREV CONT) (defalias 'sly-inspector-fetch #[1028 "\300#\211G\301U\203\211A\262\242\202\302\303\304GD\"\242\2039\211\2039\305\306E\307\310\311    %#\207!\207" [sly-inspector-next-range 2 signal wrong-number-of-arguments (from to) sly-eval-for-inspector slynk:inspector-range :opener sly-rcurry #[1285 "\300\301\"$\207" [sly-inspector-fetch sly-inspector-join-chunks] 10 "\n\n(fn CHUNK2 CHUNK1 LIMIT PREV CONT)"]] 16 (#$ . 283782)]) #@25 (fn CHUNK LIMIT PREV) (defalias 'sly-inspector-next-range #[771 "\301G\302U\203\211A\262\210\202\303\304\305GD\"\210\211A\262\242\211A\262\242\242\211Z\203T\306W\203T\203B\211W\203T\203PZ\306]\202Q\306D\207\204{W\203{\203k\211W\203{\203x \\\202yD\207\307\207" [most-positive-fixnum nil 4 signal wrong-number-of-arguments (_ len start end) 0 (nil nil)] 12 (#$ . 284266)]) #@22 (fn CHUNK1 CHUNK2) (defalias 'sly-inspector-join-chunks #[514 "\211G\300U\203\211A\262\242\202\301\302\303GD\"\304\211A\262\210\211A\262\242\242\211G\300U\2038\211A\262\242\202?\301\302\305GD\"\211A\262\242\211A\262\242\242U\203^\306 \"F\207\211U\203p\306\n\"F\207\307\310!\207" [4 signal wrong-number-of-arguments (i1 _l1 s1 e1) nil (i2 l2 s2 e2) append error "Invalid chunks"] 16 (#$ . 284699)]) #@63 Update indentation for all macros defined in the Lisp system. (defalias 'sly-update-indentation #[0 "\300\301!\207" [sly-eval-async (slynk:update-indentation-information)] 2 (#$ . 285147) nil]) #@13 (fn SPEC) (defalias 'sly-intern-indentation-spec #[257 "\211:\203\300@!\300A!B\207\211;\203\301!\207\207" [sly-intern-indentation-spec intern] 4 (#$ . 285347)]) #@244 Update Lisp indent information. ALIST is a list of (SYMBOL-NAME . INDENT-SPEC) of proposed indentation settings for `sly-common-lisp-indent-function'. The appropriate property is setup, unless the user already set one explicitly. (fn ALIST) (defalias 'sly-handle-indentation-update #[257 "\211\211\205N\211@\300@!\301A@!AA@\302\303!\203)\304\305!\203)\305#\210\202?\306N\307N\232\203?\310\306#\210\310\307#\210\311\312$\266A\266\202\202\207" [intern sly-intern-indentation-spec boundp sly-common-lisp-system-indentation fboundp sly-update-system-indentation sly-common-lisp-indent-function sly-indent put run-hook-with-args sly-indentation-update-hooks] 11 (#$ . 285524)]) (defalias 'sly-contrib--load-slynk-dependencies #[0 "\301\302\303\304$\211\205~\305\306\307\310\311\312\"\313\314#DD!\210\305\315\307\311\316\311\317\"\"DD!\211@A@\320:\203h@\262\321@\313\314$\204a\322\323\324@AA@#!\203a\325AA@!\210\326\327\211\330AA@$\210A\262\202/\266\331 \206s\332\333\334\"\335\334#\210\262\266\203\207" [sly-contrib--required-slynk-modules cl-remove-if #[257 "\300\301!\302 \303\304\305\306&\207" [cl-find symbol-name sly-lisp-modules :key downcase :test string=] 8 "\n\n(fn S)"] :key car sly-eval slynk:slynk-add-load-paths quote cl-remove-duplicates mapcar cl-second :test string= slynk:slynk-require symbol-name cl-first nil cl-find y-or-n-p format "Watch out! SLY failed to load SLYNK module %s for contrib %s!\n\nDisable it?" sly-disable-contrib sly-temp-message 3 "You'll need to re-enable %s manually with `sly-enable-contrib'if/when you fix the error" sly-current-connection error "Can't access prop %s for no connection" sly-lisp-modules process-put] 11]) #@70 compiler-macro for inlining `sly-contrib-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-contrib-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-contrib-p (and (memq (type-of cl-x) cl-struct-sly-contrib-tags) t)) nil] 9 (#$ . 287247)]) (put 'sly-contrib-p 'compiler-macro 'sly-contrib-p--cmacro) #@13 (fn CL-X) (defalias 'sly-contrib-p #[257 "\301!>\205 \302\207" [cl-struct-sly-contrib-tags type-of t] 3 (#$ . 287589)]) (byte-code "\300\301\302\303#\304\305\306\301#\207" [function-put sly-contrib-p side-effect-free error-free put sly-contrib cl-deftype-satisfies] 5) #@79 compiler-macro for inlining `sly-contrib--enabled-p'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-contrib--enabled-p--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-contrib--enabled-p (progn (or (sly-contrib-p cl-x) (signal 'wrong-type-argument (list 'sly-contrib cl-x))) (aref cl-x 1))) nil] 9 (#$ . 287869)]) (put 'sly-contrib--enabled-p 'compiler-macro 'sly-contrib--enabled-p--cmacro) #@66 Access slot "enabled-p" of `sly-contrib' struct CL-X. (fn CL-X) (defalias 'sly-contrib--enabled-p #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-contrib-tags type-of signal wrong-type-argument sly-contrib 1] 5 (#$ . 288302)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-contrib--enabled-p side-effect-free t] 4) #@74 compiler-macro for inlining `sly-contrib--name'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-contrib--name--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-contrib--name (progn (or (sly-contrib-p cl-x) (signal 'wrong-type-argument (list 'sly-contrib cl-x))) (aref cl-x 2))) nil] 9 (#$ . 288658)]) (put 'sly-contrib--name 'compiler-macro 'sly-contrib--name--cmacro) #@61 Access slot "name" of `sly-contrib' struct CL-X. (fn CL-X) (defalias 'sly-contrib--name #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-contrib-tags type-of signal wrong-type-argument sly-contrib 2] 5 (#$ . 289066)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-contrib--name side-effect-free t] 4) #@86 compiler-macro for inlining `sly-contrib--sly-dependencies'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-contrib--sly-dependencies--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-contrib--sly-dependencies (progn (or (sly-contrib-p cl-x) (signal 'wrong-type-argument (list 'sly-contrib cl-x))) (aref cl-x 3))) nil] 9 (#$ . 289407)]) (put 'sly-contrib--sly-dependencies 'compiler-macro 'sly-contrib--sly-dependencies--cmacro) #@73 Access slot "sly-dependencies" of `sly-contrib' struct CL-X. (fn CL-X) (defalias 'sly-contrib--sly-dependencies #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-contrib-tags type-of signal wrong-type-argument sly-contrib 3] 5 (#$ . 289875)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-contrib--sly-dependencies side-effect-free t] 4) #@88 compiler-macro for inlining `sly-contrib--slynk-dependencies'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-contrib--slynk-dependencies--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-contrib--slynk-dependencies (progn (or (sly-contrib-p cl-x) (signal 'wrong-type-argument (list 'sly-contrib cl-x))) (aref cl-x 4))) nil] 9 (#$ . 290252)]) (put 'sly-contrib--slynk-dependencies 'compiler-macro 'sly-contrib--slynk-dependencies--cmacro) #@75 Access slot "slynk-dependencies" of `sly-contrib' struct CL-X. (fn CL-X) (defalias 'sly-contrib--slynk-dependencies #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-contrib-tags type-of signal wrong-type-argument sly-contrib 4] 5 (#$ . 290730)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-contrib--slynk-dependencies side-effect-free t] 4) #@76 compiler-macro for inlining `sly-contrib--enable'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-contrib--enable--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-contrib--enable (progn (or (sly-contrib-p cl-x) (signal 'wrong-type-argument (list 'sly-contrib cl-x))) (aref cl-x 5))) nil] 9 (#$ . 291113)]) (put 'sly-contrib--enable 'compiler-macro 'sly-contrib--enable--cmacro) #@63 Access slot "enable" of `sly-contrib' struct CL-X. (fn CL-X) (defalias 'sly-contrib--enable #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-contrib-tags type-of signal wrong-type-argument sly-contrib 5] 5 (#$ . 291531)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-contrib--enable side-effect-free t] 4) #@77 compiler-macro for inlining `sly-contrib--disable'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-contrib--disable--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-contrib--disable (progn (or (sly-contrib-p cl-x) (signal 'wrong-type-argument (list 'sly-contrib cl-x))) (aref cl-x 6))) nil] 9 (#$ . 291878)]) (put 'sly-contrib--disable 'compiler-macro 'sly-contrib--disable--cmacro) #@64 Access slot "disable" of `sly-contrib' struct CL-X. (fn CL-X) (defalias 'sly-contrib--disable #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-contrib-tags type-of signal wrong-type-argument sly-contrib 6] 5 (#$ . 292301)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-contrib--disable side-effect-free t] 4) #@77 compiler-macro for inlining `sly-contrib--authors'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-contrib--authors--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-contrib--authors (progn (or (sly-contrib-p cl-x) (signal 'wrong-type-argument (list 'sly-contrib cl-x))) (aref cl-x 7))) nil] 9 (#$ . 292651)]) (put 'sly-contrib--authors 'compiler-macro 'sly-contrib--authors--cmacro) #@64 Access slot "authors" of `sly-contrib' struct CL-X. (fn CL-X) (defalias 'sly-contrib--authors #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-contrib-tags type-of signal wrong-type-argument sly-contrib 7] 5 (#$ . 293074)]) (byte-code "\300\301\302\303#\300\207" [function-put sly-contrib--authors side-effect-free t] 4) #@77 compiler-macro for inlining `sly-contrib--license'. (fn CL-WHOLE-ARG CL-X) (defalias 'sly-contrib--license--cmacro #[514 "\300\301\302\303\211\211&\207" [cl--defsubst-expand (cl-x) (cl-block sly-contrib--license (progn (or (sly-contrib-p cl-x) (signal 'wrong-type-argument (list 'sly-contrib cl-x))) (aref cl-x 8))) nil] 9 (#$ . 293424)]) (put 'sly-contrib--license 'compiler-macro 'sly-contrib--license--cmacro) #@64 Access slot "license" of `sly-contrib' struct CL-X. (fn CL-X) (defalias 'sly-contrib--license #[257 "\301!>\204\302\303\304D\"\210\211\305H\207" [cl-struct-sly-contrib-tags type-of signal wrong-type-argument sly-contrib 8] 5 (#$ . 293847)]) (byte-code "\300\301\302\303#\304\305\306\"\207" [function-put sly-contrib--license side-effect-free t defalias copy-sly-contrib copy-sequence] 4) #@161 compiler-macro for inlining `make-sly-contrib'. (fn CL-WHOLE &cl-quote &key ENABLED-P NAME SLY-DEPENDENCIES SLYNK-DEPENDENCIES ENABLE DISABLE AUTHORS LICENSE) (defalias 'make-sly-contrib--cmacro #[385 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\300\310\"A@\211\203`\211@\311>\203H\211AA\262\2025\312\n>A@\203W\313\262\2025\314\315@\"\210\2025\210\316\317\320\313 \313        & \207" [plist-member :enabled-p :name :sly-dependencies :slynk-dependencies :enable :disable :authors :license (:enabled-p :name :sly-dependencies :slynk-dependencies :enable :disable :authors :license :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:enabled-p :name :sly-dependencies :slynk-dependencies :enable :disable :authors :license)" cl--defsubst-expand (enabled-p name sly-dependencies slynk-dependencies enable disable authors license) (cl-block make-sly-contrib (record 'sly-contrib enabled-p name sly-dependencies slynk-dependencies enable disable authors license))] 24 (#$ . 294248)]) (put 'make-sly-contrib 'compiler-macro 'make-sly-contrib--cmacro) #@141 Constructor for objects of type `sly-contrib'. (fn &key ENABLED-P NAME SLY-DEPENDENCIES SLYNK-DEPENDENCIES ENABLE DISABLE AUTHORS LICENSE) (defalias 'make-sly-contrib #[128 "\300\301\"A@\300\302\"A@\300\303\"A@\300\304\"A@\300\305\"A@\300\306\"A@\300\307\"A@\300\310\"A@\211\203`\211@\311>\203H\211AA\262\2025\312\n>A@\203W\313\262\2025\314\315@\"\210\2025\210\316\317        & \207" [plist-member :enabled-p :name :sly-dependencies :slynk-dependencies :enable :disable :authors :license (:enabled-p :name :sly-dependencies :slynk-dependencies :enable :disable :authors :license :allow-other-keys) :allow-other-keys nil error "Keyword argument %s not one of (:enabled-p :name :sly-dependencies :slynk-dependencies :enable :disable :authors :license)" record sly-contrib] 19 (#$ . 295402)]) (byte-code "\300\301\302\303#\304\305\306\307\310\306\311\312\305\303& \207" [function-put make-sly-contrib side-effect-free t cl-struct-define sly-contrib nil cl-structure-object record ((cl-tag-slot) (enabled-p) (name) (sly-dependencies) (slynk-dependencies) (enable) (disable) (authors) (license)) cl-struct-sly-contrib-tags] 11) #@37 (fn NAME DOCSTRING &rest CLAUSES) (defalias 'define-sly-contrib '(macro . #[642 "\211\300\211\211:\203%@\262\211A\262\242\262\301D!\244\262A\262\202\211\237\266\204\302\303\"A@\302\304\"A@\302\305\"A@\302\306\"A@\302\307\"A@\302\310\"A@\211\203{\211@\311>\203c\211AA\262\202P\312>A@\203r\300\262\202P\313\314@\"\210\202P\210\315\316\317\320\321\322!D\322!D\323!\324BB\325\323!\326\327\330D\331\332\330D\307\330D\310\330D\303\330D\304\330D\333\330%!D\334\330'!D\257FE\335\336\337\"\340\f!\300\341\342\336\343\344\345\346\336\"BEEE\347\350\351\352\330D\353\354\346\351#!\330$DF\355BB\257\356\335\357\360 !D\361BBC\"BBBBBB\340\f!\300\335\347\350\351\352\330D\362BBBBB\363\364\330DE\341\365\336\366\367\370\346\336\"\"BEEE\357\360!!D\371BBF\"BBBD\"BBBBBB\207" [nil reverse plist-member :sly-dependencies :slynk-dependencies :on-load :on-unload :authors :license (:sly-dependencies :slynk-dependencies :on-load :on-unload :authors :license :allow-other-keys) :allow-other-keys error "Keyword argument %s not one of (:sly-dependencies :slynk-dependencies :on-load :on-unload :authors :license)" #[257 "\300\301!\302P!\207" [intern symbol-name "-init"] 4 "\n\n(fn C)"] #[257 "\300\301!\302P!\207" [intern symbol-name "-unload"] 4 "\n\n(fn C)"] #[257 "\300\301!\302P!\207" [intern symbol-name "--path"] 4 "\n\n(fn C)"] #[257 "\300\301!\302P!\207" [intern symbol-name "--contrib"] 4 "\n\n(fn C)"] progn defvar setq ((and load-file-name (file-name-directory load-file-name))) (eval-when-compile (when byte-compile-current-file (add-to-list 'load-path (file-name-as-directory (file-name-directory byte-compile-current-file))))) put 'sly-contribs quote make-sly-contrib :name :enable :disable append mapcar #[257 "\300\301DD\207" [require quote] 4 "\n\n(fn D)"] defun mapc #'funcall #'sly-contrib--enable cl-remove-if #'sly-contrib--enabled-p list cl-loop for dep in do cl-pushnew (sly-contrib--required-slynk-modules :key #'cl-first) (when (and (eq this-command 'sly-setup) (sly-connected-p)) (sly-contrib--load-slynk-dependencies)) setf sly-contrib--enabled-p (t) (do (setq sly-contrib--required-slynk-modules (cl-remove dep sly-contrib--required-slynk-modules :key #'cl-first))) sly-warning "Disabling contrib %s" #'funcall #'sly-contrib--disable cl-remove-if-not #'sly-contrib--enabled-p (nil)] 41 (#$ . 296563)])) (byte-code "\300\301\302\303#\300\207" [function-put define-sly-contrib lisp-indent-function 1] 4) #@36 All defined `sly-contrib' objects. (defalias 'sly-contrib--all-contribs #[0 "\301\302!\303\211\211\211:\2030\262\211A\262\242\262@\262\304!>\203(B\262AA\262\202\211\237\207" [cl-struct-sly-contrib-tags symbol-plist sly-contribs nil type-of] 7 (#$ . 299085)]) #@76 Contrib names recursively needed by CONTRIB, including self. (fn CONTRIB) (defalias 'sly-contrib--all-dependencies #[257 "\3011\"\211\302\303\304!\305!>\204\306\307\310D\"\210\211\311H\262\"B0\207\312\313#\207" [cl-struct-sly-contrib-tags (debug error) cl-mapcan sly-contrib--all-dependencies sly-contrib--find-contrib type-of signal wrong-type-argument sly-contrib 3 sly-error "There's an error in %s: %s"] 9 (#$ . 299369)]) #@19 (fn DESIGNATOR) (defalias 'sly-contrib--find-contrib #[257 "\301!>\203 \207\302N\206\303\304\"\207" [cl-struct-sly-contrib-tags type-of sly-contribs error "Unknown contrib: %S"] 4 (#$ . 299812)]) (defalias 'sly-contrib--read-contrib-name #[0 "\301 \302\211:\203,@\262\303\304!>\204\305\306\307D\"\210\310H!B\262A\262\202\211\237\266\203\311\312\313\302\314$!\207" [cl-struct-sly-contrib-tags sly-contrib--all-contribs nil symbol-name type-of signal wrong-type-argument sly-contrib 2 intern sly-completing-read "Contrib: " t] 8]) #@44 Attempt to enable contrib NAME. (fn NAME) (defalias 'sly-enable-contrib #[257 "\3011\302!\303!>\204\304\305\306D\"\210\211\307H\262 0\207\310\311#\207" [cl-struct-sly-contrib-tags (debug error) sly-contrib--find-contrib type-of signal wrong-type-argument sly-contrib 5 sly-error "There's an error in %s: %s"] 6 (#$ . 300373) (byte-code "\300 C\207" [sly-contrib--read-contrib-name] 1)]) #@45 Attempt to disable contrib NAME. (fn NAME) (defalias 'sly-disable-contrib #[257 "\3011\302!\303!>\204\304\305\306D\"\210\211\307H\262 0\207\310\311#\207" [cl-struct-sly-contrib-tags (debug error) sly-contrib--find-contrib type-of signal wrong-type-argument sly-contrib 6 sly-error "There's an error in %s: %s"] 6 (#$ . 300778) (byte-code "\300 C\207" [sly-contrib--read-contrib-name] 1)]) #@5 SLY (defvar sly-menu nil (#$ . 301184)) (byte-code "\301\302\303\304\303\305\306\307#\305\310\311#\305\312\313#\314\315\305\316\317 #\305\320\321\n#\305\322\323 #\305\324\325\f#\305\326\327 #\305\330\331#\305\332\333#\305\334\335#\257 \336\305\337\340\n#\305\341\342 #\305\343\344\f#\305\345\346 #\257\347\305\350\351 #\305\352\353\f#\305\354\355 #\305\356\357#\360BBBBB\361\305\362\363\f#\305\364\365 #\305\366\367#\305\370\371#\305\372\373#\305\374\375#\305\376\377#\305\201@\201A#\201BBBBBBBBBB\201C\201D\305\201E\201F#E\201G\305\201H\201I#\201J\305\201K\201L#\305\201M\201N#\305\201O\201P#\201QBBBBBB\314\305\201R\201S#\305\201T\201U#\257\262$\207" [sly-mode-map easy-menu-do-define sly-menu "SLY" (sly-connected-p) vector "Edit Definition..." sly-edit-definition "Return From Definition" sly-pop-find-definition-stack "Complete Symbol" sly-complete-symbol "--" "Evaluation" "Eval Defun" sly-eval-defun "Eval Last Expression" sly-eval-last-expression "Eval And Pretty-Print" sly-pprint-eval-last-expression "Eval Region" sly-eval-region "Eval Region And Pretty-Print" sly-pprint-eval-region "Interactive Eval..." sly-interactive-eval "Edit Lisp Value..." sly-edit-value "Call Defun" sly-call-defun "Debugging" "Inspect..." sly-inspect "Macroexpand Once..." sly-macroexpand-1 "Macroexpand All..." sly-macroexpand-all "Disassemble..." sly-disassemble-symbol "Compilation" "Compile Defun" sly-compile-defun "Compile and Load File" sly-compile-and-load-file "Compile File" sly-compile-file "Compile Region" sly-compile-region ("--" ["Next Note" sly-next-note t] ["Previous Note" sly-previous-note t] ["Remove Notes" sly-remove-notes t] ["List notes" sly-show-compilation-log t]) "Cross Reference" "Who Calls..." sly-who-calls "Who References... " sly-who-references "Who Sets..." sly-who-sets "Who Binds..." sly-who-binds "Who Macroexpands..." sly-who-macroexpands "Who Specializes..." sly-who-specializes "List Callers..." sly-list-callers "List Callees..." sly-list-callees (["Next Location" sly-next-location t]) "Editing" ["Check Parens" check-parens t] "Update Indentation" sly-update-indentation "Documentation" "Describe Symbol..." sly-describe-symbol ["Lookup Documentation..." sly-documentation-lookup t] "Apropos..." sly-apropos "Apropos all..." sly-apropos-all "Apropos Package..." sly-apropos-package (["Hyperspec..." sly-hyperspec-lookup t]) "Interrupt Command" sly-interrupt "Abort Async. Command" sly-quit] 25) #@13 SLY-DB Menu (defvar sly-sly-db-menu nil (#$ . 303694)) (byte-code "\301\302\303\304\305\306\307\310\311\312\313\314\315\316\n#\314\317\320 #\314\321\322\f#\314\323\324 #\314\325\326#\313\314\327\330#\314\331\332#\333\314\334\335#\314\336\337#\314\340\341#\314\342\343#\314\344\345#\257\313\314\346\347#\314\350\351#\257\262$\207" [sly-db-mode-map easy-menu-do-define sly-sly-db-menu "SLY-DB Menu" (sly-connected-p) "SLY-DB" ["Next Frame" sly-db-down t] ["Previous Frame" sly-db-up t] ["Toggle Frame Details" sly-db-toggle-details t] ["Next Frame (Details)" sly-db-details-down t] ["Previous Frame (Details)" sly-db-details-up t] "--" vector "Eval Expression..." sly-interactive-eval "Eval in Frame..." sly-db-eval-in-frame "Eval in Frame (pretty print)..." sly-db-pprint-eval-in-frame "Inspect In Frame..." sly-db-inspect-in-frame "Inspect Condition Object" sly-db-inspect-condition "Restart Frame" sly-db-restart-frame "Return from Frame..." sly-db-return-from-frame "Invoke Restart" "Continue" sly-db-continue "Abort" sly-db-abort "Step" sly-db-step "Step next" sly-db-next "Step out" sly-db-out "Quit (throw)" sly-db-quit "Break With Default Debugger" sly-db-break-with-default-debugger] 29) #@28 Menu for the SLY Inspector (defvar sly-inspector-menu nil (#$ . 304923)) (byte-code "\301\302\303\304\305\306\307\310#\306\311\312#\306\313\314#\306\315\316#\306\317\320#\306\321\322 #\306\323\324\n#\306\325\326 #\257 \262$\207" [sly-inspector-mode-map easy-menu-do-define sly-inspector-menu "Menu for the SLY Inspector" (sly-connected-p) "SLY-Inspector" vector "Pop Inspectee" sly-inspector-pop "Next Inspectee" sly-inspector-next "Describe this Inspectee" sly-inspector-describe "Eval in context" sly-inspector-eval "Show history" sly-inspector-history "Reinspect" sly-inspector-reinspect "Fetch all parts" sly-inspector-fetch-all "Quit" sly-inspector-quit] 17) #@184 Return the list of lists of 'similar' adjacent elements of LIST. The function SIMILAR-P is used to test for similarity. The order of the input list is preserved. (fn SIMILAR-P LIST) (defalias 'sly-group-similar #[514 "\211\205:\211@CCA\211\2032\211@@@\"\203%\211@B\240\266\202+\211CB\262A\266\202\202\n\210\300\301\"\237\262\207" [mapcar nreverse] 9 (#$ . 305607)]) #@138 Partition the elements of LIST into an alist. KEY extracts the key from an element and TEST is used to compare keys. (fn LIST KEY TEST) (defalias 'sly-alistify #[771 "\300\211\2033\211@!\301\302$\211\203\"\211\211AB\241\266\202,CBB\262\266A\266\202\202\210\303\304\"\237\207" [nil cl-assoc :test mapc #[257 "\211A\237\241\207" [] 3 "\n\n(fn ENT)"]] 12 (#$ . 305999)]) #@42 Return (= (length LIST) N). (fn LIST N) (defalias 'sly-length= #[514 "\211\300U\203 ?\207\211S\233\211\205\211A?\207" [0] 4 (#$ . 306397)]) #@40 Return (> (length SEQ) N). (fn SEQ N) (defalias 'sly-length> #[514 "<\203 \211\233\207\300!\203GV\207\301\302\303#\205\304\207" [sequencep error "cl-etypecase failed: %s, %s" (list sequence) nil] 6 (#$ . 306549)]) #@58 Chomp leading and tailing whitespace from STR. (fn STR) (defalias 'sly-trim-whitespace #[257 "\300\301\302#\207" [replace-regexp-in-string "\\`[ \n ]*\\|[ \n ]*\\'" ""] 5 (#$ . 306781)]) (defalias 'sly-column-max #[0 "\212eb\210\300\211\211\300\210i\300y\210\262`dU\204)\203 ]\202!\262\300\262\202\266\203)\207" [nil] 5]) #@15 (fn SYMBOL) (defalias 'sly-cl-symbol-name #[257 "\211;\203 \211\202\f\300!\301\302\"\203$\303\304\"\301\305\"\203#\303\304\"\207\207\207" [symbol-name string-match ":\\([^:]*\\)$" match-string 1 "^|\\(.*\\)|$"] 6 (#$ . 307125)]) #@33 (fn SYMBOL &optional DEFAULT) (defalias 'sly-cl-symbol-package #[513 ";\203 \202\f\300!\301\302\"\203\303\304\"\207\207" [symbol-name string-match "^\\([^:]*\\):" match-string 1] 6 (#$ . 307371)]) #@161 Return a package-qualified string for SYMBOL-OR-NAME. If SYMBOL-OR-NAME doesn't already have a package prefix the current package is used. (fn SYMBOL-OR-NAME) (defalias 'sly-qualify-cl-symbol-name #[257 "\211;\203 \211\202\f\300!\301!\203\207\302\303\304 \211\203!\305!\202\"\306\262\307!#\207" [symbol-name sly-cl-symbol-package format "%s::%s" sly-current-package sly--pretty-package-name "CL-USER" sly-cl-symbol-name] 7 (#$ . 307587)]) #@84 Execute BODY and return true if the current buffer's point moved. (fn &rest BODY) (defalias 'sly-point-moves-p '(macro . #[128 "\300\301!\302\303BC\304B\305\306BBF\207" [cl-gensym "point-" let ((point)) save-current-buffer /= ((point))] 8 (#$ . 308044)])) (byte-code "\300\301\302\303#\300\207" [function-put sly-point-moves-p lisp-indent-function 0] 4) #@113 Like `forward-sexp', but understands reader-conditionals (#- and #+), and skips comments. (fn &optional COUNT) (defalias 'sly-forward-sexp #[256 "\211\206\300\301\211W\205\302\303 \210\304 \266\211T\262\202\207" [1 0 nil sly-forward-cruft forward-sexp] 5 (#$ . 308409)]) (defconst sly-reader-conditionals-regexp "\\(?:#\\(?:![+-]\\|[+-]\\)\\)") #@55 Move past any reader conditional (#+ or #-) at point. (defalias 'sly-forward-reader-conditional #[0 "\301!\2055\302\225b\210`Sf\303=\304\3051\306p!0\202\"\307\310A\"\262!\203+\211\202-\211??\2053\311 \266\202\207" [sly-reader-conditionals-regexp looking-at 0 43 sly-eval-feature-expression (invalid-read-syntax) read signal sly-unknown-feature-expression sly-forward-sexp] 6 (#$ . 308770)]) (byte-code "\300\301\302\303#\304\301\305\306#\207" [function-put sly-forward-reader-conditional speed -1 put byte-optimizer byte-compile-inline-expand] 5) #@62 Move forward over whitespace, comments, reader conditionals. (defalias 'sly-forward-cruft #[0 "`r\301\302w\210\303\304 !\210\305!\203@\306\225b\210`Sf\307=\310\3111&\312p!0\202-\313\314A\"\262!\2036\211\2028\211??\205>\315 \266)\211`U?\262\205M\202\207" [sly-reader-conditionals-regexp " \n" nil forward-comment buffer-size looking-at 0 43 sly-eval-feature-expression (invalid-read-syntax) read signal sly-unknown-feature-expression sly-forward-sexp] 7 (#$ . 309334)]) #@55 Make a keyword out of the symbol SYMBOL. (fn SYMBOL) (defalias 'sly-keywordify #[257 "\300!\227\301\302H\303=\203\202\304P!\207" [symbol-name intern 0 58 ":"] 5 (#$ . 309825)]) (byte-code "\300\301\302\303#\210\300\304\302\305#\207" [put sly-incorrect-feature-expression error-conditions (sly-incorrect-feature-expression error) sly-unknown-feature-expression (sly-unknown-feature-expression sly-incorrect-feature-expression error)] 4) #@52 Interpret a reader conditional expression. (fn E) (defalias 'sly-eval-feature-expression #[257 "\2119\203\f\300!\301 >\207\211:\203>\211@9\203>\300@!\211\302\267\2023\303\2027\304\2027\305\306\"\262\2027\307\310\"\262\311A\"\207\307\312\"\207" [sly-keywordify sly-lisp-features #s(hash-table size 3 test eq rehash-size 1.5 rehash-threshold 0.8125 purecopy t data (:and 33 :or 37 :not 41)) cl-every cl-some make-closure #[514 "\211\204\301\207\211A\204\302\"?\207\303\304\300\"\207" [V0 t apply signal sly-incorrect-feature-expression] 5 "\n\n(fn F L)"] signal sly-unknown-feature-expression sly-eval-feature-expression sly-incorrect-feature-expression] 6 (#$ . 310276)]) #@104 Return a list (START END) for the positions of defun at POS. POS defaults to point (fn &optional POS) (defalias 'sly-region-for-defun-at-point #[256 "\212\300 \301\302\"\216\206 `b\210\303 \210`\304 \210`D\262)\262)\207" [match-data make-closure #[0 "\301\300\302\"\207" [V0 set-match-data evaporate] 3] end-of-defun beginning-of-defun] 5 (#$ . 310977)]) #@56 Move to the beginning of the CL-style symbol at point. (defalias 'sly-beginning-of-symbol #[0 "\300\301`\302V\205 `\302Z\303#\204\304\305\306\303#\210\306f\307=\205'`Sf\310=\205'\306u\207" [re-search-backward "\\(\\sw\\|\\s_\\|\\s\\.\\|\\s\\\\|[#@|]\\)\\=" 2000 t re-search-forward "\\=#[-+.<|]" nil 64 44] 4 (#$ . 311345)]) #@50 Move to the end of the CL-style symbol at point. (defalias 'sly-end-of-symbol #[0 "\300\301!\207" [re-search-forward "\\=\\(\\sw\\|\\s_\\|\\s\\.\\|#:\\|[@|]\\)*"] 2 (#$ . 311681)]) (byte-code "\300\301\302\303#\304\301\305\306#\210\304\307\310\301#\210\304\307\311\312#\207" [function-put sly-end-of-symbol speed -1 put byte-optimizer byte-compile-inline-expand sly-symbol end-op beginning-op sly-beginning-of-symbol] 5) #@124 Return the starting position of the symbol under point. The result is unspecified if there isn't a symbol under the point. (defalias 'sly-symbol-start-pos #[0 "\212\300 \210`)\207" [sly-beginning-of-symbol] 1 (#$ . 312109)]) (defalias 'sly-symbol-end-pos #[0 "\212\300\301!\210`)\207" [re-search-forward "\\=\\(\\sw\\|\\s_\\|\\s\\.\\|#:\\|[@|]\\)*"] 2]) #@96 Return the bounds of the symbol around point. The returned bounds are either nil or non-empty. (defalias 'sly-bounds-of-symbol-at-point #[0 "\300\301!\211\205\211@AW\205\211\207" [bounds-of-thing-at-point sly-symbol] 3 (#$ . 312469)]) #@84 Return the name of the symbol at point, otherwise nil. (fn &optional INTERACTIVE) (defalias 'sly-symbol-at-point #[256 "\300 \211\205\211@A\203\301\"\210\302\"\266\202\207" [sly-bounds-of-symbol-at-point sly-flash-region buffer-substring-no-properties] 7 (#$ . 312715)]) #@143 Return the bounds sexp near point as a pair (or nil). With non-nil INTERACTIVE, error if can't find such a thing. (fn &optional INTERACTIVE) (defalias 'sly-bounds-of-sexp-at-point #[256 "\300 \206J\301f\302=\203 `Sf\303>\203 \214`d}\210\304\305!)\206J\304\305!\206J\212\30614\307\310!\210\3110\2029\210\301\202?\205?\304\305!)\206J\211\205J\312\313!\207" [sly-bounds-of-symbol-at-point nil 40 (39 44 64) bounds-of-thing-at-point sexp (error) backward-sexp 1 t user-error "No sexp near point"] 3 (#$ . 313004)]) #@283 Return the sexp at point as a string, otherwise nil. With non-nil INTERACTIVE, flash the region and also error if no sexp can be found, unless ERRORP, which defaults to t, is passed as nil. With non-nil STRINGP, only look for strings (fn &optional INTERACTIVE STRINGP (ERRORP t)) (defalias 'sly-sexp-at-point #[640 "\211\203 \211A\262\242\202\300\203\301\302\303\304G\\D\"\210\3052c\306\205&!\211\205`\203O\307\310@!!\311z=\204O\203J\203J\312\313!\210\202O\314\305\315\"\210\203Z\316@A\"\210\317@A\"\2620\207" [t signal wrong-number-of-arguments sly-sexp-at-point 3 return sly-bounds-of-sexp-at-point syntax-class syntax-after 34 user-error "No string at point" throw nil sly-flash-region buffer-substring-no-properties] 9 (#$ . 313534)]) #@167 Returns the string near point as a string, otherwise nil. With non-nil INTERACTIVE, flash the region and error if no string can be found. (fn &optional INTERACTIVE) (defalias 'sly-string-at-point #[256 "\300\301\"\207" [sly-sexp-at-point stringp] 4 (#$ . 314312)]) #@84 Return t if the region from START to END contains a complete sexp. (fn START END) (defalias 'sly-input-complete-p #[514 "\212b\210\300\301!\203,\3021'\214}\210\303\304w\210m\204!\305 \210\202)\3060\202-\210\304\202-\306)\207" [looking-at "\\s *['`#]?[(\"]" (error) " \n)" nil forward-sexp t] 4 (#$ . 314585)]) (byte-code "\300\301\302\303F\304\211\211:\203)@\262\305\306\"\262\307\310\311BC\"\210A\262\304\262\202\266\207" [sly-def-connection-var sly-define-channel-type sly-define-channel-method define-sly-contrib nil format "(\\(%S\\)\\s +\\(\\(\\w\\|\\s_\\)+\\)" font-lock-add-keywords emacs-lisp-mode ((1 font-lock-keyword-face) (2 font-lock-variable-name-face))] 8) #@15 (fn SYMBOL) (defalias 'sly--byte-compile #[257 "\301\302!\210\303\304!)\207" [byte-compile-warnings require bytecomp nil byte-compile] 3 (#$ . 315289)]) #@13 (fn SYMS) (defalias 'sly-byte-compile-hotspots #[257 "\300\301\"\207" [mapc #[257 "\300!\203\301K!?\205\302!\207\303\304\"\207" [fboundp byte-code-function-p sly--byte-compile error "%S is not fbound"] 4 "\n\n(fn SYM)"]] 4 (#$ . 315452)]) (byte-code "\303\304!\210\305\300\306\"\210\307>\203 \204\310\311!\312\313!\210\203Q\314\300\307\"\210\315 \211\203M\211@r\211q\210\n\316=\203E\306\317!\210\3201D\321\322!0\210\202E\210)A\266\202\202$\210\202U\312\323!\210\324\325!\207" [lisp-mode-hook noninteractive major-mode sly-byte-compile-hotspots (sly-alistify sly-log-event sly--events-buffer sly-process-available-input sly-dispatch-event sly-net-filter sly-net-have-input-p sly-net-decode-length sly-net-read sly-print-apropos sly-insert-propertized sly-beginning-of-symbol sly-end-of-symbol sly-eval-feature-expression sly-forward-sexp sly-forward-cruft sly-forward-reader-conditional) add-hook sly-editing-mode slime-lisp-mode-hook y-or-n-p "[sly] SLIME detected in `lisp-mode-hook', causes keybinding conflicts. Remove it for this Emacs session?" warn "To restore SLIME in this session, customize `lisp-mode-hook'\nand replace `sly-editing-mode' with `slime-lisp-mode-hook'." remove-hook buffer-list lisp-mode 1 (error) slime-mode -1 "`sly.el' loaded OK. To use SLY, customize `lisp-mode-hook' and remove `slime-lisp-mode-hook'." provide sly] 4)