* bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program @ 2023-04-12 7:05 Nick Urbanik 2023-04-12 15:39 ` Eli Zaretskii 0 siblings, 1 reply; 10+ messages in thread From: Nick Urbanik @ 2023-04-12 7:05 UTC (permalink / raw) To: 62794 1. Start emacs with emacs -Q 2. Read in a large python file (3100 lines long, more than 10,000 characters) 3. Near the top, type the following: def function(): """ 4. No further input is accepted. 5. CPU usage is 100% as shown in /usr/bin/top 6. type kill -USR2 {process_id_of_emacs-Q} and the emacs window closes. 7. From my emacs started without '-Q', when I type killall -USR2 emacs I see: Debugger entered--entering a function: * #f(compiled-function () #<bytecode 0x8832586cc829512>)() syntax-ppss() python-nav-end-of-statement() python-nav-end-of-block() python-info-statement-ends-block-p() python-nav--forward-sexp(-1 nil nil) python-nav-forward-sexp(-1 nil nil) python-nav-backward-sexp() python-info-docstring-p((0 nil 2196 34 nil nil 0 nil 2211 nil nil)) python-font-lock-syntactic-face-function((0 nil 2196 34 nil nil 0 nil 2211 nil nil)) font-lock-fontify-syntactically-region(2028 3549 nil) font-lock-default-fontify-region(2028 3528 nil) font-lock-fontify-region(2028 3528) #f(compiled-function (fun) #<bytecode 0x19a2bc2905dba4bd>)(font-lock-fontify-region) jit-lock--run-functions(2028 3528) jit-lock-fontify-now(2028 3528) jit-lock-function(2028) redisplay_internal\ \(C\ function\)() In GNU Emacs 28.2 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.36, cairo version 1.17.6) of 2023-01-28 built on buildvm-x86-04.iad2.fedoraproject.org Windowing system distributor 'The X.Org Foundation', version 11.0.12201009 System Description: Fedora Linux 37 (Workstation Edition) Configured using: 'configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --program-prefix= --disable-dependency-tracking --prefix=/usr --exec-prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --datadir=/usr/share --includedir=/usr/include --libdir=/usr/lib64 --libexecdir=/usr/libexec --localstatedir=/var --sharedstatedir=/var/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-dbus --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-xpm --with-x-toolkit=gtk3 --with-gpm=no --with-xwidgets --with-modules --with-harfbuzz --with-cairo --with-json --with-native-compilation build_alias=x86_64-redhat-linux-gnu host_alias=x86_64-redhat-linux-gnu CC=gcc 'CFLAGS=-DMAIL_USE_LOCKF -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' LDFLAGS=-Wl,-z,relro PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS X11 XDBE XIM XPM XWIDGETS GTK3 ZLIB Important settings: value of $LANG: en_AU.utf8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Python Minor modes in effect: yas-minor-mode: t highlight-indentation-mode: t company-mode: t elpy-mode: t pyvenv-mode: t flymake-mode: t global-auto-revert-mode: t display-time-mode: t shell-dirtrack-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-fill-mode: t Load-path shadows: ~/elisp/asn1-mode hides /home/nicku/.emacs.d/elpa/asn1-mode-20170729.226/asn1-mode ~/elisp/yaml-mode hides /home/nicku/.emacs.d/elpa/yaml-mode-20220903.1821/yaml-mode /home/nicku/.emacs.d/elpa/dash-20220608.1931/dash hides /usr/share/emacs/site-lisp/dash/dash /home/nicku/.emacs.d/elpa/s-20220902.1511/s hides /usr/share/emacs/site-lisp/s/s /usr/share/emacs/site-lisp/goodies/emacs-goodies-loaddefs hides /usr/share/emacs/site-lisp/site-start.d/emacs-goodies-loaddefs ~/elisp/yaml-mode hides /usr/share/emacs/site-lisp/yaml-mode/yaml-mode ~/elisp/startup hides /usr/share/emacs/28.2/lisp/startup /usr/share/emacs/site-lisp/rinari/util/jump/which-func hides /usr/share/emacs/28.2/lisp/progmodes/which-func /usr/share/emacs/site-lisp/rinari/util/ruby-mode hides /usr/share/emacs/28.2/lisp/progmodes/ruby-mode Features: (shadow sort flyspell ispell mail-extr emacsbug message rmc puny rfc822 mml mml-sec epa epg rfc6068 epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils cl-print debug backtrace find-func dired-aux dired dired-loaddefs misearch multi-isearch pylint company-oddmuse company-keywords company-etags company-gtags company-dabbrev-code company-dabbrev company-files company-clang company-template company-cmake company-bbdb vc-git vc-dispatcher puppet-mode yasnippet highlight-indentation company-capf company pcase help-fns radix-tree elpy edmacro kmacro elpy-rpc pyvenv eshell esh-cmd esh-ext esh-opt esh-proc esh-io esh-arg esh-module esh-groups esh-util elpy-shell elpy-profile elpy-django s elpy-refactor diff-mode easy-mmode ido hideshow grep etags fileloop generator xref cus-edit pp graphviz-dot-mode use-package-ensure use-package-core finder-inf yaml-mode generic-x server flymake-proc flymake project thingatpt post moinmoin-mode erin jka-compr autorevert filenotify time cus-load u-vm-color vm-autoloads comp comp-cstr warnings cl-extra help-mode vm-version vm-vars preview-latex rx erlang-start epix derived info-look cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs rinari advice jump inflections findr ruby-compilation which-func imenu inf-ruby compile text-property-search ruby-mode emacs-goodies-loaddefs color-theme wid-edit cl cython-mode python tramp-sh tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat shell pcomplete parse-time iso8601 time-date ls-lisp format-spec comint ring ansi-color clang-rename clang-include-fixer let-alist clang-format xml bbdb-loaddefs auto-loads tex-site info package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs password-cache json subr-x map url-vars seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib iso-transl tooltip eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray cl-preloaded nadvice button loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote threads xwidget-internal dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit x multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 543674 74632) (symbols 48 30193 3) (strings 32 142450 5048) (string-bytes 1 4349803) (vectors 16 64845) (vector-slots 8 1069734 41411) (floats 8 186 673) (intervals 56 9293 0) (buffers 992 32)) -- Nick Urbanik http://nicku.org nicku@nicku.org GPG: 7FFA CDC7 5A77 0558 DC7A 790A 16DF EC5B BB9D 2C24 ID: BB9D2C24 ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program 2023-04-12 7:05 bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program Nick Urbanik @ 2023-04-12 15:39 ` Eli Zaretskii 2023-04-12 23:55 ` Nick Urbanik 0 siblings, 1 reply; 10+ messages in thread From: Eli Zaretskii @ 2023-04-12 15:39 UTC (permalink / raw) To: Nick Urbanik; +Cc: 62794 > Date: Wed, 12 Apr 2023 17:05:13 +1000 > From: Nick Urbanik <nicku@nicku.org> > > > > 1. Start emacs with emacs -Q > 2. Read in a large python file (3100 lines long, more than 10,000 > characters) Thanks. Please post such a file, or a URL where it could be downloaded. I couldn't easily find such a large file on my system. > 3. Near the top, type the following: > > def function(): > """ > > 4. No further input is accepted. > 5. CPU usage is 100% as shown in /usr/bin/top > 6. type kill -USR2 {process_id_of_emacs-Q} > and the emacs window closes. > 7. From my emacs started without '-Q', when I type > killall -USR2 emacs > I see: > Debugger entered--entering a function: I suspect this is already fixed in Emacs 29, but I cannot verify without a file that reproduces the problem in Emacs 28. ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program 2023-04-12 15:39 ` Eli Zaretskii @ 2023-04-12 23:55 ` Nick Urbanik 2023-04-13 4:58 ` Eli Zaretskii 0 siblings, 1 reply; 10+ messages in thread From: Nick Urbanik @ 2023-04-12 23:55 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 62794 [-- Attachment #1: Type: text/plain, Size: 1723 bytes --] Dear Eli, Thank you very much for your helpful and rapid response. Emacs has never let me down in daily use from 1993 till this problem came up. On 12/04/23 18:39 +0300, Eli Zaretskii wrote: >> Date: Wed, 12 Apr 2023 17:05:13 +1000 >> From: Nick Urbanik <nicku@nicku.org> >> >> >> >> 1. Start emacs with emacs -Q >> 2. Read in a large python file (3100 lines long, more than 10,000 >> characters) > >Thanks. > >Please post such a file, or a URL where it could be downloaded. I >couldn't easily find such a large file on my system. It turns out that it is not the size, but some pathological arrangement of the code. I have provided a much smaller sample here that I can reproduce the problem with by: 1. Move the cursor to below the from elesewhere import ... line. 2. Press Enter 3. Type: def function(): """ 4. At this point, CPU usage goes to 100%, I cannot type anything else into the buffer, but I can send a USR2 signal to end the 100% CPU usage, but the buffer has only partial syntax colouring. > >> 3. Near the top, type the following: >> >> def function(): >> """ >> >> 4. No further input is accepted. >> 5. CPU usage is 100% as shown in /usr/bin/top >> 6. type kill -USR2 {process_id_of_emacs-Q} >> and the emacs window closes. >> 7. From my emacs started without '-Q', when I type >> killall -USR2 emacs >> I see: >> Debugger entered--entering a function: > >I suspect this is already fixed in Emacs 29, but I cannot verify >without a file that reproduces the problem in Emacs 28. I will build an RPM package of emacs 29 and test that. -- Nick Urbanik http://nicku.org nicku@nicku.org GPG: 7FFA CDC7 5A77 0558 DC7A 790A 16DF EC5B BB9D 2C24 ID: BB9D2C24 [-- Attachment #2: head-a.py --] [-- Type: text/plain, Size: 5302 bytes --] #!/usr/bin/env python3 """ This module aims to reproduce a bug in an emacs package. """ import time import psycopg2 from elsewhere import error, warning, debug class DB(): """ Under heavy network load, the connection to the database fails. Do not die then; reconnect. Much of this code comes straight from https://gist.github.com/cabecada/da8913830960a644755b18a02b65e184 """ def __init__(self): self.conn = None self.cur = None self.user = 'Fred' self.pw = 'Secret of Fred' self.dbname = 'Database of Fred' self.limit_retries = 'Never give up, Fred.' self.host = 'Host of Fred' self.reconnect = True def connect(self, retries=0): """ Connect to the database with 5 second retries """ if self.conn: return self.conn try: self.conn = psycopg2.connect( dbname=self.dbname, user=self.user, password=self.pw, host=self.host, ) retries = 0 except psycopg2.OperationalError as e: if not self.reconnect or retries >= self.limit_retries: error(f"CONNECTION FAIL: retries={retries}, " f"reconnect={self.reconnect}: {e}") raise e retries += 1 warning(f"Failure {e} connecting to {self.dbname}: retry {retries}") time.sleep(5) self.connect(retries) except Exception as e: raise Exception(f"Failed to connect to {self.dbname}: {e}") self.conn.set_session(autocommit=True) return self.conn def cursor(self): """ Try hard to provide a cursor into the database """ if not self.cur or self.cur.closed: if not self.conn or self.conn.closed: self.connect() self.cur = self.conn.cursor() return self.cur def reset(self): """ If things went wrong, reconnect """ self.close() self.connect() self.cursor() def close(self): """ We really need to close database connections to not run out. """ if self.conn: if self.cur: self.cur.close() self.conn.close() debug("PostgreSQL connection is closed") self.conn = None self.cur = None def init(self): """ What we do when we start up """ self.connect() self.cursor() def do(self, sql, values=None, many=False, num_rows=20): """ Assumes the SQL is either an insert, delete or update. Assumes the SQL ends with the equivalent of: RETURNING pk, or perhaps: RETURNING pk1, pk2 Returns a tuple containing the resulting value(s) even if the sql returns only one value. """ if (values is not None and (not hasattr(values, '__len__') or isinstance(values, str))): values = (values,) for retry in range(1, self.limit_retries + 1): try: self.cur.execute(sql, values) except psycopg2.errors.UniqueViolation as e: # Then we are trying to insert something that already exists. debug(f"UNIQUE: Failed to do {sql} {values}: {e}") return None except (psycopg2.DatabaseError, psycopg2.OperationalError) as e: if retry >= self.limit_retries: error(f"FAIL: retry={retry} for {sql} {values}: {e}") raise e warning(f"Failure {str(e).strip()} doing {sql} {values}; " f"retry {retry}") time.sleep(5) self.reset() except Exception as e: # Some other error that may result from a failed select # or any of the many other things that can go wrong. raise Exception(f"OTHER: Failed to do {sql} {values}: {e}") else: return ( self.cur.fetchmany(num_rows) if many else self.cur.fetchone() ) return None def do_many(self, sql, values, num_rows=100): """ Assumes the SQL is either an insert, delete or update. Assumes the SQL ends with the equivalent of: RETURNING pk, or perhaps: RETURNING pk1, pk2 Returns a tuple of the resulting value even if the sql returns only one value. """ return self.do(sql, values, True, num_rows) def exec_or_die(self, sql, values): """ When we want to fail if the SQL doesn't work. """ for retry in range(1, self.limit_retries + 1): try: self.cur.execute(sql, values) except (psycopg2.DatabaseError, psycopg2.OperationalError) as e: if retry >= self.limit_retries: raise e warning(f"Failure {str(e).strip()} doing {sql} {values}; " f"retry {retry}") time.sleep(1) self.reset() except Exception as e: raise Exception(f"Failed to do {sql} {values}: {e}") else: return self.cur return None ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program 2023-04-12 23:55 ` Nick Urbanik @ 2023-04-13 4:58 ` Eli Zaretskii 2023-04-13 5:25 ` Ruijie Yu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2023-04-13 5:39 ` Nick Urbanik 0 siblings, 2 replies; 10+ messages in thread From: Eli Zaretskii @ 2023-04-13 4:58 UTC (permalink / raw) To: Nick Urbanik; +Cc: 62794 > Date: Thu, 13 Apr 2023 09:55:42 +1000 > From: Nick Urbanik <nicku@nicku.org> > Cc: 62794@debbugs.gnu.org > > >Please post such a file, or a URL where it could be downloaded. I > >couldn't easily find such a large file on my system. > > It turns out that it is not the size, but some pathological > arrangement of the code. I have provided a much smaller sample here > that I can reproduce the problem with by: > > 1. Move the cursor to below the from elesewhere import ... line. > 2. Press Enter > 3. Type: > def function(): > """ > > 4. At this point, CPU usage goes to 100%, I cannot type anything else > into the buffer, but I can send a USR2 signal to end the 100% CPU > usage, but the buffer has only partial syntax colouring. OK, thanks. I can indeed reproduce this in Emacs 28.2, but not in what soon will become Emacs 29.1. So I think this problem was already solved between these two version. > >I suspect this is already fixed in Emacs 29, but I cannot verify > >without a file that reproduces the problem in Emacs 28. > > I will build an RPM package of emacs 29 and test that. Thanks. I will wait for your confirmation before closing the bug as fixed. ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program 2023-04-13 4:58 ` Eli Zaretskii @ 2023-04-13 5:25 ` Ruijie Yu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2023-04-13 5:39 ` Nick Urbanik 1 sibling, 0 replies; 10+ messages in thread From: Ruijie Yu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-04-13 5:25 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 62794, nicku Eli Zaretskii <eliz@gnu.org> writes: >> Date: Thu, 13 Apr 2023 09:55:42 +1000 >> From: Nick Urbanik <nicku@nicku.org> >> Cc: 62794@debbugs.gnu.org > > [...] > >> >I suspect this is already fixed in Emacs 29, but I cannot verify >> >without a file that reproduces the problem in Emacs 28. > > [...] A bit too late into the discussion, but I noticed that this is probably a duplicate of bug#62325, which has been fixed for Emacs 29. -- Best, RY ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program 2023-04-13 4:58 ` Eli Zaretskii 2023-04-13 5:25 ` Ruijie Yu via Bug reports for GNU Emacs, the Swiss army knife of text editors @ 2023-04-13 5:39 ` Nick Urbanik 2023-04-13 6:01 ` Eli Zaretskii 2023-04-14 2:49 ` Jim Porter 1 sibling, 2 replies; 10+ messages in thread From: Nick Urbanik @ 2023-04-13 5:39 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 62794 On 13/04/23 07:58 +0300, Eli Zaretskii wrote: >> Date: Thu, 13 Apr 2023 09:55:42 +1000 >> From: Nick Urbanik <nicku@nicku.org> >> Cc: 62794@debbugs.gnu.org >> >> >Please post such a file, or a URL where it could be downloaded. I >> >couldn't easily find such a large file on my system. >> >> It turns out that it is not the size, but some pathological >> arrangement of the code. I have provided a much smaller sample here >> that I can reproduce the problem with by: >> >> 1. Move the cursor to below the from elesewhere import ... line. >> 2. Press Enter >> 3. Type: >> def function(): >> """ >> >> 4. At this point, CPU usage goes to 100%, I cannot type anything else >> into the buffer, but I can send a USR2 signal to end the 100% CPU >> usage, but the buffer has only partial syntax colouring. > >OK, thanks. I can indeed reproduce this in Emacs 28.2, but not in >what soon will become Emacs 29.1. So I think this problem was already >solved between these two version. > >> >I suspect this is already fixed in Emacs 29, but I cannot verify >> >without a file that reproduces the problem in Emacs 28. >> >> I will build an RPM package of emacs 29 and test that. > >Thanks. I will wait for your confirmation before closing the bug as >fixed. I spent a couple of hours attempting to build an RPM package from git, but each iteration takes a super long time, and I cannot afford to spend a longer time from my work. I may try again on the weekend. For me this is a really big problem, as it has happened in other cases of editing Python programs, and it is a big slowdown and interruption to my workflow to restart emacs with lots of frames open. Emacs has always been so solid till this. Fedora will not package emacs 29.1 before it is released. I hope that is soon. F38 is due in 13 days, so this issue is likely to remain. It would be fantastic to backport the fix. -- Nick Urbanik http://nicku.org nicku@nicku.org GPG: 7FFA CDC7 5A77 0558 DC7A 790A 16DF EC5B BB9D 2C24 ID: BB9D2C24 ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program 2023-04-13 5:39 ` Nick Urbanik @ 2023-04-13 6:01 ` Eli Zaretskii 2023-04-14 6:02 ` Nick Urbanik 2023-04-14 2:49 ` Jim Porter 1 sibling, 1 reply; 10+ messages in thread From: Eli Zaretskii @ 2023-04-13 6:01 UTC (permalink / raw) To: Nick Urbanik; +Cc: 62794 > Date: Thu, 13 Apr 2023 15:39:18 +1000 > From: Nick Urbanik <nicku@nicku.org> > Cc: 62794@debbugs.gnu.org > > >> I will build an RPM package of emacs 29 and test that. > > > >Thanks. I will wait for your confirmation before closing the bug as > >fixed. > > I spent a couple of hours attempting to build an RPM package from git, > but each iteration takes a super long time, and I cannot afford to > spend a longer time from my work. I may try again on the weekend. Is it easier for you to try the pretest tarball? If so, you can find the pretest here: https://alpha.gnu.org/gnu/emacs/pretest/emacs-29.0.90.tar.xz ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program 2023-04-13 6:01 ` Eli Zaretskii @ 2023-04-14 6:02 ` Nick Urbanik 2023-04-14 6:51 ` Eli Zaretskii 0 siblings, 1 reply; 10+ messages in thread From: Nick Urbanik @ 2023-04-14 6:02 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 62794 On 13/04/23 09:01 +0300, Eli Zaretskii wrote: >> Date: Thu, 13 Apr 2023 15:39:18 +1000 >> From: Nick Urbanik <nicku@nicku.org> >> Cc: 62794@debbugs.gnu.org >> >> >> I will build an RPM package of emacs 29 and test that. >> > >> >Thanks. I will wait for your confirmation before closing the bug as >> >fixed. >> >> I spent a couple of hours attempting to build an RPM package from git, >> but each iteration takes a super long time, and I cannot afford to >> spend a longer time from my work. I may try again on the weekend. > >Is it easier for you to try the pretest tarball? If so, you can find >the pretest here: > > https://alpha.gnu.org/gnu/emacs/pretest/emacs-29.0.90.tar.xz Thank you very much, Eli. I successfully built an RPM under mock that runs on Fedora 37 and am now free of that bug, and another that prevented the formatting of docstrings. Great, my faith in emacs is restored, and I can continue to be productive with it. My spec file is here: https://nicku.org/software/#emacs-29.0 I pity all the other people stuck with 28.2 who work with Python and who are plagued by this barrier to getting things done. -- Nick Urbanik http://nicku.org nicku@nicku.org GPG: 7FFA CDC7 5A77 0558 DC7A 790A 16DF EC5B BB9D 2C24 ID: BB9D2C24 ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program 2023-04-14 6:02 ` Nick Urbanik @ 2023-04-14 6:51 ` Eli Zaretskii 0 siblings, 0 replies; 10+ messages in thread From: Eli Zaretskii @ 2023-04-14 6:51 UTC (permalink / raw) To: Nick Urbanik; +Cc: 62794-done > Date: Fri, 14 Apr 2023 16:02:59 +1000 > From: Nick Urbanik <nicku@nicku.org> > Cc: 62794@debbugs.gnu.org > > On 13/04/23 09:01 +0300, Eli Zaretskii wrote: > >Is it easier for you to try the pretest tarball? If so, you can find > >the pretest here: > > > > https://alpha.gnu.org/gnu/emacs/pretest/emacs-29.0.90.tar.xz > > Thank you very much, Eli. I successfully built an RPM under mock that > runs on Fedora 37 and am now free of that bug, and another that > prevented the formatting of docstrings. Great, my faith in emacs is > restored, and I can continue to be productive with it. My spec file > is here: https://nicku.org/software/#emacs-29.0 > > I pity all the other people stuck with 28.2 who work with Python and > who are plagued by this barrier to getting things done. Thanks for testing, I'm therefore closing this bug. ^ permalink raw reply [flat|nested] 10+ messages in thread
* bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program 2023-04-13 5:39 ` Nick Urbanik 2023-04-13 6:01 ` Eli Zaretskii @ 2023-04-14 2:49 ` Jim Porter 1 sibling, 0 replies; 10+ messages in thread From: Jim Porter @ 2023-04-14 2:49 UTC (permalink / raw) To: Nick Urbanik, Eli Zaretskii; +Cc: 62794 On 4/12/2023 10:39 PM, Nick Urbanik wrote: > For me this is a really big problem, as it has happened in other cases > of editing Python programs, and it is a big slowdown and interruption > to my workflow to restart emacs with lots of frames open. Emacs has > always been so solid till this. You could try the python package available in GNU ELPA. It hasn't gotten an "official" release in a while, but the development archive has new versions: https://elpa.gnu.org/devel/python.html This is the same code as what comes by default with an Emacs build. Maybe it would make sense to bump the version so that there's a new non-devel release on GNU ELPA. That way, anyone on an older Emacs can benefit from the fix for this issue. ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-04-14 6:51 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-04-12 7:05 bug#62794: 28.2; jit-lock-function enters busy loop when open """ near top of large Python program Nick Urbanik 2023-04-12 15:39 ` Eli Zaretskii 2023-04-12 23:55 ` Nick Urbanik 2023-04-13 4:58 ` Eli Zaretskii 2023-04-13 5:25 ` Ruijie Yu via Bug reports for GNU Emacs, the Swiss army knife of text editors 2023-04-13 5:39 ` Nick Urbanik 2023-04-13 6:01 ` Eli Zaretskii 2023-04-14 6:02 ` Nick Urbanik 2023-04-14 6:51 ` Eli Zaretskii 2023-04-14 2:49 ` Jim Porter
Code repositories for project(s) associated with this public inbox https://git.savannah.gnu.org/cgit/emacs.git This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).