Package: emacs;
Reported by: Ryan B <public <at> ryanb.org>
Date: Fri, 10 Feb 2017 21:45:02 UTC
Severity: normal
Found in version 25.1
Fixed in version 29.1
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 25682 in the body.
You can then email your comments to 25682 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#25682
; Package emacs
.
(Fri, 10 Feb 2017 21:45:02 GMT) Full text and rfc822 format available.Ryan B <public <at> ryanb.org>
:bug-gnu-emacs <at> gnu.org
.
(Fri, 10 Feb 2017 21:45:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Ryan B <public <at> ryanb.org> To: bug-gnu-emacs <at> gnu.org Subject: 25.1; font-lock: fontifying too slow in some modes on very long lines Date: Fri, 10 Feb 2017 13:33:52 -0800
[Message part 1 (text/plain, inline)]
i occasionally have very long lines in some buffers, e.g. 10k-20k characters. font-lock-mode often hangs for a long time (5-10s) when fontifying these lines. this has evidently been a known issue with font-lock-mode for a long time, and inspired a number of optimizations and workarounds: jit-lock/lazy-lock (formerly fast-lock), font-lock-maximum-decoration, https://www.emacswiki.org/emacs/SoLong , etc. they all work by deferring, downgrading, or disabling fontification in certain buffers. that's nice, but i'd ideally like to keep font-lock-mode on in buffers where very long lines appear, and still prevent the hangs. i'm considering adding an opt-in max line length to font-lock-mode, after which it would stop fontifying or evaluating regexps. i'd love to hear feedback on whether this makes sense! here are steps that reproduce this, with gnu emacs 25.1.1 on mac os x: 1. put the single long line under the === below (18572 chars long) into a file 2. run emacs -Q 3. type C-x C-f <filename> RET to open the file 4. type M-x compilation-mode RET this consistently hangs emacs for 9-10s for me on modern hardware, a 2014 retina macbook pro. === [2017-02-10T07:35:45Z django.db.backends] DEBUG: (0.057) SELECT "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", MAX("xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xx") AS "xxxxxxxx_xx", COUNT(DISTINCT "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx") AS "xxx_xxxxxxx", MAX("xxxxxxx_xxxxxx"."xxxx_xx") AS "xxxxxx_xxxx_xx", STRING_AGG("xxxxxxx_xxxxxx"."xxx_xxxxxxx", ' ') AS "xxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx" FROM "xxx_xxxxxx_xxxxxxxx" LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx" = "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" = "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xxx_xxxxx_xx" ) LEFT OUTER JOIN "xxx_xxxxxx_xxxxxxxx_xxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" = "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxxxx_xx" ) LEFT OUTER JOIN "xxxxxxx_xxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx" = "xxxxxxx_xxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx" = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx" = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx" ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx" = "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxxxxxxx_xxxxxxxxxxxxxxxxx" ON ( "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx" = "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN "xxxxx_xxxxxxxxx" T11 ON ( "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx" = T11."xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" T12 ON ( T11."xx" = T12."xxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx" ON ( T12."xx" = "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx" = "xxxxxxxx_xxxxxxxx"."xx" ) WHERE (NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxx" = 'xxxxxxxxx') AND NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx" < '2015-04-20T00:00:00-07:00'::xxxxxxxxxxx) AND NOT ("xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IN ('xx', 'xx') AND "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IS NOT NULL)) GROUP BY "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx"; xxxx=('xxxxxxxxx', datetime.datetime(2015, 4, 20, 0, 0, tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>), 'ff', 'qa') === In GNU Emacs 25.1.1 (x86_64-apple-darwin15.6.0, NS appkit-1404.47 Version 10.11.6 (Build 15G1004)) of 2016-09-17 built on hell.PK5001Z Windowing system distributor 'Apple', version 10.3.1404 Configured using: 'configure --disable-dependency-tracking --disable-silent-rules --enable-locallisppath=/usr/local/share/emacs/site-lisp --infodir=/usr/local/Cellar/emacs/25.1/share/info/emacs --prefix=/usr/local/Cellar/emacs/25.1 --without-x --with-xml2 --without-dbus --without-gnutls --with-rsvg --with-ns --disable-ns-self-contained' Configured features: JPEG RSVG NOTIFY ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: JavaScript Minor modes in effect: helm-mode: t diff-auto-refine-mode: t rainbow-identifiers-mode: t rainbow-delimiters-mode: t async-bytecomp-package-mode: t global-auto-revert-mode: t desktop-save-mode: t savehist-mode: t show-paren-mode: t delete-selection-mode: t recentf-mode: t global-subword-mode: t subword-mode: t shell-dirtrack-mode: t global-eldoc-mode: t mouse-wheel-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-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 Recent messages: Saving file /Users/ryan/.emacs.d/recentf... Wrote /Users/ryan/.emacs.d/recentf Desktop saved in ~/.emacs.d/ Saving file /Users/ryan/.emacs.d/recentf... Wrote /Users/ryan/.emacs.d/recentf Reverting buffer ‘recentf’. next-line: End of buffer [2 times] Mark set [5 times] Saving file /tmp/*scratch*... Wrote /tmp/*scratch* Load-path shadows: /Users/ryan/.emacs.d/elpa/seq-2.19/seq hides /usr/local/Cellar/emacs/25.1/share/emacs/25.1/lisp/emacs-lisp/seq Features: (shadow sort mail-extr emacsbug sendmail ibuf-ext man vc-annotate log-view pcmpl-unix vc-bzr vc-src vc-sccs vc-cvs vc-rcs dabbrev image-file dirtrack emacs-lock manoj-dark-theme ibuffer eieio-opt find-func cus-edit rst fillcode cc-bytecomp make-mode filecache tramp-cache conf-mode helm-command vc-svn helm-elisp helm-eval edebug sql view json-mode json-reformat json-snatcher misearch multi-isearch ido ess-toolbar ess-mouse mouseme ess-menu ess-swv ess-noweb ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l ess-sas-a ess-sta-d ess-sta-l make-regexp ess-sp6-d ess-dde ess-sp3-d ess-julia julia-mode ess-r-d ess-r-syntax ess-r-completion ess-roxy essddr hideshow ess-help ess-r-package ess-s-l ess-site ess ess-inf ess-tracebug ess-mode ess-noweb-mode ess-utils ess-generics cl ess-custom ess-compat nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok php-mode derived speedbar sb-image ezimage dframe flymake cc-langs smerge-mode vc-dir ewoc vc vc-dispatcher winner yaml-mode jka-compr helm-mode vc-git diff-mode rainbow-identifiers color rainbow-delimiters helm-misc helm-files image-dired dired-x dired-aux helm-buffers helm-elscreen helm-tags helm-bookmark helm-adaptive helm-info bookmark pp helm-locate helm-grep helm-regexp helm-external helm-net browse-url xml helm-utils helm-help helm-types helm-config helm-easymenu async-bytecomp async helm edmacro kmacro helm-source helm-multi-match helm-lib midnight autorevert filenotify desktop frameset savehist paren redo+ delsel warnings grep cus-start cus-load git-link dash-at-point recentf tree-widget wid-edit cap-words superword subword jade-mode js imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs python tramp-sh tramp tramp-compat tramp-loaddefs trampver shell pcomplete sh-script executable sgml-mode go-mode url url-proxy url-privacy url-expand url-methods url-history url-cookie url-domsuf url-util mailcap find-file ffap etags xref project compile comint ansi-color css-mode smie markdown-mode thingatpt noutline outline log-edit easy-mmode message dired format-spec rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils gmm-utils mailheader ring pcvs-util add-log finder-inf gh-common gh-profile url-parse auth-source gnus-util mm-util help-fns mail-prsvr password-cache url-vars rx s marshal cl-seq eieio-compat ht json map dash eieio eieio-core cl-macs info package epg-config seq byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs cl-lib subr-x pcase advice server time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win ucs-normalize term/common-win tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame 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 charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote kqueue cocoa ns multi-tty make-network-process emacs) Memory information: ((conses 16 5126063 736652) (symbols 48 53998 0) (miscs 40 3720 24660) (strings 32 157538 77287) (string-bytes 1 5024002) (vectors 16 90573) (vector-slots 8 2240527 189813) (floats 8 946 1835) (intervals 56 1059644 6492) (buffers 976 638)) -- https://snarfed.org/
[Message part 2 (text/html, inline)]
bug-gnu-emacs <at> gnu.org
:bug#25682
; Package emacs
.
(Sat, 11 Feb 2017 13:58:02 GMT) Full text and rfc822 format available.Message #8 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Andreas Röhler <andreas.roehler <at> easy-emacs.de> To: bug-gnu-emacs <at> gnu.org Subject: Re: bug#25682: 25.1; font-lock: fontifying too slow in some modes on very long lines Date: Sat, 11 Feb 2017 15:07:36 +0100
[Message part 1 (text/plain, inline)]
On 10.02.2017 22:33, Ryan B wrote: > i occasionally have very long lines in some buffers, e.g. 10k-20k > characters. font-lock-mode often hangs for a long time (5-10s) when > fontifying these lines. > > this has evidently been a known issue with font-lock-mode for a long > time, and inspired a number of optimizations and workarounds: > jit-lock/lazy-lock (formerly fast-lock), font-lock-maximum-decoration, > https://www.emacswiki.org/emacs/SoLong , etc. they all work by > deferring, downgrading, or disabling fontification in certain buffers. > > that's nice, but i'd ideally like to keep font-lock-mode on in buffers > where very long lines appear, and still prevent the hangs. i'm > considering adding an opt-in max line length to font-lock-mode, after > which it would stop fontifying or evaluating regexps. i'd love to hear > feedback on whether this makes sense! > > here are steps that reproduce this, with gnu emacs 25.1.1 on mac os x: > > 1. put the single long line under the === below (18572 chars long) > into a file > 2. run emacs -Q > 3. type C-x C-f <filename> RET to open the file > 4. type M-x compilation-mode RET > > this consistently hangs emacs for 9-10s for me on modern hardware, a > 2014 retina macbook pro. > > === > > [2017-02-10T07:35:45Z django.db.backends] DEBUG: (0.057) SELECT > "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", > "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", > "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", > MAX("xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xx") AS "xxxxxxxx_xx", > COUNT(DISTINCT "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx") AS > "xxx_xxxxxxx", MAX("xxxxxxx_xxxxxx"."xxxx_xx") AS "xxxxxx_xxxx_xx", > STRING_AGG("xxxxxxx_xxxxxx"."xxx_xxxxxxx", ' ') AS "xxx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", > T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", > T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", > T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", > T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", > T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", > T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", > T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", > T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", > T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", > T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", > T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", > T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", > "xxxxxxxx_xxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx" > FROM "xxx_xxxxxx_xxxxxxxx" LEFT OUTER JOIN > "xxx_xxxxxx_xxxxxxxxxxxxxxx" ON ( > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx" = > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN > "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" = > "xxx_xxxxxx_xxxxxxxxxxxxxxxxxx"."xxx_xxxxx_xx" ) LEFT OUTER JOIN > "xxx_xxxxxx_xxxxxxxx_xxxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx"."xx" = > "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxxxx_xx" ) LEFT OUTER JOIN > "xxxxxxx_xxxxxx" ON ( "xxx_xxxxxx_xxxxxxxx_xxxxxxx"."xxxxxx_xx" = > "xxxxxxx_xxxxxx"."xx" ) LEFT OUTER JOIN > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx" ON ( > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx" = > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" ON ( > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx" = > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx" ON ( > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx" = > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx" ON ( > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx" = > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx" ) LEFT OUTER JOIN > "xxxxx_xxxxxxxxx" T11 ON ( > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx" = T11."xx" ) LEFT > OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx" T12 ON ( T11."xx" = > T12."xxxx_xx" ) LEFT OUTER JOIN "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx" > ON ( T12."xx" = > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx" ) LEFT > OUTER JOIN "xxxxxxxx_xxxxxxxx" ON ( > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx" = "xxxxxxxx_xxxxxxxx"."xx" ) WHERE > (NOT ("xxx_xxxxxx_xxxxxxxx"."xxxxx" = 'xxxxxxxxx') AND NOT > ("xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx" < > '2015-04-20T00:00:00-07:00'::xxxxxxxxxxx) AND NOT > ("xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IN ('xx', 'xx') AND > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx" IS NOT NULL)) GROUP BY > "xxx_xxxxxx_xxxxxxxx"."xx", "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx", "xxx_xxxxxx_xxxxxxxx"."xxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxxxx_xxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxx_xxxx", > "xxx_xxxxxx_xxxxxxxx"."xxx_xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxx_xxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xx_xxx", > "xxx_xxxxxx_xxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxx_xx", "xxx_xxxxxx_xxxxxxxx"."xxxxx", > "xxx_xxxxxx_xxxxxxxx"."xxxxx_xxxxxx_xx", > "xxx_xxxxxx_xxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxx_xx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxx_xxxx_xxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xx_xxxxxx_xxxxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxx_xxxx_xxx_xxxxxxxxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xx_xxxxx_xxx_xxxxxxxx_xxxxx_xx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxxxx_xxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxx_xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxx_xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxx"."xxxxxxxx_xxxxxx_x3_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx_xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx_xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx1", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx2", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxx_xxxx", > "xxxxxxxxxx_xxxxxxxxxxxxxxxxx"."xxxxx", T11."xx", T11."xxxxxxxx", > T11."xxxx_xxxxx", T11."xx_xxxxxxxxx", T11."xxxxx", > T11."xxxxxxxxxxx_xxxxxxx_xxxxx", T11."xxxxxxx_xx", T11."xxxxx_xxxx", > T11."xxxx_xxxx", T11."xxxxxxxx", T11."xxxxxx", T11."xxxxx_xxxxxx", > T11."xxxxxxx_xxxxxxx_xx", T11."xxxxxxx_xxxxxxxx_xxxxxxx_xx", > T11."xxxxxxx_xx_xxxxx", T11."xxx_xxx_xxx_xxxxxxxx", T11."xx_xxxxx", > T11."xxxxx_xxxxx_xxxxx_xxxxxxx", T11."xx_xxxxxx", T11."xx_xxxxx", > T11."xxxxxxx_xx", T11."xxxxxxx_xx", T11."xxxxxxx_xx", > T11."xxxx_xxxxx_xxxxxxx", T11."xxxxxxxxxxx_xxxxxx_xxxxxx", T12."xx", > T12."xxxxxxx_xx", T12."xxxxxxx_xx", T12."xxx", T12."xxxxx_xxxx", > T12."xxxx_xxxx", T12."xxxxx", T12."xxxxx_xxxxxx", T12."xxx_xxxxxx", > T12."xxxxxxx_xxxx", T12."xxxxxxxxxxx_xxxx", T12."xxxx", T12."xxxxx", > T12."xxxxxxx_xxxx1", T12."xxxxxxx", T12."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > T12."xxxx_xx", T12."xxxxxxxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxxxxx_xx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxx_xx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxx_xxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxx_xxxxxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxx_xxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxxxxxxx_xxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxx_xxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxx_xxxxxxx_xxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xx_xxxxxxxx_xxxxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxx_xxxxx_xxxxxx", > "xxxxxxxx_xxxxxxxxxx_xxxxxxxxxxxxxxxx"."xxxxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxx_xxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx_xxxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxxxx_xxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxx_xxxxxxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxxx_xx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xx_xxxxxxx", > "xxx_xxxxxx_xxxxxxxxxxxxxxx"."xxxxxxx", "xxxxxxxx_xxxxxxxx"."xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxx", "xxxxxxxx_xxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxx_xxxxx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxx_xxxxx_xxxxx", > "xxxxxxxx_xxxxxxxx"."xxxx_xx", > "xxxxxxxx_xxxxxxxx"."xxxxxxxxx_xxxxx_xx", > "xxxxxxxx_xxxxxxxx"."xx_xxxx_xx", "xxxxxxxx_xxxxxxxx"."xxx_xxx_xxxx"; > xxxx=('xxxxxxxxx', datetime.datetime(2015, 4, 20, 0, 0, > tzinfo=<DstTzInfo 'America/Los_Angeles' PDT-1 day, 17:00:00 DST>), > 'ff', 'qa') > > > === > > > > In GNU Emacs 25.1.1 (x86_64-apple-darwin15.6.0, NS appkit-1404.47 > Version 10.11.6 (Build 15G1004)) > of 2016-09-17 built on hell.PK5001Z > Windowing system distributor 'Apple', version 10.3.1404 > Configured using: > 'configure --disable-dependency-tracking --disable-silent-rules > --enable-locallisppath=/usr/local/share/emacs/site-lisp > --infodir=/usr/local/Cellar/emacs/25.1/share/info/emacs > --prefix=/usr/local/Cellar/emacs/25.1 --without-x --with-xml2 > --without-dbus --without-gnutls --with-rsvg --with-ns > --disable-ns-self-contained' > > Configured features: > JPEG RSVG NOTIFY ACL LIBXML2 ZLIB TOOLKIT_SCROLL_BARS NS > > Important settings: > value of $LANG: en_US.UTF-8 > locale-coding-system: utf-8-unix > > Major mode: JavaScript > > Minor modes in effect: > helm-mode: t > diff-auto-refine-mode: t > rainbow-identifiers-mode: t > rainbow-delimiters-mode: t > async-bytecomp-package-mode: t > global-auto-revert-mode: t > desktop-save-mode: t > savehist-mode: t > show-paren-mode: t > delete-selection-mode: t > recentf-mode: t > global-subword-mode: t > subword-mode: t > shell-dirtrack-mode: t > global-eldoc-mode: t > mouse-wheel-mode: t > file-name-shadow-mode: t > global-font-lock-mode: t > font-lock-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 > > Recent messages: > Saving file /Users/ryan/.emacs.d/recentf... > Wrote /Users/ryan/.emacs.d/recentf > Desktop saved in ~/.emacs.d/ > Saving file /Users/ryan/.emacs.d/recentf... > Wrote /Users/ryan/.emacs.d/recentf > Reverting buffer ‘recentf’. > next-line: End of buffer [2 times] > Mark set [5 times] > Saving file /tmp/*scratch*... > Wrote /tmp/*scratch* > > Load-path shadows: > /Users/ryan/.emacs.d/elpa/seq-2.19/seq hides > /usr/local/Cellar/emacs/25.1/share/emacs/25.1/lisp/emacs-lisp/seq > > Features: > (shadow sort mail-extr emacsbug sendmail ibuf-ext man vc-annotate > log-view pcmpl-unix vc-bzr vc-src vc-sccs vc-cvs vc-rcs dabbrev > image-file dirtrack emacs-lock manoj-dark-theme ibuffer eieio-opt > find-func cus-edit rst fillcode cc-bytecomp make-mode filecache > tramp-cache conf-mode helm-command vc-svn helm-elisp helm-eval edebug > sql view json-mode json-reformat json-snatcher misearch multi-isearch > ido ess-toolbar ess-mouse mouseme ess-menu ess-swv ess-noweb > ess-noweb-font-lock-mode ess-bugs-l essd-els ess-sas-d ess-sas-l > ess-sas-a ess-sta-d ess-sta-l make-regexp ess-sp6-d ess-dde ess-sp3-d > ess-julia julia-mode ess-r-d ess-r-syntax ess-r-completion ess-roxy > essddr hideshow ess-help ess-r-package ess-s-l ess-site ess ess-inf > ess-tracebug ess-mode ess-noweb-mode ess-utils ess-generics cl > ess-custom ess-compat nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml > rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util > rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph > nxml-enc xmltok php-mode derived speedbar sb-image ezimage dframe > flymake cc-langs smerge-mode vc-dir ewoc vc vc-dispatcher winner > yaml-mode jka-compr helm-mode vc-git diff-mode rainbow-identifiers color > rainbow-delimiters helm-misc helm-files image-dired dired-x dired-aux > helm-buffers helm-elscreen helm-tags helm-bookmark helm-adaptive > helm-info bookmark pp helm-locate helm-grep helm-regexp helm-external > helm-net browse-url xml helm-utils helm-help helm-types helm-config > helm-easymenu async-bytecomp async helm edmacro kmacro helm-source > helm-multi-match helm-lib midnight autorevert filenotify desktop > frameset savehist paren redo+ delsel warnings grep cus-start cus-load > git-link dash-at-point recentf tree-widget wid-edit cap-words superword > subword jade-mode js imenu cc-mode cc-fonts cc-guess cc-menus cc-cmds > cc-styles cc-align cc-engine cc-vars cc-defs python tramp-sh tramp > tramp-compat tramp-loaddefs trampver shell pcomplete sh-script > executable sgml-mode go-mode url url-proxy url-privacy url-expand > url-methods url-history url-cookie url-domsuf url-util mailcap find-file > ffap etags xref project compile comint ansi-color css-mode smie > markdown-mode thingatpt noutline outline log-edit easy-mmode message > dired format-spec rfc822 mml mml-sec epg mm-decode mm-bodies mm-encode > mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev mail-utils > gmm-utils mailheader ring pcvs-util add-log finder-inf gh-common > gh-profile url-parse auth-source gnus-util mm-util help-fns mail-prsvr > password-cache url-vars rx s marshal cl-seq eieio-compat ht json map > dash eieio eieio-core cl-macs info package epg-config seq byte-opt gv > bytecomp byte-compile cl-extra help-mode easymenu cconv cl-loaddefs > cl-lib subr-x pcase advice server time-date mule-util tooltip eldoc > electric uniquify ediff-hook vc-hooks lisp-float-type mwheel ns-win > ucs-normalize term/common-win tool-bar dnd fontset image regexp-opt > fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register > page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock > font-lock syntax facemenu font-core frame 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 charscript case-table epa-hook > jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice > loaddefs button faces cus-face macroexp files text-properties overlay > sha1 md5 base64 format env code-pages mule custom widget > hashtable-print-readable backquote kqueue cocoa ns multi-tty > make-network-process emacs) > > Memory information: > ((conses 16 5126063 736652) > (symbols 48 53998 0) > (miscs 40 3720 24660) > (strings 32 157538 77287) > (string-bytes 1 5024002) > (vectors 16 90573) > (vector-slots 8 2240527 189813) > (floats 8 946 1835) > (intervals 56 1059644 6492) > (buffers 976 638)) > > > -- > https://snarfed.org/ At my machine, which is not fastest, it took 55 sec until cursor returned. GNU Emacs 25.1.91.1 (i686-pc-linux-gnu, GTK+ Version 3.14.5) of 2017-01-02 Linux sprache 3.16.0-4-686-pae #1 SMP Debian 3.16.39-1 (2016-12-30) i686 GNU/Linux
[Message part 2 (text/html, inline)]
bug-gnu-emacs <at> gnu.org
:bug#25682
; Package emacs
.
(Thu, 31 Oct 2019 17:09:02 GMT) Full text and rfc822 format available.Message #11 received at 25682 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Ryan B <public <at> ryanb.org> Cc: 25682 <at> debbugs.gnu.org Subject: Re: 25.1; font-lock: fontifying too slow in some modes on very long lines Date: Thu, 31 Oct 2019 18:07:53 +0100
[Message part 1 (text/plain, inline)]
Ryan B <public <at> ryanb.org> writes: > here are steps that reproduce this, with gnu emacs 25.1.1 on mac os x: > > 1. put the single long line under the === below (18572 chars long) into a file > 2. run emacs -Q > 3. type C-x C-f <filename> RET to open the file > 4. type M-x compilation-mode RET > > this consistently hangs emacs for 9-10s for me on modern hardware, a 2014 > retina macbook pro. The example was corrupted in transit (line-folded), so I've included a fixed-up version as an attachment here. Running M-x compilation-mode takes about five seconds for me, but this laptop is pretty fast. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
[long.txt (text/plain, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#25682
; Package emacs
.
(Thu, 31 Oct 2019 17:27:02 GMT) Full text and rfc822 format available.Message #14 received at 25682 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Lars Ingebrigtsen <larsi <at> gnus.org> Cc: 25682 <at> debbugs.gnu.org, public <at> ryanb.org Subject: Re: bug#25682: 25.1; font-lock: fontifying too slow in some modes on very long lines Date: Thu, 31 Oct 2019 19:26:23 +0200
> From: Lars Ingebrigtsen <larsi <at> gnus.org> > Date: Thu, 31 Oct 2019 18:07:53 +0100 > Cc: 25682 <at> debbugs.gnu.org > > > 1. put the single long line under the === below (18572 chars long) into a file > > 2. run emacs -Q > > 3. type C-x C-f <filename> RET to open the file > > 4. type M-x compilation-mode RET > > > > this consistently hangs emacs for 9-10s for me on modern hardware, a 2014 > > retina macbook pro. > > The example was corrupted in transit (line-folded), so I've included a > fixed-up version as an attachment here. The profile is below. > Running M-x compilation-mode takes about five seconds for me, but this > laptop is pretty fast. Yours is an optimized build, right? - ... 3375 98% - compilation--ensure-parse 3362 98% - save-excursion 3362 98% - if 3362 98% - progn 3362 98% - let 3362 98% - let* 3362 98% - unwind-protect 3362 98% - progn 3362 98% - compilation--parse-region 3362 98% - if 3362 98% - compilation-parse-errors 3362 98% - let 3362 98% - while 3362 98% - let 3362 98% - let 3362 98% while 3362 98% Automatic GC 13 0% - command-execute 50 1% - call-interactively 50 1% - funcall-interactively 48 1% - execute-extended-command 48 1% - execute-extended-command--shorter 45 1% - completion-try-completion 45 1% - completion--nth-completion 45 1% - completion--some 45 1% - #<compiled -0x1ffffffff85d3920> 45 1% - completion-pcm-try-completion 28 0% - completion-pcm--find-all-completions 26 0% completion-pcm--all-completions 26 0% - completion-pcm--merge-try 2 0% completion-pcm--merge-completions 1 0% completion-basic-try-completion 17 0% - command-execute 1 0% - call-interactively 1 0% - funcall-interactively 1 0% - compilation-mode 1 0% - run-mode-hooks 1 0% - hack-local-variables 1 0% - hack-dir-local-variables 1 0% - dir-locals-find-file 1 0% - locate-dominating-file 1 0% dir-locals--all-files 1 0% - sit-for 1 0% redisplay 1 0% - byte-code 2 0% - read-extended-command 2 0% - completing-read 2 0% - completing-read-default 2 0% read-from-minibuffer 2 0%
bug-gnu-emacs <at> gnu.org
:bug#25682
; Package emacs
.
(Thu, 31 Oct 2019 17:33:02 GMT) Full text and rfc822 format available.Message #17 received at 25682 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 25682 <at> debbugs.gnu.org, public <at> ryanb.org Subject: Re: bug#25682: 25.1; font-lock: fontifying too slow in some modes on very long lines Date: Thu, 31 Oct 2019 18:32:22 +0100
Eli Zaretskii <eliz <at> gnu.org> writes: >> Running M-x compilation-mode takes about five seconds for me, but this >> laptop is pretty fast. > > Yours is an optimized build, right? Yup. -- (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no
bug-gnu-emacs <at> gnu.org
:bug#25682
; Package emacs
.
(Sat, 23 Jul 2022 09:04:02 GMT) Full text and rfc822 format available.Message #20 received at 25682 <at> debbugs.gnu.org (full text, mbox):
From: Lars Ingebrigtsen <larsi <at> gnus.org> To: Ryan B <public <at> ryanb.org> Cc: 25682 <at> debbugs.gnu.org Subject: Re: bug#25682: 25.1; font-lock: fontifying too slow in some modes on very long lines Date: Sat, 23 Jul 2022 11:03:17 +0200
Ryan B <public <at> ryanb.org> writes: > i occasionally have very long lines in some buffers, e.g. 10k-20k characters. > font-lock-mode often hangs for a long time (5-10s) when fontifying these lines. These issues have been fixed in Emacs 29 -- long lines no longer slows down Emacs (to these degrees), so I'm closing this bug report. (And I'm not able to reproduce the problem in the test case here with the current Emacs.) There may be issues remaining with long lines, and if so, please open new bug reports for those issues (and cases for reproduction would be appreciated).
Lars Ingebrigtsen <larsi <at> gnus.org>
to control <at> debbugs.gnu.org
.
(Sat, 23 Jul 2022 09:04:02 GMT) Full text and rfc822 format available.Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Sat, 20 Aug 2022 11:24:10 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.