* 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.