ag91 / moldable-emacs

Adapting Emacs for moldable development
GNU General Public License v3.0
105 stars 8 forks source link

WhatMoldsCanIUse? gives backtrace #20

Closed alanz closed 2 years ago

alanz commented 2 years ago

Invoking the mold WhatMoldsCanIUse? gives the following backtrace

Debugger entered--Lisp error: (void-variable it)
  (eval it)
  (not (eval it))
  (cond ((equal '((not (eval it))) '(:given)) (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) (thunk-force tree-thunk))) ((equal '((not (eval it))) '(:then)) (progn (get-buffer-create buffername) (let* ((result (let (...) (let ... ...)))) (save-current-buffer (set-buffer buffername) (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (set (make-local-variable 'self) result))) (condition-case nil (progn (switch-to-buffer-other-window (get-buffer buffername))) (error nil)))) (t (not (eval it))))
  (cl-symbol-macrolet ((tree (thunk-force tree-thunk))) (pcase '((not (eval it))) ('(:given) (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree)) ('(:then) (progn (get-buffer-create buffername) (let* ((result (--> ... ... ... ... ... ... ...))) (with-current-buffer buffername (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (setq-local self result))) (ignore-errors (switch-to-buffer-other-window (get-buffer buffername))))) (_ (not (eval it)))))
  (let ((tree-thunk (thunk-delay (progn (unless (list-at-point) (progn (goto-char ...) (search-forward "(" nil t))) (or (ignore-errors (eval ...)) (list-at-point)))))) (cl-symbol-macrolet ((tree (thunk-force tree-thunk))) (pcase '((not (eval it))) ('(:given) (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode ... ...)) tree)) ('(:then) (progn (get-buffer-create buffername) (let* ((result ...)) (with-current-buffer buffername (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (setq-local self result))) (ignore-errors (switch-to-buffer-other-window (get-buffer buffername))))) (_ (not (eval it))))))
  (thunk-let ((tree (progn (unless (list-at-point) (progn (goto-char (point-min)) (search-forward "(" nil t))) (or (ignore-errors (eval (list-at-point))) (list-at-point))))) (pcase '((not (eval it))) ('(:given) (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree)) ('(:then) (progn (get-buffer-create buffername) (let* ((result (--> ... ... ... ... ... ... ...))) (with-current-buffer buffername (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (setq-local self result))) (ignore-errors (switch-to-buffer-other-window (get-buffer buffername))))) (_ (not (eval it)))))
  (thunk-let* ((tree (progn (unless (list-at-point) (progn (goto-char (point-min)) (search-forward "(" nil t))) (or (ignore-errors (eval (list-at-point))) (list-at-point))))) (pcase '((not (eval it))) ('(:given) (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree)) ('(:then) (progn (get-buffer-create buffername) (let* ((result (--> ... ... ... ... ... ... ...))) (with-current-buffer buffername (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (setq-local self result))) (ignore-errors (switch-to-buffer-other-window (get-buffer buffername))))) (_ (not (eval it)))))
  (let ((buffername (concat "*moldable-emacs-" (or nil "Eval Parenscript with Nyxt") "*"))) (thunk-let* ((tree (progn (unless (list-at-point) (progn (goto-char ...) (search-forward "(" nil t))) (or (ignore-errors (eval ...)) (list-at-point))))) (pcase '((not (eval it))) ('(:given) (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode ... ...)) tree)) ('(:then) (progn (get-buffer-create buffername) (let* ((result ...)) (with-current-buffer buffername (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (setq-local self result))) (ignore-errors (switch-to-buffer-other-window (get-buffer buffername))))) (_ (not (eval it))))))
  (progn (let ((buffername (concat "*moldable-emacs-" (or nil "Eval Parenscript with Nyxt") "*"))) (thunk-let* ((tree (progn (unless (list-at-point) (progn ... ...)) (or (ignore-errors ...) (list-at-point))))) (pcase '((not (eval it))) ('(:given) (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '...) tree)) ('(:then) (progn (get-buffer-create buffername) (let* (...) (with-current-buffer buffername ... ... ... ...)) (ignore-errors (switch-to-buffer-other-window ...)))) (_ (not (eval it)))))))
  eval((progn (let ((buffername (concat "*moldable-emacs-" (or nil "Eval Parenscript with Nyxt") "*"))) (thunk-let* ((tree (progn (unless ... ...) (or ... ...)))) (pcase '((not ...)) ('(:given) (and (eq major-mode ...) (me-require ...) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps ...) tree)) ('(:then) (progn (get-buffer-create buffername) (let* ... ...) (ignore-errors ...))) (_ (not (eval it))))))) t)
  (closure ((it-index . 1) (it me-require 'emacs-with-nyxt) (i . 2) (list (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree) (result) (it (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree) (given-cond and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree) (mold :key "Eval Parenscript with Nyxt" :let ((tree (progn (unless ... ...) (or ... ...)))) :given (:fn (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '...) tree)) :then (:fn (let* ((result ...)) (with-current-buffer buffername (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (setq-local self result)))) :docs "You can evaluate some Parenscript in the current b..." :examples nil :origin "/home/alanz/.emacs.d/elpa/moldable-emacs-20211125....") t) (m clause) (eval (list 'progn (list 'let (list (list 'buffername (cons ... ...))) (list (if (condition-case nil ... ...) 'let* 'thunk-let*) (plist-get m :let) (list 'pcase (list ... clause) (list ... ...) (list ... ...) (cons ... clause))))) 't))((:key "Eval Parenscript with Nyxt" :let ((tree (progn (unless (list-at-point) (progn (goto-char ...) (search-forward "(" nil t))) (or (ignore-errors (eval ...)) (list-at-point))))) :given (:fn (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree)) :then (:fn (let* ((result (--> (emacs-with-nyxt-send-sexps ...) (string-reverse it) (s-split " ," it) (-drop 1 it) (s-join " ," it) (string-reverse it) (read it)))) (with-current-buffer buffername (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (setq-local self result)))) :docs "You can evaluate some Parenscript in the current b..." :examples nil :origin "/home/alanz/.emacs.d/elpa/moldable-emacs-20211125....") ((not (eval it))))
  funcall((closure ((it-index . 1) (it me-require 'emacs-with-nyxt) (i . 2) (list (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree) (result) (it (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree) (given-cond and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree) (mold :key "Eval Parenscript with Nyxt" :let ((tree (progn (unless ... ...) (or ... ...)))) :given (:fn (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '...) tree)) :then (:fn (let* ((result ...)) (with-current-buffer buffername (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (setq-local self result)))) :docs "You can evaluate some Parenscript in the current b..." :examples nil :origin "/home/alanz/.emacs.d/elpa/moldable-emacs-20211125....") t) (m clause) (eval (list 'progn (list 'let (list (list 'buffername (cons ... ...))) (list (if (condition-case nil ... ...) 'let* 'thunk-let*) (plist-get m :let) (list 'pcase (list ... clause) (list ... ...) (list ... ...) (cons ... clause))))) 't)) (:key "Eval Parenscript with Nyxt" :let ((tree (progn (unless (list-at-point) (progn (goto-char ...) (search-forward "(" nil t))) (or (ignore-errors (eval ...)) (list-at-point))))) :given (:fn (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree)) :then (:fn (let* ((result (--> (emacs-with-nyxt-send-sexps ...) (string-reverse it) (s-split " ," it) (-drop 1 it) (s-join " ," it) (string-reverse it) (read it)))) (with-current-buffer buffername (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (setq-local self result)))) :docs "You can evaluate some Parenscript in the current b..." :examples nil :origin "/home/alanz/.emacs.d/elpa/moldable-emacs-20211125....") ((not (eval it))))
  (and (seqp it) (-contains\? it 'me-require) (funcall #'(lambda (m clause) (eval (list 'progn (list 'let (list ...) (list ... ... ...))) 't)) mold '((not (eval it)))))
  (or (and (seqp it) (-contains\? it 'executable-find) (funcall #'(lambda (m clause) (eval (list 'progn (list ... ... ...)) 't)) mold '((not (eval it))))) (and (seqp it) (-contains\? it 'me-require) (funcall #'(lambda (m clause) (eval (list 'progn (list ... ... ...)) 't)) mold '((not (eval it))))))
  (if (or (and (seqp it) (-contains\? it 'executable-find) (funcall #'(lambda (m clause) (eval (list ... ...) 't)) mold '((not (eval it))))) (and (seqp it) (-contains\? it 'me-require) (funcall #'(lambda (m clause) (eval (list ... ...) 't)) mold '((not (eval it)))))) (progn (setq result (cons it result))))
  (while list (setq it (car-safe (prog1 list (setq list (cdr list)))) it-index i i (1+ i)) (if (or (and (seqp it) (-contains\? it 'executable-find) (funcall #'(lambda (m clause) (eval ... ...)) mold '((not ...)))) (and (seqp it) (-contains\? it 'me-require) (funcall #'(lambda (m clause) (eval ... ...)) mold '((not ...))))) (progn (setq result (cons it result)))))
  (let ((list it) (i 0) it it-index) (ignore it it-index) (while list (setq it (car-safe (prog1 list (setq list (cdr list)))) it-index i i (1+ i)) (if (or (and (seqp it) (-contains\? it 'executable-find) (funcall #'(lambda ... ...) mold '(...))) (and (seqp it) (-contains\? it 'me-require) (funcall #'(lambda ... ...) mold '(...)))) (progn (setq result (cons it result))))))
  (let (result) (let ((list it) (i 0) it it-index) (ignore it it-index) (while list (setq it (car-safe (prog1 list (setq list (cdr list)))) it-index i i (1+ i)) (if (or (and (seqp it) (-contains\? it 'executable-find) (funcall #'... mold '...)) (and (seqp it) (-contains\? it 'me-require) (funcall #'... mold '...))) (progn (setq result (cons it result)))))) (nreverse result))
  (let ((it (cdr given-cond))) (let (result) (let ((list it) (i 0) it it-index) (ignore it it-index) (while list (setq it (car-safe (prog1 list (setq list ...))) it-index i i (1+ i)) (if (or (and (seqp it) (-contains\? it ...) (funcall ... mold ...)) (and (seqp it) (-contains\? it ...) (funcall ... mold ...))) (progn (setq result (cons it result)))))) (nreverse result)))
  (and (condition-case nil (progn (> (length given-cond) 1)) (error nil)) (eq (car given-cond) 'and) (let ((it (cdr given-cond))) (let (result) (let ((list it) (i 0) it it-index) (ignore it it-index) (while list (setq it (car-safe (prog1 list ...)) it-index i i (1+ i)) (if (or (and ... ... ...) (and ... ... ...)) (progn (setq result ...))))) (nreverse result))))
  (list :key (plist-get mold :key) :missing-dependencies (and (condition-case nil (progn (> (length given-cond) 1)) (error nil)) (eq (car given-cond) 'and) (let ((it (cdr given-cond))) (let (result) (let ((list it) (i 0) it it-index) (ignore it it-index) (while list (setq it (car-safe ...) it-index i i (1+ i)) (if (or ... ...) (progn ...)))) (nreverse result)))))
  (let ((given-cond (me-get-in mold '(:given :fn)))) (list :key (plist-get mold :key) :missing-dependencies (and (condition-case nil (progn (> (length given-cond) 1)) (error nil)) (eq (car given-cond) 'and) (let ((it (cdr given-cond))) (let (result) (let ((list it) (i 0) it it-index) (ignore it it-index) (while list (setq it ... it-index i i ...) (if ... ...))) (nreverse result))))))
  me-find-missing-dependencies-for-mold((:key "Eval Parenscript with Nyxt" :let ((tree (progn (unless (list-at-point) (progn (goto-char ...) (search-forward "(" nil t))) (or (ignore-errors (eval ...)) (list-at-point))))) :given (:fn (and (eq major-mode 'lisp-mode) (me-require 'emacs-with-nyxt) (emacs-with-nyxt-connected-p) (emacs-with-nyxt-send-sexps '(find-mode (current-buffer) 'web-mode)) tree)) :then (:fn (let* ((result (--> (emacs-with-nyxt-send-sexps ...) (string-reverse it) (s-split " ," it) (-drop 1 it) (s-join " ," it) (string-reverse it) (read it)))) (with-current-buffer buffername (emacs-lisp-mode) (erase-buffer) (me-print-to-buffer result) (setq-local self result)))) :docs "You can evaluate some Parenscript in the current b..." :examples nil :origin "/home/alanz/.emacs.d/elpa/moldable-emacs-20211125...."))
  mapcar(me-find-missing-dependencies-for-mold ((:key "Eval Parenscript wit..." :let ... :given ... :then ... :docs "You can evaluate som..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Playground Parenscri..." :given ... :then ... :docs "You can write some P..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Eval JS with Nyxt" :given ... :then ... :docs "You can evaluate som..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Playground JS with N..." :given ... :then ... :docs "You can write some J..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "List To Picture" :given ... :then ... :origin "/home/alanz/.emacs.d...") (:key "List To Dot" :let ... :given ... :then ... :docs "You can transform a ..." :examples ... :origin "/home/alanz/.emacs.d...") (:key "Audit with Lighthous..." :let ... :given ... :then ... :docs "You can audit a url ..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Eval With Clojure" :given ... :then ... :docs "You can evaluate the..." :examples ... :origin "/home/alanz/.emacs.d...") (:key "Playground Clojure" :given ... :then ... :docs "You can play around ..." :examples ... :origin "/home/alanz/.emacs.d...") (:key "EdnToElisp" :let ... :given ... :then ... :docs "You can parse EDN fo..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Clojure examples for..." :let ... :given ... :then ... :docs "You can list example..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Files To Edit As Org..." :let ... :given ... :then ... :docs "You can make a TODO ..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "List Files To Edit A..." :let ... :given ... :then ... :docs "You can list the fil..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Image To Text" :docs "Extracts text from t..." :let ... :given ... :then ... :examples ... :origin "/home/alanz/.emacs.d...") (:key "OrgTablesToDotPictur..." :given ... :then ... :docs "Make a graph image o..." :origin "/home/alanz/.emacs.d...") (:key "DotToPicture" :given ... :then ... :docs "Convert Graphviz dot..." :origin "/home/alanz/.emacs.d...") (:key "OrgTablesToDot" :let ... :given ... :then ... :docs "Convert Org tables t..." :origin "/home/alanz/.emacs.d...") (:key "FunctionsComplexity" :let ... :given ... :then ... :docs "Show a table showing..." :origin "/home/alanz/.emacs.d...") (:key "PlistToLineChart" :given ... :then ... :docs "Make a line chart ou..." :origin "/home/alanz/.emacs.d...") (:key "PlistToBarChart" :given ... :then ... :docs "Make a bar chart out..." :origin "/home/alanz/.emacs.d...") ...))
  -map(me-find-missing-dependencies-for-mold ((:key "Eval Parenscript wit..." :let ... :given ... :then ... :docs "You can evaluate som..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Playground Parenscri..." :given ... :then ... :docs "You can write some P..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Eval JS with Nyxt" :given ... :then ... :docs "You can evaluate som..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Playground JS with N..." :given ... :then ... :docs "You can write some J..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "List To Picture" :given ... :then ... :origin "/home/alanz/.emacs.d...") (:key "List To Dot" :let ... :given ... :then ... :docs "You can transform a ..." :examples ... :origin "/home/alanz/.emacs.d...") (:key "Audit with Lighthous..." :let ... :given ... :then ... :docs "You can audit a url ..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Eval With Clojure" :given ... :then ... :docs "You can evaluate the..." :examples ... :origin "/home/alanz/.emacs.d...") (:key "Playground Clojure" :given ... :then ... :docs "You can play around ..." :examples ... :origin "/home/alanz/.emacs.d...") (:key "EdnToElisp" :let ... :given ... :then ... :docs "You can parse EDN fo..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Clojure examples for..." :let ... :given ... :then ... :docs "You can list example..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Files To Edit As Org..." :let ... :given ... :then ... :docs "You can make a TODO ..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "List Files To Edit A..." :let ... :given ... :then ... :docs "You can list the fil..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Image To Text" :docs "Extracts text from t..." :let ... :given ... :then ... :examples ... :origin "/home/alanz/.emacs.d...") (:key "OrgTablesToDotPictur..." :given ... :then ... :docs "Make a graph image o..." :origin "/home/alanz/.emacs.d...") (:key "DotToPicture" :given ... :then ... :docs "Convert Graphviz dot..." :origin "/home/alanz/.emacs.d...") (:key "OrgTablesToDot" :let ... :given ... :then ... :docs "Convert Org tables t..." :origin "/home/alanz/.emacs.d...") (:key "FunctionsComplexity" :let ... :given ... :then ... :docs "Show a table showing..." :origin "/home/alanz/.emacs.d...") (:key "PlistToLineChart" :given ... :then ... :docs "Make a line chart ou..." :origin "/home/alanz/.emacs.d...") (:key "PlistToBarChart" :given ... :then ... :docs "Make a bar chart out..." :origin "/home/alanz/.emacs.d...") ...))
  me-find-missing-dependencies-for-molds(((:key "Eval Parenscript wit..." :let ... :given ... :then ... :docs "You can evaluate som..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Playground Parenscri..." :given ... :then ... :docs "You can write some P..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Eval JS with Nyxt" :given ... :then ... :docs "You can evaluate som..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Playground JS with N..." :given ... :then ... :docs "You can write some J..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "List To Picture" :given ... :then ... :origin "/home/alanz/.emacs.d...") (:key "List To Dot" :let ... :given ... :then ... :docs "You can transform a ..." :examples ... :origin "/home/alanz/.emacs.d...") (:key "Audit with Lighthous..." :let ... :given ... :then ... :docs "You can audit a url ..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Eval With Clojure" :given ... :then ... :docs "You can evaluate the..." :examples ... :origin "/home/alanz/.emacs.d...") (:key "Playground Clojure" :given ... :then ... :docs "You can play around ..." :examples ... :origin "/home/alanz/.emacs.d...") (:key "EdnToElisp" :let ... :given ... :then ... :docs "You can parse EDN fo..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Clojure examples for..." :let ... :given ... :then ... :docs "You can list example..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Files To Edit As Org..." :let ... :given ... :then ... :docs "You can make a TODO ..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "List Files To Edit A..." :let ... :given ... :then ... :docs "You can list the fil..." :examples nil :origin "/home/alanz/.emacs.d...") (:key "Image To Text" :docs "Extracts text from t..." :let ... :given ... :then ... :examples ... :origin "/home/alanz/.emacs.d...") (:key "OrgTablesToDotPictur..." :given ... :then ... :docs "Make a graph image o..." :origin "/home/alanz/.emacs.d...") (:key "DotToPicture" :given ... :then ... :docs "Convert Graphviz dot..." :origin "/home/alanz/.emacs.d...") (:key "OrgTablesToDot" :let ... :given ... :then ... :docs "Convert Org tables t..." :origin "/home/alanz/.emacs.d...") (:key "FunctionsComplexity" :let ... :given ... :then ... :docs "Show a table showing..." :origin "/home/alanz/.emacs.d...") (:key "PlistToLineChart" :given ... :then ... :docs "Make a line chart ou..." :origin "/home/alanz/.emacs.d...") (:key "PlistToBarChart" :given ... :then ... :docs "Make a bar chart out..." :origin "/home/alanz/.emacs.d...") ...))
  (let ((list (me-find-missing-dependencies-for-molds (me-usable-molds-requiring-deps))) (i 0) it it-index) (ignore it it-index) (while list (setq it (pop list) it-index i i (1+ i)) (when (plist-get it :missing-dependencies) (push it result))))
  (--each (me-find-missing-dependencies-for-molds (me-usable-molds-requiring-deps)) (when (plist-get it :missing-dependencies) (push it result)))
  (let (result) (--each (me-find-missing-dependencies-for-molds (me-usable-molds-requiring-deps)) (when (plist-get it :missing-dependencies) (push it result))) (nreverse result))
  (--filter (plist-get it :missing-dependencies) (me-find-missing-dependencies-for-molds (me-usable-molds-requiring-deps)))
  (let* ((molds (me-usable-molds)) (missing-deps-molds (--filter (plist-get it :missing-dependencies) (me-find-missing-dependencies-for-molds (me-usable-molds-requiring-deps))))) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table `(("Mold" :extractor (lambda (obj) (ignore-errors ...))) ("Demo" :extractor (lambda (obj) (plist-get obj :key)) :handler (lambda (s) (if ... ... "Not available."))) ("Documentation" :extractor (lambda (obj) (or ... "Not available.")) :handler (lambda (s) (car ...)))) molds) (when missing-deps-molds (insert "\n\n\n** Molds you could use by installing some extra...") (me-insert-org-table `(("Mold" :extractor (lambda ... ...)) ("Demo" :extractor (lambda ... ...) :handler (lambda ... ...)) ("Documentation" :extractor (lambda ... ...) :handler (lambda ... ...)) ("Required Dependencies" :extractor (lambda ... ...) :handler (lambda ... ...))) missing-deps-molds)) (setq-local self molds)))
  (progn (get-buffer-create buffername) (let* ((molds (me-usable-molds)) (missing-deps-molds (--filter (plist-get it :missing-dependencies) (me-find-missing-dependencies-for-molds (me-usable-molds-requiring-deps))))) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table `(("Mold" :extractor (lambda ... ...)) ("Demo" :extractor (lambda ... ...) :handler (lambda ... ...)) ("Documentation" :extractor (lambda ... ...) :handler (lambda ... ...))) molds) (when missing-deps-molds (insert "\n\n\n** Molds you could use by installing some extra...") (me-insert-org-table `(("Mold" :extractor ...) ("Demo" :extractor ... :handler ...) ("Documentation" :extractor ... :handler ...) ("Required Dependencies" :extractor ... :handler ...)) missing-deps-molds)) (setq-local self molds))) (ignore-errors (switch-to-buffer-other-window (get-buffer buffername))))
  (cond ((equal '(:then) '(:given)) t) ((equal '(:then) '(:then)) (progn (get-buffer-create buffername) (let* ((molds (me-usable-molds)) (missing-deps-molds (--filter (plist-get it :missing-dependencies) (me-find-missing-dependencies-for-molds ...)))) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table `(... ... ...) molds) (when missing-deps-molds (insert "\n\n\n** Molds you could use by installing some extra...") (me-insert-org-table `... missing-deps-molds)) (setq-local self molds))) (ignore-errors (switch-to-buffer-other-window (get-buffer buffername))))) (t :then))
  (pcase '(:then) ('(:given) t) ('(:then) (progn (get-buffer-create buffername) (let* ((molds (me-usable-molds)) (missing-deps-molds (--filter (plist-get it :missing-dependencies) (me-find-missing-dependencies-for-molds ...)))) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table `(... ... ...) molds) (when missing-deps-molds (insert "\n\n\n** Molds you could use by installing some extra...") (me-insert-org-table `... missing-deps-molds)) (setq-local self molds))) (ignore-errors (switch-to-buffer-other-window (get-buffer buffername))))) (_ :then))
  (let* nil (pcase '(:then) ('(:given) t) ('(:then) (progn (get-buffer-create buffername) (let* ((molds (me-usable-molds)) (missing-deps-molds (--filter ... ...))) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table `... molds) (when missing-deps-molds (insert "\n\n\n** Molds you could use by installing some extra...") (me-insert-org-table ... missing-deps-molds)) (setq-local self molds))) (ignore-errors (switch-to-buffer-other-window (get-buffer buffername))))) (_ :then)))
  (let ((buffername (concat "*moldable-emacs-" (or nil "WhatMoldsCanIUse?") "*"))) (let* nil (pcase '(:then) ('(:given) t) ('(:then) (progn (get-buffer-create buffername) (let* ((molds ...) (missing-deps-molds ...)) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table ... molds) (when missing-deps-molds ... ...) (setq-local self molds))) (ignore-errors (switch-to-buffer-other-window (get-buffer buffername))))) (_ :then))))
  (progn (let ((buffername (concat "*moldable-emacs-" (or nil "WhatMoldsCanIUse?") "*"))) (let* nil (pcase '(:then) ('(:given) t) ('(:then) (progn (get-buffer-create buffername) (let* (... ...) (with-current-buffer buffername ... ... ... ... ... ...)) (ignore-errors (switch-to-buffer-other-window ...)))) (_ :then)))))
  eval((progn (let ((buffername (concat "*moldable-emacs-" (or nil "WhatMoldsCanIUse?") "*"))) (let* nil (pcase '(:then) ('(:given) t) ('(:then) (progn (get-buffer-create buffername) (let* ... ...) (ignore-errors ...))) (_ :then))))) t)
  (closure ((mold :key "WhatMoldsCanIUse?" :given (:fn t) :then (:fn (let* ((molds ...) (missing-deps-molds ...)) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table ... molds) (when missing-deps-molds ... ...) (setq-local self molds)))) :docs "You can see examples and demos of the molds you ca..." :examples nil :origin "/home/alanz/.emacs.d/elpa/moldable-emacs-20211125....") t) (m clause) (eval (list 'progn (list 'let (list (list 'buffername (cons ... ...))) (list (if (condition-case nil ... ...) 'let* 'thunk-let*) (plist-get m :let) (list 'pcase (list ... clause) (list ... ...) (list ... ...) (cons ... clause))))) 't))((:key "WhatMoldsCanIUse?" :given (:fn t) :then (:fn (let* ((molds (me-usable-molds)) (missing-deps-molds (--filter (plist-get it :missing-dependencies) (me-find-missing-dependencies-for-molds ...)))) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table `(... ... ...) molds) (when missing-deps-molds (insert "\n\n\n** Molds you could use by installing some extra...") (me-insert-org-table `... missing-deps-molds)) (setq-local self molds)))) :docs "You can see examples and demos of the molds you ca..." :examples nil :origin "/home/alanz/.emacs.d/elpa/moldable-emacs-20211125....") (:then))
  funcall((closure ((mold :key "WhatMoldsCanIUse?" :given (:fn t) :then (:fn (let* ((molds ...) (missing-deps-molds ...)) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table ... molds) (when missing-deps-molds ... ...) (setq-local self molds)))) :docs "You can see examples and demos of the molds you ca..." :examples nil :origin "/home/alanz/.emacs.d/elpa/moldable-emacs-20211125....") t) (m clause) (eval (list 'progn (list 'let (list (list 'buffername (cons ... ...))) (list (if (condition-case nil ... ...) 'let* 'thunk-let*) (plist-get m :let) (list 'pcase (list ... clause) (list ... ...) (list ... ...) (cons ... clause))))) 't)) (:key "WhatMoldsCanIUse?" :given (:fn t) :then (:fn (let* ((molds (me-usable-molds)) (missing-deps-molds (--filter (plist-get it :missing-dependencies) (me-find-missing-dependencies-for-molds ...)))) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table `(... ... ...) molds) (when missing-deps-molds (insert "\n\n\n** Molds you could use by installing some extra...") (me-insert-org-table `... missing-deps-molds)) (setq-local self molds)))) :docs "You can see examples and demos of the molds you ca..." :examples nil :origin "/home/alanz/.emacs.d/elpa/moldable-emacs-20211125....") (:then))
  me-mold-run-then((:key "WhatMoldsCanIUse?" :given (:fn t) :then (:fn (let* ((molds (me-usable-molds)) (missing-deps-molds (--filter (plist-get it :missing-dependencies) (me-find-missing-dependencies-for-molds ...)))) (with-current-buffer buffername (erase-buffer) (org-mode) (insert "* Molds you can use now.\n\n") (me-insert-org-table `(... ... ...) molds) (when missing-deps-molds (insert "\n\n\n** Molds you could use by installing some extra...") (me-insert-org-table `... missing-deps-molds)) (setq-local self molds)))) :docs "You can see examples and demos of the molds you ca..." :examples nil :origin "/home/alanz/.emacs.d/elpa/moldable-emacs-20211125...."))
  (let ((it (funcall #'(lambda (mold) (let (... ... it it-index) (ignore it it-index) (while list ... ...)) mold) it))) (me-mold-run-then it))
  (let ((it (-find #'(lambda (x) (string= (plist-get x :key) it)) molds))) (let ((it (funcall #'(lambda (mold) (let ... ... ...) mold) it))) (me-mold-run-then it)))
  (let ((it (completing-read "Pick the mold you need:" it))) (let ((it (-find #'(lambda (x) (string= ... it)) molds))) (let ((it (funcall #'(lambda ... ... mold) it))) (me-mold-run-then it))))
  (let ((it keys)) (let ((it (completing-read "Pick the mold you need:" it))) (let ((it (-find #'(lambda ... ...) molds))) (let ((it (funcall #'... it))) (me-mold-run-then it)))))
  (let* ((beginning (current-time)) (molds (me-usable-molds)) (keys (mapcar #'(lambda (it) (ignore it) (plist-get it :key)) molds)) (ending (current-time)) (_ (if me-molds-debug-on (progn (message "Finding molds took %s seconds in total." (time-to-seconds (time-subtract ending beginning))))))) (let ((it keys)) (let ((it (completing-read "Pick the mold you need:" it))) (let ((it (-find #'... molds))) (let ((it (funcall ... it))) (me-mold-run-then it))))) (run-hooks 'me-mold-after-hook))
  me-mold()
  funcall-interactively(me-mold)
  call-interactively(me-mold nil nil)
  command-execute(me-mold)
alanz commented 2 years ago

Using moldable emacs at c6fefa7a977085a2dc33aabac5a5c69d33819a7b, in GNU Emacs 27.1 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.24, cairo version 1.16.0) of 2021-03-27, modified by Debian

ag91 commented 2 years ago

Thanks for spotting (and solving!) this! This remembers me that it is time to make examples unit tests so that these things don't happen anymore :)