;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. ;;; This file does not contain utf-8 non-ASCII characters, ;;; and so can be loaded in Emacs versions earlier than 23. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301!\210\300\302!\210\300\303!\210\300\304!\210\300\305!\210\300\306!\210\300\307!\210\300\310!\210\300\311!\210\312\313\314\315\316\305%\210\317\320\321\322\316\313%\210\317\323\324\325\316\313%\210\317\326\327\330\316\313%\210\317\331\332\333\316\313%\207" [require cl-generic eieio data-debug eieio-datadebug rudel rudel-util rudel-state-machine rudel-transport-util rudel-socket custom-declare-group rudel-debug nil "Customization options related to Rudel's debugging functions." :group custom-declare-face rudel-debug-sent-data-face ((default (:background "orange"))) "Face used for sent data." rudel-debug-received-data-face ((default (:background "light sky blue"))) "Face used for received (but not yet processed) data." rudel-debug-state-face ((default (:background "light gray"))) "Face used when indicating state changes." rudel-debug-special-face ((default (:background "light sea green"))) "Face used for additional information."] 6) #@38 Associate tag to faces and prefixes. (defvar rudel-debug-tag-faces '((:sent rudel-debug-sent-data-face "< ") (:received rudel-debug-received-data-face "> ") (:state rudel-debug-state-face "| ") (:special rudel-debug-special-face "; ")) (#$ . 1372)) #@61 Analyze list of discoverable sessions in data debug buffer. (defalias 'rudel-adebug-discover #[0 "r\300\301!q\210\302\303 \304\")\207" [data-debug-new-buffer "RUDEL-DISCOVERED-SESSIONS" data-debug-insert-stuff-list rudel-session-initiation-discover "# "] 3 (#$ . 1631) nil]) #@47 Analyze current session in data debug buffer. (defalias 'rudel-adebug-session #[0 "\204\301\302!\210r\303\304!q\210\305\306\307#)\207" [rudel-current-session error "No active Rudel session" data-debug-new-buffer "RUDEL-SESSION" data-debug-insert-thing "# " ""] 4 (#$ . 1912) nil]) #@51 Analyze server in data debug buffer. (fn SERVER) (defalias 'rudel-adebug-server #[257 "r\300\301!q\210\302\303\304#)\207" [data-debug-new-buffer "RUDEL-SERVER" data-debug-insert-thing "# " ""] 5 (#$ . 2203) nil]) (advice-add 'rudel-join-session :after 'rudel--debug-join-session) #@75 Run data-debug inspection on newly created session objects. (fn &rest _) (defalias 'rudel--debug-join-session #[128 "\300 \207" [rudel-adebug-session] 2 (#$ . 2491)]) (advice-add 'rudel-host-session :around 'rudel--debug-host-session) #@86 Run data-debug inspection on newly created server objects. (fn ORIG-FUN &rest ARGS) (defalias 'rudel--debug-host-session #[385 "\300\301\"!\207" [rudel-adebug-server apply] 6 (#$ . 2733)]) #@55 Suspend the socket associated to the current session. (defalias 'rudel-suspend-session-socket #[0 "\204\301\302!\210\303\304\"\305\303\306\"!\262\207" [rudel-current-session error "No active Rudel session" slot-value connection stop-process socket] 6 (#$ . 2931) nil]) #@54 Resume the socket associated to the current session. (defalias 'rudel-resume-session-socket #[0 "\204\301\302!\210\303\304\"\305\303\306\"!\262\207" [rudel-current-session error "No active Rudel session" slot-value connection continue-process socket] 6 (#$ . 3213) nil]) #@6 TODO (defalias 'rudel-kill-processes #[0 "\300\301\302 \"\207" [mapc delete-process process-list] 3 (#$ . 3496) nil]) #@6 TODO (defalias 'rudel-reset #[0 "\302 \211\203\211@r\211q\210\203\303)A\266\202\202\210\304 \210\303\211\207" [rudel-buffer-document rudel-current-session buffer-list nil rudel-kill-processes] 3 (#$ . 3619) nil]) (byte-code "\300\301\302\301\303\304#\305#\210\306\301\304\307\304\310%\207" [defalias rudel-debug-target cl-generic-define (object) nil "Return debug stream name for OBJECT.\n\n(fn OBJECT)" cl-generic-define-method ((this eieio-default-superclass)) #[257 "\300!\207" [object-name-string] 3 "Default implementation simply uses the object name of THIS.\n\n(fn THIS)"]] 6) #@114 Insert DATA and maybe OBJECT into stream using TAG, LABEL as style. (fn STREAM TAG LABEL DATA &optional OBJECT) (defalias 'rudel-debug-write-to-stream #[1284 "\301\302\"\303!\206\304!\305\"A\211\205\211@\206\306A@\206%\307;\2030\2024\310!rq\210\311b\210 \203M\301\312\313\f\314\315#\"\202N\316\317\313\314#G\320Y\203i\321\322O\323\230\203i\307\202j\323\261\210\205~\324\313\325\314\315#P\307#)\207" [rudel-debug-tag-faces format "*%s stream*" get-buffer data-debug-new-buffer assoc default "" cl-prin1-to-string 0 "%-8s" propertize face font-lock-type-face " " " " 1 -1 nil "\n" data-debug-insert-thing "OBJECT "] 18 (#$ . 4221)]) #@149 Write DATA and OBJECT to debug stream associated to SOURCE. TAG and LABEL determine the logging style. (fn SOURCE TAG LABEL DATA &optional OBJECT) (defalias 'rudel-debug-write #[1284 "\300\301!%\207" [rudel-debug-write-to-stream rudel-debug-target] 11 (#$ . 4913)]) #@57 Saves state of state machines across one function call. (defvar rudel-debug-old-state nil (#$ . 5192)) (byte-code "\300\301\302\303\304\305%\210\300\301\306\307\304\310%\210\300\311\304\312\304\313%\210\300\314\315\316\304\317%\210\300\320\304\321\304\322%\210\300\323\324\325\304\326%\210\300\327\330\331\304\332%\210\300\333\334\335\304\336%\210\300\320\304\337\304\340%\210\300\323\341\342\304\343%\210\300\320\304\344\304\345%\210\300\323\346\347\304\350%\210\351\352!\207" [cl-generic-define-method rudel-switch (:before) ((this rudel-state-machine) _state &rest _) nil #[642 "\301\302\"\203\303\301\302\"!\202\304\211\207" [rudel-debug-old-state slot-value state object-name-string "#start"] 8 "Store name of STATE for later printing.\n\n(fn THIS STATE &rest ##)"] (:after) ((this rudel-state-machine) _state &rest arguments) #[642 "\301\302\303\"!\230?\205-\304\305\306\203%\307\310 $\202,\307\311#$\266\202\207" [rudel-debug-old-state object-name-string slot-value state rudel-debug-write :special "FSM" format "%s -> %s %s" "%s -> %s"] 15 "Log STATE and ARGUMENTS to debug stream.\n\n(fn THIS STATE &rest ARGUMENTS)"] rudel-debug-target ((this rudel-transport-filter)) #[257 "\211\300\301\302\"!\207" [rudel-debug-target slot-value transport] 6 "Find target of filter THIS by looking at underlying transport.\n\n(fn THIS)"] rudel-set-assembly-function (:before) ((this rudel-assembling-transport-filter) function) #[514 "\300\301\302\303\304\305\306\307\"!\305 !#$\207" [rudel-debug-write :special "ASSEMBLE" format "%s -> %s" symbol-name slot-value assembly-function] 13 "Log change of assembly function to FUNCTION.\n\n(fn THIS FUNCTION)"] rudel-set-filter ((this rudel-assembling-transport-filter) filter1) #[514 "\211\300\301\302\303\304\305\306  \"\307\"\310\311%#\262\207" [eieio-oset filter make-byte-code 257 "\302\300\303\304$\210\301!\207" vconcat vector [rudel-debug-write :received "ASSEMBLE"] 6 "\n\n(fn DATA)"] 14 "Log DATA as it goes through THIS.\n\n(fn THIS FILTER1)"] rudel-send (:before) ((this rudel-assembling-transport-filter) data) #[514 "\300\301\302\303%\207" [rudel-debug-write :sent "RAW" nil] 8 "Log DATA as it goes through THIS.\n\n(fn THIS DATA)"] rudel-set-parse-function (:before) ((this rudel-parsing-transport-filter) function) #[514 "\300\301\302\303\304\305\306\307\"!\305 !#$\207" [rudel-debug-write :special "PARSE" format "%s -> %s" symbol-name slot-value parse-function] 13 "Log parse function change to FUNCTION.\n\n(fn THIS FUNCTION)"] rudel-set-generate-function (:before) ((this rudel-parsing-transport-filter) function) #[514 "\300\301\302\303\304\305\306\307\"!\305 !#$\207" [rudel-debug-write :special "GENERATE" format "%s -> %s" symbol-name slot-value generate-function] 13 "Log generate function change to FUNCTION.\n\n(fn THIS FUNCTION)"] ((this rudel-parsing-transport-filter) filter1) #[514 "\211\300\301\302\303\304\305\306  \"\307\"\310\311%#\262\207" [eieio-oset filter make-byte-code 257 "\302\300\303\304\305\306\"%\210\301!\207" vconcat vector [rudel-debug-write :received "PARSE" format "%s"] 8 "\n\n(fn DATA)"] 14 "Log DATA as it goes through THIS.\n\n(fn THIS FILTER1)"] (:before) ((this rudel-parsing-transport-filter) string-or-data) #[514 "\211;\203 \211\202\f\300!\301\302\303;?\205%\207" [cl-prin1-to-string rudel-debug-write :sent "GENERATE"] 9 "Log STRING-OR-DATA as it goes through THIS.\n\n(fn THIS STRING-OR-DATA)"] ((this rudel-socket-transport) filter) #[514 "\300\301\302\303\304\305\306\n\n\"\307\"\310\311%#\207" [eieio-oset :filter make-byte-code 257 "\302\300\303\304$\210\301!\207" vconcat vector [rudel-debug-write :received "SOCKET"] 6 "\n\n(fn DATA)"] 13 "Log DATA as it goes through THIS.\n\n(fn THIS FILTER)"] (:before) ((this rudel-socket-transport) data) #[514 "\300\301\302\303%\207" [rudel-debug-write :sent "SOCKET" nil] 8 "Log DATA verbatim as it is sent through the socket of THIS.\n\n(fn THIS DATA)"] provide rudel-debug] 6)