* bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error @ 2021-09-19 0:32 Michael-David Fiszer 2021-09-19 9:10 ` Augusto Stoffel 2022-08-26 11:46 ` Lars Ingebrigtsen 0 siblings, 2 replies; 10+ messages in thread From: Michael-David Fiszer @ 2021-09-19 0:32 UTC (permalink / raw) To: 50669 [-- Attachment #1: Type: text/plain, Size: 2709 bytes --] Hi, I'm not an expert in how python.el internals work, but I started getting this error every time I would send a statement to the shell. In addition I would get these weird printouts of blocks of the form ``` def __PYDOC_get_help(obj): try: import inspect try: str_type = basestring argspec_function = inspect.getargspec except NameError: str_type = str ``` while just moving the point in my .py file. My current workaround was to simply override python-shell-send-string from 28.0.50 with the one I had with my emacs 27 version, which was: ``` (defun python-shell-send-string (string &optional process msg) "Send STRING to inferior Python PROCESS. When optional argument MSG is non-nil, forces display of a user-friendly message if there's no process running; defaults to t when called interactively." (interactive (list (read-string "Python command: ") nil t)) (let ((process (or process (python-shell-get-process-or-error msg)))) (if (string-match ".\n+." string) ;Multiline. (let* ((temp-file-name (python-shell--save-temp-file string)) (file-name (or (buffer-file-name) temp-file-name))) (python-shell-send-file file-name process temp-file-name t)) (when (or (not (string-match "\n\\'" string)) (string-match "\n[ \t].*\n?\\'" string)) (comint-send-string process "\n"))))) ``` And this seems to solve the problem... In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin20.6.0, NS appkit-2022.60 Version 11.6 (Build 20G165)) of 2021-09-17 built on mdfz-macbookpro4.roam.corp.google.com Windowing system distributor 'Apple', version 10.3.2022 System Description: macOS 11.6 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/usr/local/share/emacs/site-lisp --infodir=/usr/local/Cellar/emacs-plus@28/28.0.50/share/info/emacs --prefix=/usr/local/Cellar/emacs-plus@28/28.0.50 --with-xml2 --with-gnutls --without-dbus --with-imagemagick --with-modules --with-rsvg --with-ns --disable-ns-self-contained' Configured features: ACL GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS XIM ZLIB Important settings: value of $LC_ALL: en_US.UTF-8 value of $LC_CTYPE: en_US.UTF-8 value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: mu4e-headers Memory information: ((conses 16 1905022 1639005) (symbols 48 123242 97) (strings 32 433582 151543) (string-bytes 1 14825386) (vectors 16 192606) (vector-slots 8 3165377 831342) (floats 8 1100 6586) (intervals 56 34684 19693) (buffers 992 60)) [-- Attachment #2: Type: text/html, Size: 3284 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error 2021-09-19 0:32 bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error Michael-David Fiszer @ 2021-09-19 9:10 ` Augusto Stoffel 2021-09-19 9:28 ` Michael-David Fiszer 2022-08-26 11:46 ` Lars Ingebrigtsen 1 sibling, 1 reply; 10+ messages in thread From: Augusto Stoffel @ 2021-09-19 9:10 UTC (permalink / raw) To: Michael-David Fiszer; +Cc: 50669 On Sun, 19 Sep 2021 at 03:32, Michael-David Fiszer <sguibor@gmail.com> wrote: > Hi, Hi, Can you try 'M-x toggle-debug-on-error', or maybe tracing some functions, to discover what is being called repeatedly? Also, what happens if you (setq python-eldoc-get-doc nil) in the .py file's buffer? Some more macos-related things that would be helpful to know: * On a freshly started python-shell, is are the functions __PYTHON_EL_eval and __PYTHON_EL_eval_file defined? * If you do M-x python-shell-send-string RET x="aaa...aaa" or something like that, can you evaluate Python statements that are, say, 900 and 1100 characters long? > > I'm not an expert in how python.el internals work, but I started getting this error every time I would > send a statement to the shell. In addition I would get these weird printouts of blocks of the form > > ``` > def __PYDOC_get_help(obj): > try: > import inspect > try: > str_type = basestring > argspec_function = inspect.getargspec > except NameError: > str_type = str > ``` > > while just moving the point in my .py file. > > My current workaround was to simply override python-shell-send-string from 28.0.50 with the one > I had with my emacs 27 version, which was: > > ``` > (defun python-shell-send-string (string &optional process msg) > "Send STRING to inferior Python PROCESS. > When optional argument MSG is non-nil, forces display of a > user-friendly message if there's no process running; defaults to > t when called interactively." > (interactive > (list (read-string "Python command: ") nil t)) > (let ((process (or process (python-shell-get-process-or-error msg)))) > (if (string-match ".\n+." string) ;Multiline. > (let* ((temp-file-name (python-shell--save-temp-file string)) > (file-name (or (buffer-file-name) temp-file-name))) > (python-shell-send-file file-name process temp-file-name t)) > (when (or (not (string-match "\n\\'" string)) > (string-match "\n[ \t].*\n?\\'" string)) > (comint-send-string process "\n"))))) > ``` > > And this seems to solve the problem... > > In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin20.6.0, NS appkit-2022.60 Version 11.6 > (Build 20G165)) > of 2021-09-17 built on mdfz-macbookpro4.roam.corp.google.com > Windowing system distributor 'Apple', version 10.3.2022 > System Description: macOS 11.6 > > Configured using: > 'configure --disable-dependency-tracking --disable-silent-rules > --enable-locallisppath=/usr/local/share/emacs/site-lisp > --infodir=/usr/local/Cellar/emacs-plus@28/28.0.50/share/info/emacs > --prefix=/usr/local/Cellar/emacs-plus@28/28.0.50 --with-xml2 --with-gnutls > --without-dbus --with-imagemagick --with-modules --with-rsvg --with-ns > --disable-ns-self-contained' > > Configured features: > ACL GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY KQUEUE > NS > PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS XIM ZLIB > > Important settings: > value of $LC_ALL: en_US.UTF-8 > value of $LC_CTYPE: en_US.UTF-8 > value of $LANG: en_US.UTF-8 > locale-coding-system: utf-8-unix > > Major mode: mu4e-headers > > Memory information: > ((conses 16 1905022 1639005) > (symbols 48 123242 97) > (strings 32 433582 151543) > (string-bytes 1 14825386) > (vectors 16 192606) > (vector-slots 8 3165377 831342) > (floats 8 1100 6586) > (intervals 56 34684 19693) > (buffers 992 60)) ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error 2021-09-19 9:10 ` Augusto Stoffel @ 2021-09-19 9:28 ` Michael-David Fiszer 2021-09-19 9:42 ` Augusto Stoffel 2021-09-19 10:36 ` Michael-David Fiszer 0 siblings, 2 replies; 10+ messages in thread From: Michael-David Fiszer @ 2021-09-19 9:28 UTC (permalink / raw) To: Augusto Stoffel; +Cc: 50669 [-- Attachment #1: Type: text/plain, Size: 4589 bytes --] Hi! Thanks for the response! I'll fill in the details shortly. I wanted to add to the bug, that the functions being called repeatedly were `python-shell-send-string` and `python-shell-send-file`. They call one another and create more and more temporary files before I get the recursion error. As a side note, python.el really rocks. Thanks so much for the amazing work. On Sun, Sep 19, 2021 at 12:10 PM Augusto Stoffel <arstoffel@gmail.com> wrote: > On Sun, 19 Sep 2021 at 03:32, Michael-David Fiszer <sguibor@gmail.com> > wrote: > > > Hi, > > Hi, > > Can you try 'M-x toggle-debug-on-error', or maybe tracing some > functions, to discover what is being called repeatedly? > > Also, what happens if you (setq python-eldoc-get-doc nil) in the .py > file's buffer? > I'll try this asap. I thought it was eldoc, but then tried turning off 'eldoc-mode' off and I still had the same problem with the infinite recursion (and I think I still saw the weird PYDOC strings, but not sure). But I will try this today. > > Some more macos-related things that would be helpful to know: > > * On a freshly started python-shell, is are the functions > __PYTHON_EL_eval and __PYTHON_EL_eval_file defined? > I just checked, and they both are. <function __main__.__PYTHON_EL_eval(source, filename)> <function __main__.__PYTHON_EL_eval_file(filename, tempname, delete)> > > * If you do M-x python-shell-send-string RET x="aaa...aaa" or something > like that, can you evaluate Python statements that are, say, 900 and > 1100 characters long? Will try this immediately > > > > > > I'm not an expert in how python.el internals work, but I started getting > this error every time I would > > send a statement to the shell. In addition I would get these weird > printouts of blocks of the form > > > > ``` > > def __PYDOC_get_help(obj): > > try: > > import inspect > > try: > > str_type = basestring > > argspec_function = inspect.getargspec > > except NameError: > > str_type = str > > ``` > > > > while just moving the point in my .py file. > > > > My current workaround was to simply override python-shell-send-string > from 28.0.50 with the one > > I had with my emacs 27 version, which was: > > > > ``` > > (defun python-shell-send-string (string &optional process msg) > > "Send STRING to inferior Python PROCESS. > > When optional argument MSG is non-nil, forces display of a > > user-friendly message if there's no process running; defaults to > > t when called interactively." > > (interactive > > (list (read-string "Python command: ") nil t)) > > (let ((process (or process (python-shell-get-process-or-error msg)))) > > (if (string-match ".\n+." string) ;Multiline. > > (let* ((temp-file-name (python-shell--save-temp-file string)) > > (file-name (or (buffer-file-name) temp-file-name))) > > (python-shell-send-file file-name process temp-file-name t)) > > (when (or (not (string-match "\n\\'" string)) > > (string-match "\n[ \t].*\n?\\'" string)) > > (comint-send-string process "\n"))))) > > ``` > > > > And this seems to solve the problem... > > > > In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin20.6.0, NS > appkit-2022.60 Version 11.6 > > (Build 20G165)) > > of 2021-09-17 built on mdfz-macbookpro4.roam.corp.google.com > > Windowing system distributor 'Apple', version 10.3.2022 > > System Description: macOS 11.6 > > > > Configured using: > > 'configure --disable-dependency-tracking --disable-silent-rules > > --enable-locallisppath=/usr/local/share/emacs/site-lisp > > --infodir=/usr/local/Cellar/emacs-plus@28/28.0.50/share/info/emacs > > --prefix=/usr/local/Cellar/emacs-plus@28/28.0.50 --with-xml2 > --with-gnutls > > --without-dbus --with-imagemagick --with-modules --with-rsvg --with-ns > > --disable-ns-self-contained' > > > > Configured features: > > ACL GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY > KQUEUE > > NS > > PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS XIM ZLIB > > > > Important settings: > > value of $LC_ALL: en_US.UTF-8 > > value of $LC_CTYPE: en_US.UTF-8 > > value of $LANG: en_US.UTF-8 > > locale-coding-system: utf-8-unix > > > > Major mode: mu4e-headers > > > > Memory information: > > ((conses 16 1905022 1639005) > > (symbols 48 123242 97) > > (strings 32 433582 151543) > > (string-bytes 1 14825386) > > (vectors 16 192606) > > (vector-slots 8 3165377 831342) > > (floats 8 1100 6586) > > (intervals 56 34684 19693) > > (buffers 992 60)) > [-- Attachment #2: Type: text/html, Size: 6599 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error 2021-09-19 9:28 ` Michael-David Fiszer @ 2021-09-19 9:42 ` Augusto Stoffel 2021-09-19 9:52 ` Michael-David Fiszer 2021-09-19 10:36 ` Michael-David Fiszer 1 sibling, 1 reply; 10+ messages in thread From: Augusto Stoffel @ 2021-09-19 9:42 UTC (permalink / raw) To: Michael-David Fiszer; +Cc: 50669 On Sun, 19 Sep 2021 at 12:28, Michael-David Fiszer <sguibor@gmail.com> wrote: > Hi! > > Thanks for the response! > > I'll fill in the details shortly. I wanted to add to the bug, that the functions being called repeatedly > were `python-shell-send-string` and `python-shell-send-file`. > > They call one another and create more and more temporary files before I get the recursion error. > Are you on the current master? These two functions used to be entangled, but now only -send-string calls -send-file. ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error 2021-09-19 9:42 ` Augusto Stoffel @ 2021-09-19 9:52 ` Michael-David Fiszer 0 siblings, 0 replies; 10+ messages in thread From: Michael-David Fiszer @ 2021-09-19 9:52 UTC (permalink / raw) To: Augusto Stoffel; +Cc: 50669 [-- Attachment #1: Type: text/plain, Size: 6668 bytes --] You are right. They are not calling one another (python-shell-send-file calls comint). I think that it may that something is making them be called one after another (my bad). Backtrace looks like this (I changed the file name to `a_file_name` since it's a company path) string-match-p("magit-.*: .*" "rider_now_utils.py") (not (string-match-p useless-regexp buf-name)) (setq --cl-flag-- (not (string-match-p useless-regexp buf-name))) (progn (setq useless-regexp (car --cl-var--)) (setq --cl-flag-- (not (string-match-p useless-regexp buf-name)))) (and (consp --cl-var--) (progn (setq useless-regexp (car --cl-var--)) (setq --cl-flag-- (not (string-match-p useless-regexp buf-name))))) (while (and (consp --cl-var--) (progn (setq useless-regexp (car --cl-var--)) (setq --cl-flag-- (not (string-match-p useless-regexp buf-name))))) (setq --cl-var-- (cdr --cl-var--))) (let* ((--cl-var-- spacemacs-useless-buffers-regexp) (useless-regexp nil) (--cl-flag-- t)) (while (and (consp --cl-var--) (progn (setq useless-regexp (car --cl-var--)) (setq --cl-flag-- (not (string-match-p useless-regexp buf-name))))) (setq --cl-var-- (cdr --cl-var--))) (if --cl-flag-- (progn t) nil)) (or (provided-mode-derived-p (buffer-local-value 'major-mode buffer) 'comint-mode) (let* ((--cl-var-- spacemacs-useful-buffers-regexp) (useful-regexp nil) (--cl-flag-- t) --cl-var--) (while (and (consp --cl-var--) (progn (setq useful-regexp (car --cl-var--)) (setq --cl-flag-- (not (setq --cl-var-- ...))))) (setq --cl-var-- (cdr --cl-var--))) --cl-var--) (let* ((--cl-var-- spacemacs-useless-buffers-regexp) (useless-regexp nil) (--cl-flag-- t)) (while (and (consp --cl-var--) (progn (setq useless-regexp (car --cl-var--)) (setq --cl-flag-- (not (string-match-p useless-regexp buf-name))))) (setq --cl-var-- (cdr --cl-var--))) (if --cl-flag-- (progn t) nil))) (let ((buf-name (buffer-name buffer))) (or (provided-mode-derived-p (buffer-local-value 'major-mode buffer) 'comint-mode) (let* ((--cl-var-- spacemacs-useful-buffers-regexp) (useful-regexp nil) (--cl-flag-- t) --cl-var--) (while (and (consp --cl-var--) (progn (setq useful-regexp (car --cl-var--)) (setq --cl-flag-- (not ...)))) (setq --cl-var-- (cdr --cl-var--))) --cl-var--) (let* ((--cl-var-- spacemacs-useless-buffers-regexp) (useless-regexp nil) (--cl-flag-- t)) (while (and (consp --cl-var--) (progn (setq useless-regexp (car --cl-var--)) (setq --cl-flag-- (not ...)))) (setq --cl-var-- (cdr --cl-var--))) (if --cl-flag-- (progn t) nil)))) spacemacs/useful-buffer-p(#<buffer rider_now_utils.py>) kill-buffer(#<buffer *temp*-957895>) #f(compiled-function () #<bytecode -0x1c1e1505371ddc2b>)() python-shell-send-file("a_file_name..." #<process Python> "/var/folders/gx/6fqj2t4x5tn4zml2qp9__9mr00j58f/T/p..." t) #f(compiled-function (string &optional process msg) "Send STRING to inferior Python PROCESS.\nWhen optional argument MSG is non-nil, forces display of a\nuser-friendly message if there's no process running; defaults to\nt when called interactively." (interactive #f(compiled-function () #<bytecode 0x14ff04c703dd2bc5>)) #<bytecode -0x168dce9d6e1d8f8e>)("import sys, codecs, os, ast;__pyfile = codecs.open..." #<process Python>) apply(#f(compiled-function (string &optional process msg) "Send STRING to inferior Python PROCESS.\nWhen optional argument MSG is non-nil, forces display of a\nuser-friendly message if there's no process running; defaults to\nt when called interactively." (interactive #f(compiled-function () #<bytecode 0x14ff04c703dd2bc5>)) #<bytecode -0x168dce9d6e1d8f8e>) ("import sys, codecs, os, ast;__pyfile = codecs.open..." #<process Python>)) python-shell-send-string("import sys, codecs, os, ast;__pyfile = codecs.open..." #<process Python>) python-shell-send-file("a_file_name..." #<process Python> "/var/folders/gx/6fqj2t4x5tn4zml2qp9__9mr00j58f/T/p..." t) #f(compiled-function (string &optional process msg) "Send STRING to inferior Python PROCESS.\nWhen optional argument MSG is non-nil, forces display of a\nuser-friendly message if there's no process running; defaults to\nt when called interactively." (interactive #f(compiled-function () #<bytecode 0x14ff04c703dd2bc5>)) #<bytecode -0x168dce9d6e1d8f8e>)("import sys, codecs, os, ast;__pyfile = codecs.open..." #<process Python>) apply(#f(compiled-function (string &optional process msg) "Send STRING to inferior Python PROCESS.\nWhen optional argument MSG is non-nil, forces display of a\nuser-friendly message if there's no process running; defaults to\nt when called interactively." (interactive #f(compiled-function () #<bytecode 0x14ff04c703dd2bc5>)) #<bytecode -0x168dce9d6e1d8f8e>) ("import sys, codecs, os, ast;__pyfile = codecs.open..." #<process Python>)) python-shell-send-string("import sys, codecs, os, ast;__pyfile = codecs.open..." #<process Python>) python-shell-send-file("a_file_name..." #<process Python> "/var/folders/gx/6fqj2t4x5tn4zml2qp9__9mr00j58f/T/p..." t) #f(compiled-function (string &optional process msg) "Send STRING to inferior Python PROCESS.\nWhen optional argument MSG is non-nil, forces display of a\nuser-friendly message if there's no process running; defaults to\nt when called interactively." (interactive #f(compiled-function () #<bytecode 0x14ff04c703dd2bc5>)) #<bytecode -0x168dce9d6e1d8f8e>)("import sys, codecs, os, ast;__pyfile = codecs.open..." #<process Python>) apply(#f(compiled-function (string &optional process msg) "Send STRING to inferior Python PROCESS.\nWhen optional argument MSG is non-nil, forces display of a\nuser-friendly message if there's no process running; defaults to\nt when called interactively." (interactive #f(compiled-function () #<bytecode 0x14ff04c703dd2bc5>)) #<bytecode -0x168dce9d6e1d8f8e>) ("import sys, codecs, os, ast;__pyfile = codecs.open..." #<process Python>)) python-shell-send-string("import sys, codecs, os, ast;__pyfile = codecs.open..." #<process Python>) python-shell-send-file("a_file_name..." #<process Python> "/var/folders/gx/6fqj2t4x5tn4zml2qp9__9mr00j58f/T/p..." t) On Sun, Sep 19, 2021 at 12:42 PM Augusto Stoffel <arstoffel@gmail.com> wrote: > On Sun, 19 Sep 2021 at 12:28, Michael-David Fiszer <sguibor@gmail.com> > wrote: > > > Hi! > > > > Thanks for the response! > > > > I'll fill in the details shortly. I wanted to add to the bug, that the > functions being called repeatedly > > were `python-shell-send-string` and `python-shell-send-file`. > > > > They call one another and create more and more temporary files before I > get the recursion error. > > > > Are you on the current master? These two functions used to be > entangled, but now only -send-string calls -send-file. > [-- Attachment #2: Type: text/html, Size: 7742 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error 2021-09-19 9:28 ` Michael-David Fiszer 2021-09-19 9:42 ` Augusto Stoffel @ 2021-09-19 10:36 ` Michael-David Fiszer 2021-09-19 16:12 ` Augusto Stoffel 1 sibling, 1 reply; 10+ messages in thread From: Michael-David Fiszer @ 2021-09-19 10:36 UTC (permalink / raw) To: Augusto Stoffel; +Cc: 50669 [-- Attachment #1: Type: text/plain, Size: 5663 bytes --] Adding more details. BTW, no issues at all (none of the two, as it looks like there may be two different issues) if I just do: (advice-add 'python-shell-send-string :override #'python-shell-send-string27) where 'python-shell-send-string27 is the python-shell-send-string function from emacs 27.2. (regarding the backtrace, I realize it's hard to read - is there a better way to send it formatted in this thread?) On Sun, Sep 19, 2021 at 12:28 PM Michael-David Fiszer <sguibor@gmail.com> wrote: > Hi! > > Thanks for the response! > > I'll fill in the details shortly. I wanted to add to the bug, that the > functions being called repeatedly were `python-shell-send-string` and > `python-shell-send-file`. > > They call one another and create more and more temporary files before I > get the recursion error. > > As a side note, python.el really rocks. Thanks so much for the amazing > work. > > On Sun, Sep 19, 2021 at 12:10 PM Augusto Stoffel <arstoffel@gmail.com> > wrote: > >> On Sun, 19 Sep 2021 at 03:32, Michael-David Fiszer <sguibor@gmail.com> >> wrote: >> >> > Hi, >> >> Hi, >> >> Can you try 'M-x toggle-debug-on-error', or maybe tracing some >> functions, to discover what is being called repeatedly? >> >> Also, what happens if you (setq python-eldoc-get-doc nil) in the .py >> file's buffer? >> > > I'll try this asap. I thought it was eldoc, but then tried turning off > 'eldoc-mode' off and I still had the same problem with the infinite > recursion (and I think I still saw the weird PYDOC strings, but not sure). > > But I will try this today. > This did not change anything to the nested lisp error, but does remove the prints of "def __PYDOC_get_help(obj)". So it looks like there may have been two different issues here. > > >> >> Some more macos-related things that would be helpful to know: >> >> * On a freshly started python-shell, is are the functions >> __PYTHON_EL_eval and __PYTHON_EL_eval_file defined? >> > > I just checked, and they both are. > > <function __main__.__PYTHON_EL_eval(source, filename)> > <function __main__.__PYTHON_EL_eval_file(filename, tempname, delete)> > >> >> * If you do M-x python-shell-send-string RET x="aaa...aaa" or something >> like that, can you evaluate Python statements that are, say, 900 and >> 1100 characters long? > > > Will try this immediately > So, interesting, if I write x = "aaa....a" in my py file (calling python-shell-send-string interactively doesn't work like that, shoud it?), it works for len(x) = 422 and not for len(x)=423 (same error "nesting exceeds"). > > > >> >> > >> > I'm not an expert in how python.el internals work, but I started >> getting this error every time I would >> > send a statement to the shell. In addition I would get these weird >> printouts of blocks of the form >> > >> > ``` >> > def __PYDOC_get_help(obj): >> > try: >> > import inspect >> > try: >> > str_type = basestring >> > argspec_function = inspect.getargspec >> > except NameError: >> > str_type = str >> > ``` >> > >> > while just moving the point in my .py file. >> > >> > My current workaround was to simply override python-shell-send-string >> from 28.0.50 with the one >> > I had with my emacs 27 version, which was: >> > >> > ``` >> > (defun python-shell-send-string (string &optional process msg) >> > "Send STRING to inferior Python PROCESS. >> > When optional argument MSG is non-nil, forces display of a >> > user-friendly message if there's no process running; defaults to >> > t when called interactively." >> > (interactive >> > (list (read-string "Python command: ") nil t)) >> > (let ((process (or process (python-shell-get-process-or-error msg)))) >> > (if (string-match ".\n+." string) ;Multiline. >> > (let* ((temp-file-name (python-shell--save-temp-file string)) >> > (file-name (or (buffer-file-name) temp-file-name))) >> > (python-shell-send-file file-name process temp-file-name t)) >> > (when (or (not (string-match "\n\\'" string)) >> > (string-match "\n[ \t].*\n?\\'" string)) >> > (comint-send-string process "\n"))))) >> > ``` >> > >> > And this seems to solve the problem... >> > >> > In GNU Emacs 28.0.50 (build 1, x86_64-apple-darwin20.6.0, NS >> appkit-2022.60 Version 11.6 >> > (Build 20G165)) >> > of 2021-09-17 built on mdfz-macbookpro4.roam.corp.google.com >> > Windowing system distributor 'Apple', version 10.3.2022 >> > System Description: macOS 11.6 >> > >> > Configured using: >> > 'configure --disable-dependency-tracking --disable-silent-rules >> > --enable-locallisppath=/usr/local/share/emacs/site-lisp >> > --infodir=/usr/local/Cellar/emacs-plus@28/28.0.50/share/info/emacs >> > --prefix=/usr/local/Cellar/emacs-plus@28/28.0.50 --with-xml2 >> --with-gnutls >> > --without-dbus --with-imagemagick --with-modules --with-rsvg --with-ns >> > --disable-ns-self-contained' >> > >> > Configured features: >> > ACL GLIB GMP GNUTLS IMAGEMAGICK JPEG JSON LCMS2 LIBXML2 MODULES NOTIFY >> KQUEUE >> > NS >> > PDUMPER PNG RSVG THREADS TIFF TOOLKIT_SCROLL_BARS XIM ZLIB >> > >> > Important settings: >> > value of $LC_ALL: en_US.UTF-8 >> > value of $LC_CTYPE: en_US.UTF-8 >> > value of $LANG: en_US.UTF-8 >> > locale-coding-system: utf-8-unix >> > >> > Major mode: mu4e-headers >> > >> > Memory information: >> > ((conses 16 1905022 1639005) >> > (symbols 48 123242 97) >> > (strings 32 433582 151543) >> > (string-bytes 1 14825386) >> > (vectors 16 192606) >> > (vector-slots 8 3165377 831342) >> > (floats 8 1100 6586) >> > (intervals 56 34684 19693) >> > (buffers 992 60)) >> > [-- Attachment #2: Type: text/html, Size: 8429 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error 2021-09-19 10:36 ` Michael-David Fiszer @ 2021-09-19 16:12 ` Augusto Stoffel 2021-09-21 21:17 ` Michael-David Fiszer 0 siblings, 1 reply; 10+ messages in thread From: Augusto Stoffel @ 2021-09-19 16:12 UTC (permalink / raw) To: Michael-David Fiszer; +Cc: 50669 Hi David, So, I think the main thing is to figure out which functions are calling themselves recursively. 'python-shell-send-file' doesn't call 'python-shell-send-string' anymore, so that can't be it (are you sure you are using today's master branch?). Another crazy attempt would be this: (let ((process-connection-type nil) (python-shell-completion-native-enable nil)) (run-python)) Nevermind the initial warnings, does it work for you afterwards? ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error 2021-09-19 16:12 ` Augusto Stoffel @ 2021-09-21 21:17 ` Michael-David Fiszer 0 siblings, 0 replies; 10+ messages in thread From: Michael-David Fiszer @ 2021-09-21 21:17 UTC (permalink / raw) To: Augusto Stoffel; +Cc: 50669 [-- Attachment #1: Type: text/plain, Size: 2080 bytes --] Hi! - I'm pretty sure I'm on the master branch. I don't clone from git, but I compared my version of python.el with this https://github.com/emacs-mirror/emacs/commit/6cfc312d7196d7c7c70e7030b344891ecea8c4f1#diff-f808b0589744f83f41d9f581e8b07001145598d2a2aa07fd40c1d20ee35df762 and it looks up to date. - Regarding the recursive calls, I tried to look into it, and what I found was very confusing. - The tests I sent on number of characters, I believe establish that the issue only arises when the string is long enough for python-shell-send-string to save to a file and call python-shell-send file. - The backtrace - I sent to you. I suppose it's hard to decipher. - I then tried setting a breakpoint in 'python-shell-send-string. If I step through commands there, I see myself looping through this function again and again (creating more and more files, which is eventually what leads to the error). Buf *if* I step into 'python-shell-send-file when going through the difference expressions of 'python-shell-send-string, I get into the function (which indeed calls 'comint-send-string, not 'python-shell-send-string... and at this point, instead of returning to the *beginning* of python-shell-send string, I end up exiting python-shell-send-string and everything works. - In other words, the problem does not arise in edebug mode *if* I step into python-shell-send-file when python-shell-send-string calls it. This is very weird, sounds like perhaps some async issue... Very odd. On Sun, Sep 19, 2021 at 7:13 PM Augusto Stoffel <arstoffel@gmail.com> wrote: > Hi David, > > So, I think the main thing is to figure out which functions are calling > themselves recursively. 'python-shell-send-file' doesn't call > 'python-shell-send-string' anymore, so that can't be it (are you sure > you are using today's master branch?). > > Another crazy attempt would be this: > > (let ((process-connection-type nil) > (python-shell-completion-native-enable nil)) > (run-python)) > > Nevermind the initial warnings, does it work for you afterwards? > [-- Attachment #2: Type: text/html, Size: 2702 bytes --] ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error 2021-09-19 0:32 bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error Michael-David Fiszer 2021-09-19 9:10 ` Augusto Stoffel @ 2022-08-26 11:46 ` Lars Ingebrigtsen 2022-09-24 14:59 ` Lars Ingebrigtsen 1 sibling, 1 reply; 10+ messages in thread From: Lars Ingebrigtsen @ 2022-08-26 11:46 UTC (permalink / raw) To: Michael-David Fiszer; +Cc: 50669 Michael-David Fiszer <sguibor@gmail.com> writes: > I'm not an expert in how python.el internals work, but I started > getting this error every time I would send a statement to the > shell. In addition I would get these weird printouts of blocks of the > form (I'm going through old bug reports that unfortunately weren't resolved at the time.) Are you still seeing these issues with the current Emacs "master" branch? There's been quite a lot of work done in this area over the last year. ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error 2022-08-26 11:46 ` Lars Ingebrigtsen @ 2022-09-24 14:59 ` Lars Ingebrigtsen 0 siblings, 0 replies; 10+ messages in thread From: Lars Ingebrigtsen @ 2022-09-24 14:59 UTC (permalink / raw) To: Michael-David Fiszer; +Cc: 50669 Lars Ingebrigtsen <larsi@gnus.org> writes: > Are you still seeing these issues with the current Emacs "master" > branch? There's been quite a lot of work done in this area over the > last year. More information was requested, but no response was given within a month, so I'm closing this bug report. If the problem still exists, please respond to this email and we'll reopen the bug report. ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-09-24 14:59 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-09-19 0:32 bug#50669: 28.0.50; python-shell-send-string leads to "nesting exceeds `max-lisp-eval-depth`" error Michael-David Fiszer 2021-09-19 9:10 ` Augusto Stoffel 2021-09-19 9:28 ` Michael-David Fiszer 2021-09-19 9:42 ` Augusto Stoffel 2021-09-19 9:52 ` Michael-David Fiszer 2021-09-19 10:36 ` Michael-David Fiszer 2021-09-19 16:12 ` Augusto Stoffel 2021-09-21 21:17 ` Michael-David Fiszer 2022-08-26 11:46 ` Lars Ingebrigtsen 2022-09-24 14:59 ` Lars Ingebrigtsen
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.