Package: emacs;
Reported by: Phil <p.stephani2 <at> gmail.com>
Date: Thu, 11 Aug 2016 18:57:02 UTC
Severity: normal
Found in version 25.1
Done: Paul Eggert <eggert <at> cs.ucla.edu>
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 24206 in the body.
You can then email your comments to 24206 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#24206
; Package emacs
.
(Thu, 11 Aug 2016 18:57:02 GMT) Full text and rfc822 format available.Phil <p.stephani2 <at> gmail.com>
:bug-gnu-emacs <at> gnu.org
.
(Thu, 11 Aug 2016 18:57:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Phil <p.stephani2 <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Thu, 11 Aug 2016 11:55:05 -0700
Build is from the emacs-25 branch. $ ./emacs -Q -eval "(progn (defface test nil \"\`\\240'\") (customize-face 'test))" character.h:703: Emacs fatal error: assertion failed: CHAR_VALID_P (ch) Fatal error 6: Aborted I think this is serious enough to be release-blocking. Seen in the wild with older versions of show-wspace.el. (gdb) bt full #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:354 No locals. #1 0x00000000006122e6 in die (msg=0x732ed0 "CHAR_VALID_P (ch)", file=0x732ec4 "character.h", line=703) at alloc.c:7223 No locals. #2 0x000000000057c60d in char_table_translate (obj=..., ch=4195776) at character.h:703 No locals. #3 0x00000000005fe182 in re_search_2 (bufp=0xd76160 <searchbufs+5792>, str1=0x0, size1=0, str2=0x1ae6898 "‘\240’", size2=7, startpos=0, range=1, regs=0xd766f0 <search_regs>, stop=7) at regex.c:4370 buf_charlen = 2 irange = 7 lim = 0 d = 0x1ae689e "\231" buf_ch = 4195776 val = 14115136 string1 = 0x0 string2 = 0x1ae6898 "‘\240’" fastmap = 0xd761a0 <searchbufs+5856> "" translate = { i = 21377445 } total_size = 7 endpos = 7 anchored_start = 0 '\000' multibyte = 1 '\001' #4 0x00000000005fdcef in re_search (bufp=0xd76160 <searchbufs+5792>, string=0x1ae6898 "‘\240’", size=7, startpos=0, range=7, regs=0xd766f0 <search_regs>) at regex.c:4228 No locals. #5 0x00000000005ea018 in string_match_1 (regexp=..., string=..., start=..., posix=false) at search.c:404 val = 5747501 bufp = 0xd76160 <searchbufs+5792> pos = 0 pos_byte = 0 i = 42963155872 #6 0x00000000005ea18d in Fstring_match (regexp=..., string=..., start=...) at search.c:444 No locals. #7 0x0000000000637da1 in Ffuncall (nargs=3, args=0x7fffffff5df0) at eval.c:2700 internal_argbuf = {{ i = 19272884 }, { i = 19244804 }, { i = 0 }, { i = 0 }, { i = 0 }, { i = 6836305 }, { i = 20056252 }, { i = 326 }} fun = { i = 10117229 } original_fun = { i = 655680 } funcar = { i = 11020413 } numargs = 2 lisp_numargs = { i = 19272884 } val = { i = 43248 } internal_args = 0x7fffffff5d60 count = 36 #8 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffff66e0) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 36 op = 2 vectorp = 0x15310e8 stack = { pc = 0x1ae653d "\203\252", byte_string = { i = 19273556 }, byte_string_start = 0x1ae6528 "\300\301\002!!\302\002\303\"\302\211\004\304\"\305\"`\306\307\005\"\203\252", next = 0x7fffffff6e00 } top = 0x7fffffff5df0 result = { i = 0 } type = CATCHER #9 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffff66d8) at eval.c:2855 size = 5 val = { i = 21698117 } syms_left = { i = 1030 } next = { i = 60157747265 } lexenv = { i = 140737488315600 } count = 36 i = 60143831280 optional = false rest = false #10 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffff66d0) at eval.c:2742 fun = { i = 21698117 } original_fun = { i = 13352512 } funcar = { i = 140737488315760 } numargs = 1 lisp_numargs = { i = 140737488315792 } val = { i = 0 } internal_args = 0xda08f0 <lispsym> count = 35 #11 0x000000000063697b in Fapply (nargs=3, args=0x7fffffff66d0) at eval.c:2274 i = 5740786 numargs = 0 funcall_nargs = 13443920 funcall_args = 0x0 spread_arg = { i = 0 } fun = { i = 13352512 } retval = { i = 140737488315952 } sa_avail = 16384 sa_count = 35 sa_must_free = false #12 0x000000000064631d in Fwidget_apply (nargs=2, args=0x7fffffff6828) at fns.c:2931 widget = { i = 29645555 } property = { i = 13443920 } propval = { i = 13352512 } trailing_args = { i = 0 } result = { i = 13750941 } #13 0x0000000000637bef in Ffuncall (nargs=3, args=0x7fffffff6820) at eval.c:2673 fun = { i = 13750941 } original_fun = { i = 209904 } funcar = { i = 327 } numargs = 2 lisp_numargs = { i = 0 } val = { i = 0 } internal_args = 0x51a count = 34 #14 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffff70c0) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 31 op = 2 vectorp = 0x152f188 stack = { pc = 0x1cae31a "\210\266\b\354 \355 \356\002\302\"\210\356\001\303\"\210\357\003\360\004#\210\357\003\361\003#\266\003db\210+\362 \207", byte_string = { i = 27692132 }, byte_string_start = 0x1cae1a8 "\214\302\211\030\031``}\210`É\211\211\211\211\211\304\006\t\305\"c\210\006\ab\210\306\307\303\302#\203\064\001Ȕf\311\312!\210\211\313=\203\067", next = 0x7fffffff77c0 } top = 0x7fffffff6820 result = { i = 0 } type = CATCHER #15 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffff70b8) at eval.c:2855 size = 5 val = { i = 21320085 } syms_left = { i = 1030 } next = { i = 64424472336 } lexenv = { i = 140737488318128 } count = 31 i = 60143831280 optional = false rest = false #16 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffff70b0) at eval.c:2742 fun = { i = 21320085 } original_fun = { i = 13340640 } funcar = { i = 140737488318272 } numargs = 1 lisp_numargs = { i = 140737488318320 } val = { i = 0 } internal_args = 0xda08f0 <lispsym> count = 30 #17 0x000000000063697b in Fapply (nargs=3, args=0x7fffffff70b0) at eval.c:2274 i = 5740786 numargs = 0 funcall_nargs = 13340592 funcall_args = 0x0 spread_arg = { i = 0 } fun = { i = 13340640 } retval = { i = 140737488318480 } sa_avail = 16384 sa_count = 30 sa_must_free = false #18 0x000000000064631d in Fwidget_apply (nargs=2, args=0x7fffffff71e0) at fns.c:2931 widget = { i = 29645555 } property = { i = 13340592 } propval = { i = 13340640 } trailing_args = { i = 0 } result = { i = 13750941 } #19 0x0000000000637bef in Ffuncall (nargs=3, args=0x7fffffff71d8) at eval.c:2673 fun = { i = 13750941 } original_fun = { i = 209904 } funcar = { i = 140737488318832 } numargs = 2 lisp_numargs = { i = 0 } val = { i = 14 } internal_args = 0x7fffffff71e0 count = 29 #20 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=7, args=0x7fffffff7988) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 29 op = 2 vectorp = 0x1530168 stack = { pc = 0x1caedcd "\210\211\207", byte_string = { i = 18832916 }, byte_string_start = 0x1caed98 "\300\301\003\003#\302\001\303\006\006#\210\304\001\305\"\204\061", next = 0x7fffffff8160 } top = 0x7fffffff71d8 result = { i = 17283764 } type = CATCHER #21 0x000000000063873d in funcall_lambda (fun=..., nargs=7, arg_vector=0x7fffffff7978) at eval.c:2855 size = 5 val = { i = 21283133 } syms_left = { i = 2570 } next = { i = 60159187875 } lexenv = { i = 140737488320624 } count = 29 i = 60143831280 optional = false rest = false #22 0x0000000000637fbb in Ffuncall (nargs=8, args=0x7fffffff7970) at eval.c:2742 fun = { i = 21283133 } original_fun = { i = 13537904 } funcar = { i = 47994 } numargs = 7 lisp_numargs = { i = 0 } val = { i = 1 } internal_args = 0x1c count = 28 #23 0x0000000000636fb6 in Fapply (nargs=6, args=0x7fffffff7b80) at eval.c:2321 i = 8 numargs = 7 funcall_nargs = 8 funcall_args = 0x7fffffff7970 spread_arg = { i = 0 } fun = { i = 21283133 } retval = { i = 64 } sa_avail = 16320 sa_count = 28 sa_must_free = false #24 0x0000000000637bef in Ffuncall (nargs=7, args=0x7fffffff7b78) at eval.c:2673 fun = { i = 13746093 } original_fun = { i = 8400 } funcar = { i = 0 } numargs = 6 lisp_numargs = { i = 140737488321312 } val = { i = 140737488321232 } internal_args = 0x5798f2 <builtin_lisp_symbol+44> count = 27 #25 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=3, args=0x7fffffff8360) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 27 op = 6 vectorp = 0x15303a0 stack = { pc = 0x1cafa6d "\301\006\t\311\"B#\207", byte_string = { i = 19832100 }, byte_string_start = 0x1cafa30 "\300\002!\301\003\302\"\301\004\303\"\002\205D", next = 0x7fffffff8980 } top = 0x7fffffff7b78 result = { i = 28183283 } type = CATCHER #26 0x000000000063873d in funcall_lambda (fun=..., nargs=3, arg_vector=0x7fffffff8358) at eval.c:2855 size = 5 val = { i = 21698261 } syms_left = { i = 1542 } next = { i = 60157740323 } lexenv = { i = 140737488323088 } count = 27 i = 60143831280 optional = false rest = false #27 0x0000000000637fbb in Ffuncall (nargs=4, args=0x7fffffff8350) at eval.c:2742 fun = { i = 21698261 } original_fun = { i = 13352656 } funcar = { i = 140737488323248 } numargs = 3 lisp_numargs = { i = 0 } val = { i = 14 } internal_args = 0x7fffffff8358 count = 26 #28 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffff8c40) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 26 op = 3 vectorp = 0x14dca90 stack = { pc = 0x10584c4 "\210\002\204:\001\004\374N\324\006\b\375\376\006\v\310\006\006\206*\001\377&\006\330\006\t\201@", byte_string = { i = 28080308 }, byte_string_start = 0x10583b0 "\306\001\307\"\306\002\310\"\306\003\311\"\206\022", next = 0x7fffffff9360 } top = 0x7fffffff8350 result = { i = 28198083 } type = CATCHER #29 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffff8c38) at eval.c:2855 size = 5 val = { i = 21859661 } syms_left = { i = 1030 } next = { i = 60157741873 } lexenv = { i = 140737488325168 } count = 26 i = 60143831280 optional = false rest = false #30 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffff8c30) at eval.c:2742 fun = { i = 21859661 } original_fun = { i = 13736416 } funcar = { i = 140737488325328 } numargs = 1 lisp_numargs = { i = 140737488325360 } val = { i = 0 } internal_args = 0xda08f0 <lispsym> count = 25 #31 0x000000000063697b in Fapply (nargs=3, args=0x7fffffff8c30) at eval.c:2274 i = 5740786 numargs = 0 funcall_nargs = 13443920 funcall_args = 0x0 spread_arg = { i = 0 } fun = { i = 13736416 } retval = { i = 140737488325520 } sa_avail = 16384 sa_count = 25 sa_must_free = false #32 0x000000000064631d in Fwidget_apply (nargs=2, args=0x7fffffff8d88) at fns.c:2931 widget = { i = 28198227 } property = { i = 13443920 } propval = { i = 13736416 } trailing_args = { i = 0 } result = { i = 13750941 } #33 0x0000000000637bef in Ffuncall (nargs=3, args=0x7fffffff8d80) at eval.c:2673 fun = { i = 13750941 } original_fun = { i = 209904 } funcar = { i = 256 } numargs = 2 lisp_numargs = { i = 0 } val = { i = 0 } internal_args = 0x3fe count = 24 #34 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffff9620) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 21 op = 2 vectorp = 0x152f188 stack = { pc = 0x1cae31a "\210\266\b\354 \355 \356\002\302\"\210\356\001\303\"\210\357\003\360\004#\210\357\003\361\003#\266\003db\210+\362 \207", byte_string = { i = 27692132 }, byte_string_start = 0x1cae1a8 "\214\302\211\030\031``}\210`É\211\211\211\211\211\304\006\t\305\"c\210\006\ab\210\306\307\303\302#\203\064\001Ȕf\311\312!\210\211\313=\203\067", next = 0x7fffffff9cf0 } top = 0x7fffffff8d80 result = { i = 0 } type = (CONDITION_CASE | CATCHER_ALL | unknown: 32764) #35 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffff9618) at eval.c:2855 size = 5 val = { i = 21320085 } syms_left = { i = 1030 } next = { i = 60150829029 } lexenv = { i = 140737488327696 } count = 21 i = 60143831280 optional = false rest = false #36 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffff9610) at eval.c:2742 fun = { i = 21320085 } original_fun = { i = 13340640 } funcar = { i = 140737488328000 } numargs = 1 lisp_numargs = { i = 140737488327888 } val = { i = 0 } internal_args = 0xda08f0 <lispsym> count = 20 #37 0x000000000063697b in Fapply (nargs=3, args=0x7fffffff9610) at eval.c:2274 i = 5740786 numargs = 0 funcall_nargs = 13340592 funcall_args = 0x0 spread_arg = { i = 0 } fun = { i = 13340640 } retval = { i = 140737488328048 } sa_avail = 16384 sa_count = 20 sa_must_free = false #38 0x000000000064631d in Fwidget_apply (nargs=2, args=0x7fffffff9738) at fns.c:2931 widget = { i = 28198227 } property = { i = 13340592 } propval = { i = 13340640 } trailing_args = { i = 0 } result = { i = 13750941 } #39 0x0000000000637bef in Ffuncall (nargs=3, args=0x7fffffff9730) at eval.c:2673 fun = { i = 13750941 } original_fun = { i = 209904 } funcar = { i = 140737488328400 } numargs = 2 lisp_numargs = { i = 140737488328400 } val = { i = 28198227 } internal_args = 0xda08f0 <lispsym> count = 19 #40 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=9, args=0x7fffffff9ec0) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 19 op = 2 vectorp = 0x152f160 stack = { pc = 0x1cae149 "\210\211\207", byte_string = { i = 27924884 }, byte_string_start = 0x1cae140 "\300\301\003\003#\302\001\303\"\210\211\207", next = 0x7fffffffa4a0 } top = 0x7fffffff9730 result = { i = 23327188 } type = CATCHER #41 0x000000000063873d in funcall_lambda (fun=..., nargs=9, arg_vector=0x7fffffff9eb8) at eval.c:2855 size = 5 val = { i = 21283085 } syms_left = { i = 1542 } next = { i = 64424484544 } lexenv = { i = 140737488330144 } count = 19 i = 60143831280 optional = false rest = false #42 0x0000000000637fbb in Ffuncall (nargs=10, args=0x7fffffff9eb0) at eval.c:2742 fun = { i = 21283085 } original_fun = { i = 5048688 } funcar = { i = 73014444049 } numargs = 9 lisp_numargs = { i = 32 } val = { i = 23327188 } internal_args = 0x11824f0 count = 18 #43 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffffa680) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 18 op = 9 vectorp = 0x145c2d0 stack = { pc = 0x1c8d50c "\207", byte_string = { i = 17198852 }, byte_string_start = 0x1c8d4f8 "\300\001A@\301\302\303\304\305\306\006\b@!\307\006\t@&\t\207", next = 0x7fffffffaeb0 } top = 0x7fffffff9eb0 result = { i = 0 } type = CATCHER #44 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffffa678) at eval.c:2855 size = 5 val = { i = 21349141 } syms_left = { i = 1030 } next = { i = 60147901680 } lexenv = { i = 140737488332112 } count = 18 i = 60135282930 optional = false rest = false #45 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffffa670) at eval.c:2742 fun = { i = 21349141 } original_fun = { i = 21349141 } funcar = { i = 30046240 } numargs = 1 lisp_numargs = { i = 140737488332304 } val = { i = 21221269 } internal_args = 0xda08f0 <lispsym> count = 17 #46 0x000000000063768c in call1 (fn=..., arg1=...) at eval.c:2552 No locals. #47 0x0000000000644f36 in mapcar1 (leni=1, vals=0x7fffffffa720, fn=..., seq=...) at fns.c:2522 tail = { i = 19025347 } dummy = { i = 0 } i = 0 #48 0x00000000006453c7 in Fmapcar (function=..., sequence=...) at fns.c:2587 len = { i = 1 } leni = 1 args = 0x7fffffffa720 ret = { i = 8 } sa_avail = 16376 sa_count = 17 sa_must_free = false #49 0x0000000000637d66 in Ffuncall (nargs=3, args=0x7fffffffa8a8) at eval.c:2696 internal_argbuf = {{ i = 0 }, { i = 5747687 }, { i = 140737488332896 }, { i = 14289136 }, { i = 0 }, { i = 6537166 }, { i = 140737488332928 }, { i = 5740786 }} fun = { i = 13750461 } original_fun = { i = 209392 } funcar = { i = 0 } numargs = 2 lisp_numargs = { i = 0 } val = { i = 140737488332880 } internal_args = 0x7fffffffa8b0 count = 16 #50 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=2, args=0x7fffffffb098) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 16 op = 2 vectorp = 0x14a5498 stack = { pc = 0x1c8d0c9 "\202\f\001\361C\002G\357\362\363\364\365\366\006\a\006\a\"\367\"\370\371%\005\"\266\202\026 <at> h\372=\204\030\001\307\325!\210\353\373!\210\353\374!\210\016A\375=\204-\001\376\377\016@\"\210\353\201B", byte_string = { i = 17213076 }, byte_string_start = 0x1c8cfd8 "\306 \210\b\206\b", next = 0x7fffffffb640 } top = 0x7fffffffa8a8 result = { i = 30046245 } type = CATCHER #51 0x000000000063873d in funcall_lambda (fun=..., nargs=2, arg_vector=0x7fffffffb088) at eval.c:2855 size = 5 val = { i = 21649109 } syms_left = { i = 2054 } next = { i = 60133946176 } lexenv = { i = 140737488334688 } count = 16 i = 60143831280 optional = true rest = false #52 0x0000000000637fbb in Ffuncall (nargs=3, args=0x7fffffffb080) at eval.c:2742 fun = { i = 21649109 } original_fun = { i = 13482336 } funcar = { i = 140737488334832 } numargs = 2 lisp_numargs = { i = 0 } val = { i = 30046245 } internal_args = 0x1a58470 count = 15 #53 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=2, args=0x7fffffffb828) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 15 op = 2 vectorp = 0x145b220 stack = { pc = 0x1c8cbc6 "\207", byte_string = { i = 27807924 }, byte_string_start = 0x1c8cbb8 "\300\301\003\206\a", next = 0x7fffffffbde0 } top = 0x7fffffffb080 result = { i = 29812948 } type = CATCHER #54 0x000000000063873d in funcall_lambda (fun=..., nargs=2, arg_vector=0x7fffffffb818) at eval.c:2855 size = 5 val = { i = 21344837 } syms_left = { i = 3078 } next = { i = 60143286381 } lexenv = { i = 140737488336624 } count = 15 i = 60143831280 optional = false rest = false #55 0x0000000000637fbb in Ffuncall (nargs=3, args=0x7fffffffb810) at eval.c:2742 fun = { i = 21344837 } original_fun = { i = 4911488 } funcar = { i = 19025347 } numargs = 2 lisp_numargs = { i = 19025267 } val = { i = 29812852 } internal_args = 0x609b49 <Fcons+274> count = 14 #56 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffffbec8) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 14 op = 2 vectorp = 0x1459098 stack = { pc = 0x1c98a00 "\207", byte_string = { i = 27970292 }, byte_string_start = 0x1c989a8 "\001\300\235\203\n", next = 0x7fffffffc980 } top = 0x7fffffffb810 result = { i = 0 } type = CATCHER #57 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffffbec0) at eval.c:2855 size = 6 val = { i = 0 } syms_left = { i = 2050 } next = { i = 140737488338544 } lexenv = { i = 140737488338592 } count = 14 i = 14289136 optional = false rest = false #58 0x000000000063839c in apply_lambda (fun=..., args=..., count=13) at eval.c:2794 args_left = { i = 0 } i = 1 numargs = 1 arg_vector = 0x7fffffffbec0 tem = { i = 43632 } sa_avail = 16376 sa_count = 14 sa_must_free = false #59 0x0000000000636629 in eval_sub (form=...) at eval.c:2211 fun = { i = 21332837 } val = { i = 43632 } original_fun = { i = 4911008 } original_args = { i = 18499859 } funcar = { i = 9168 } count = 13 argvals = {{ i = 18499603 }, { i = 13744888 }, { i = 140737488339072 }, { i = 14289136 }, { i = 0 }, { i = 42963417848 }, { i = 140737488339088 }, { i = 5740786 }} #60 0x00000000006312fa in Fprogn (body=...) at eval.c:426 val = { i = 43632 } #61 0x0000000000636035 in eval_sub (form=...) at eval.c:2119 args_left = { i = 18500019 } numargs = { i = 10 } fun = { i = 13744893 } val = { i = 21474836480 } original_fun = { i = 37296 } original_args = { i = 18500019 } funcar = { i = 0 } count = 12 argvals = {{ i = 140737488339440 }, { i = 6525521 }, { i = 0 }, { i = 14316352 }, { i = 27216 }, { i = 13746040 }, { i = 0 }, { i = 14316352 }} #62 0x0000000000635a13 in Feval (form=..., lexical=...) at eval.c:1988 count = 11 #63 0x0000000000637d66 in Ffuncall (nargs=2, args=0x7fffffffc390) at eval.c:2696 internal_argbuf = {{ i = 18500259 }, { i = 0 }, { i = 140737488339696 }, { i = 14289136 }, { i = 23258208 }, { i = 6569068 }, { i = 140737488339728 }, { i = 5740786 }} fun = { i = 13746045 } original_fun = { i = 18144 } funcar = { i = 0 } numargs = 1 lisp_numargs = { i = 18500259 } val = { i = 18500259 } internal_args = 0x7fffffffc2c0 count = 10 #64 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffffcb48) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 8 op = 1 vectorp = 0xad11d8 <pure+1224088> stack = { pc = 0xc9ed21 <pure+3115233> "\210\202L\003\016A权\317\001\313\347\350\016C\"\003\206m\001\n\211A\022\242\211\262\r\313\332\036D\322\003\003\003#)\266\203\203\211\001\006\n\327\313O\262\vڲ\001\351\352\006\f!!\262\v\211\203\252\001\314\016E\006\fC\"\026E\006\t\203\313\001\016E\262\n\202\313\001\006\t\203\301\001\006\t\006\v\006\vAB\241\210\006\tA\262\n\202\313\001\006\n\016EB\211\026E\262\n\210\202L\003\016A띃\367\001\352\002\206\340\001\n\211A\022\242!\351\001!\354\001!\203\355\001\211\262\002\355\002\313\332#\266\003\202L\003\016A\027\002\352\002\206\b\002\n\211A\022\242!\351\001!\355\001\313ډ$\266\003\202L\003\016", <incomplete sequence \357\232>..., byte_string = { i = 11342260 }, byte_string_start = 0xc9ebce <pure+3114894> "\306 \210\b\203\021", next = 0x7fffffffd180 } top = 0x7fffffffc390 result = { i = 0 } type = CATCHER #65 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffffcb40) at eval.c:2855 size = 5 val = { i = 11342213 } syms_left = { i = 1030 } next = { i = 64424495632 } lexenv = { i = 140737488341552 } count = 8 i = 60143831280 optional = false rest = false #66 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffffcb38) at eval.c:2742 fun = { i = 11342213 } original_fun = { i = 9027824 } funcar = { i = 28191699 } numargs = 1 lisp_numargs = { i = 14936768 } val = { i = 45936 } internal_args = 0x61560f <find_symbol_value+337> count = 7 #67 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0, args=0x7fffffffd348) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 7 op = 1 vectorp = 0xacb7e8 <pure+1201064> stack = { pc = 0xca176d <pure+3126061> "\210\307\016@\211\203k\006\211@\002\204d\006\211;\203d\006\201", <incomplete sequence \316>, byte_string = { i = 11319236 }, byte_string_start = 0xca114c <pure+3124492> "\306 \020\307\021\n\023\307\024\310\311!\211\307=\204\060", next = 0x7fffffffd940 } top = 0x7fffffffcb38 result = { i = 28191699 } type = CONDITION_CASE #68 0x000000000063873d in funcall_lambda (fun=..., nargs=0, arg_vector=0x7fffffffd348) at eval.c:2855 size = 5 val = { i = 11319189 } syms_left = { i = 2 } next = { i = 60143277141 } lexenv = { i = 140737488343600 } count = 7 i = 60143831280 optional = false rest = false #69 0x0000000000637fbb in Ffuncall (nargs=1, args=0x7fffffffd340) at eval.c:2742 fun = { i = 11319189 } original_fun = { i = 9025296 } funcar = { i = 18594869 } numargs = 0 lisp_numargs = { i = 43248 } val = { i = 18594869 } internal_args = 0x61560f <find_symbol_value+337> count = 6 #70 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0, args=0x7fffffffda20) at bytecode.c:880 targets = {0x68989f <exec_byte_code+18714>, 0x68990c <exec_byte_code+18823>, 0x68990e <exec_byte_code+18825>, 0x689910 <exec_byte_code+18827>, 0x689912 <exec_byte_code+18829>, 0x689912 <exec_byte_code+18829>, 0x689978 <exec_byte_code+18931>, 0x6899e8 <exec_byte_code+19043>, 0x685480 <exec_byte_code+1275>, 0x685482 <exec_byte_code+1277>, 0x685484 <exec_byte_code+1279>, 0x685486 <exec_byte_code+1281>, 0x685488 <exec_byte_code+1283>, 0x685488 <exec_byte_code+1283>, 0x685491 <exec_byte_code+1292>, 0x68544b <exec_byte_code+1222>, 0x685a8d <exec_byte_code+2824>, 0x685a8f <exec_byte_code+2826>, 0x685a91 <exec_byte_code+2828>, 0x685a93 <exec_byte_code+2830>, 0x685a95 <exec_byte_code+2832>, 0x685a95 <exec_byte_code+2832>, 0x685ad3 <exec_byte_code+2894>, 0x685a9e <exec_byte_code+2841>, 0x685da3 <exec_byte_code+3614>, 0x685da5 <exec_byte_code+3616>, 0x685da7 <exec_byte_code+3618>, 0x685da9 <exec_byte_code+3620>, 0x685dab <exec_byte_code+3622>, 0x685dab <exec_byte_code+3622>, 0x685d54 <exec_byte_code+3535>, 0x685d6e <exec_byte_code+3561>, 0x685e66 <exec_byte_code+3809>, 0x685e68 <exec_byte_code+3811>, 0x685e6a <exec_byte_code+3813>, 0x685e6c <exec_byte_code+3815>, 0x685e6e <exec_byte_code+3817>, 0x685e6e <exec_byte_code+3817>, 0x685e17 <exec_byte_code+3730>, 0x685e31 <exec_byte_code+3756>, 0x685f31 <exec_byte_code+4012>, 0x685f33 <exec_byte_code+4014>, 0x685f35 <exec_byte_code+4016>, 0x685f37 <exec_byte_code+4018>, 0x685f39 <exec_byte_code+4020>, 0x685f39 <exec_byte_code+4020>, 0x685ee2 <exec_byte_code+3933>, 0x685efc <exec_byte_code+3959>, 0x686eee <exec_byte_code+8041>, 0x686da0 <exec_byte_code+7707>, 0x686d94 <exec_byte_code+7695>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x687135 <exec_byte_code+8624>, 0x687260 <exec_byte_code+8923>, 0x6872ce <exec_byte_code+9033>, 0x68733d <exec_byte_code+9144>, 0x6873ad <exec_byte_code+9256>, 0x6858a8 <exec_byte_code+2339>, 0x685937 <exec_byte_code+2482>, 0x687435 <exec_byte_code+9392>, 0x6857c2 <exec_byte_code+2109>, 0x6859a6 <exec_byte_code+2593>, 0x6874ab <exec_byte_code+9510>, 0x68751a <exec_byte_code+9621>, 0x687563 <exec_byte_code+9694>, 0x6875d2 <exec_byte_code+9805>, 0x687628 <exec_byte_code+9891>, 0x68770a <exec_byte_code+10117>, 0x687753 <exec_byte_code+10190>, 0x6877c2 <exec_byte_code+10301>, 0x687854 <exec_byte_code+10447>, 0x68789d <exec_byte_code+10520>, 0x6878e6 <exec_byte_code+10593>, 0x687955 <exec_byte_code+10704>, 0x6879c4 <exec_byte_code+10815>, 0x687a33 <exec_byte_code+10926>, 0x687ac5 <exec_byte_code+11072>, 0x687b1b <exec_byte_code+11158>, 0x687b71 <exec_byte_code+11244>, 0x687c53 <exec_byte_code+11470>, 0x687ced <exec_byte_code+11624>, 0x687d87 <exec_byte_code+11778>, 0x688027 <exec_byte_code+12450>, 0x68809b <exec_byte_code+12566>, 0x68810f <exec_byte_code+12682>, 0x688183 <exec_byte_code+12798>, 0x6881f7 <exec_byte_code+12914>, 0x68824d <exec_byte_code+13000>, 0x6882eb <exec_byte_code+13158>, 0x688341 <exec_byte_code+13244>, 0x688397 <exec_byte_code+13330>, 0x6883ed <exec_byte_code+13416>, 0x688508 <exec_byte_code+13699>, 0x686c2b <exec_byte_code+7334>, 0x68856b <exec_byte_code+13798>, 0x6885b4 <exec_byte_code+13871>, 0x68868e <exec_byte_code+14089>, 0x6886f1 <exec_byte_code+14188>, 0x688754 <exec_byte_code+14287>, 0x68879d <exec_byte_code+14360>, 0x6887ef <exec_byte_code+14442>, 0x688841 <exec_byte_code+14524>, 0x68889b <exec_byte_code+14614>, 0x68989f <exec_byte_code+18714>, 0x6888f4 <exec_byte_code+14703>, 0x68893b <exec_byte_code+14774>, 0x688982 <exec_byte_code+14845>, 0x6889c9 <exec_byte_code+14916>, 0x688a10 <exec_byte_code+14987>, 0x688a57 <exec_byte_code+15058>, 0x686c2b <exec_byte_code+7334>, 0x68989f <exec_byte_code+18714>, 0x688aa0 <exec_byte_code+15131>, 0x688af4 <exec_byte_code+15215>, 0x688b3d <exec_byte_code+15288>, 0x688b86 <exec_byte_code+15361>, 0x688bf5 <exec_byte_code+15472>, 0x688c64 <exec_byte_code+15583>, 0x688cad <exec_byte_code+15656>, 0x688ddd <exec_byte_code+15960>, 0x688e4c <exec_byte_code+16071>, 0x688ebb <exec_byte_code+16182>, 0x688f2a <exec_byte_code+16293>, 0x688f71 <exec_byte_code+16364>, 0x68989f <exec_byte_code+18714>, 0x686b5f <exec_byte_code+7130>, 0x685fe2 <exec_byte_code+4189>, 0x685665 <exec_byte_code+1760>, 0x686109 <exec_byte_code+4484>, 0x686266 <exec_byte_code+4833>, 0x6863b4 <exec_byte_code+5167>, 0x686ae4 <exec_byte_code+7007>, 0x686b2a <exec_byte_code+7077>, 0x685cfd <exec_byte_code+3448>, 0x686bec <exec_byte_code+7271>, 0x686c5d <exec_byte_code+7384>, 0x686ce4 <exec_byte_code+7519>, 0x686d23 <exec_byte_code+7582>, 0x686f2d <exec_byte_code+8104>, 0x686fb5 <exec_byte_code+8240>, 0x687047 <exec_byte_code+8386>, 0x6870ab <exec_byte_code+8486>, 0x685f96 <exec_byte_code+4113>, 0x688fba <exec_byte_code+16437>, 0x68904c <exec_byte_code+16583>, 0x689095 <exec_byte_code+16656>, 0x6890de <exec_byte_code+16729>, 0x689127 <exec_byte_code+16802>, 0x689170 <exec_byte_code+16875>, 0x6891df <exec_byte_code+16986>, 0x68924e <exec_byte_code+17097>, 0x6892bd <exec_byte_code+17208>, 0x68932c <exec_byte_code+17319>, 0x6894b1 <exec_byte_code+17708>, 0x689520 <exec_byte_code+17819>, 0x68958f <exec_byte_code+17930>, 0x6895d8 <exec_byte_code+18003>, 0x689647 <exec_byte_code+18114>, 0x6896b6 <exec_byte_code+18225>, 0x689710 <exec_byte_code+18315>, 0x68976a <exec_byte_code+18405>, 0x688443 <exec_byte_code+13502>, 0x688499 <exec_byte_code+13588>, 0x6897c0 <exec_byte_code+18491>, 0x689830 <exec_byte_code+18603>, 0x68989f <exec_byte_code+18714>, 0x686502 <exec_byte_code+5501>, 0x6865fc <exec_byte_code+5751>, 0x686738 <exec_byte_code+6067>, 0x686874 <exec_byte_code+6383>, 0x6869ac <exec_byte_code+6695>, 0x68767e <exec_byte_code+9977>, 0x687bc7 <exec_byte_code+11330>, 0x688602 <exec_byte_code+13949>, 0x689a7f <exec_byte_code+19194>, 0x689af2 <exec_byte_code+19309>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689b8c <exec_byte_code+19463>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x68989f <exec_byte_code+18714>, 0x689c26 <exec_byte_code+19617> <repeats 64 times>} count = 5 op = 0 vectorp = 0xaca850 <pure+1197072> stack = { pc = 0xca1e51 <pure+3127825> "\210)\210\375\376\377\"\210\201H", byte_string = { i = 11315244 }, byte_string_start = 0xca1cdd <pure+3127453> "\b\203\b", next = 0x0 } top = 0x7fffffffd340 result = { i = 15079300 } type = CATCHER #71 0x000000000063873d in funcall_lambda (fun=..., nargs=0, arg_vector=0x7fffffffda20) at eval.c:2855 size = 5 val = { i = 140737488345584 } syms_left = { i = 2 } next = { i = 0 } lexenv = { i = 0 } count = 5 i = 0 optional = false rest = false #72 0x000000000063839c in apply_lambda (fun=..., args=..., count=4) at eval.c:2794 args_left = { i = 0 } i = 0 numargs = 0 arg_vector = 0x7fffffffda20 tem = { i = 0 } sa_avail = 16384 sa_count = 5 sa_must_free = false #73 0x0000000000636629 in eval_sub (form=...) at eval.c:2211 fun = { i = 11315197 } val = { i = 21474836480 } original_fun = { i = 8974768 } original_args = { i = 0 } funcar = { i = 0 } count = 4 argvals = {{ i = 140737488346080 }, { i = 6525521 }, { i = 0 }, { i = 14316352 }, { i = 27216 }, { i = 5740786 }, { i = 0 }, { i = 14316352 }} #74 0x0000000000635a13 in Feval (form=..., lexical=...) at eval.c:1988 count = 3 #75 0x00000000005838b8 in top_level_2 () at keyboard.c:1116 No locals. #76 0x0000000000633fcb in internal_condition_case (bfun=0x58389b <top_level_2>, handlers=..., hfun=0x583296 <cmd_error>) at eval.c:1309 val = { i = 18149064 } c = 0x114efc0 #77 0x00000000005838f9 in top_level_1 (ignore=...) at keyboard.c:1124 No locals. #78 0x0000000000633539 in internal_catch (tag=..., func=0x5838ba <top_level_1>, arg=...) at eval.c:1074 val = { i = 140737278924728 } c = 0x114ee90 #79 0x00000000005837f1 in command_loop () at keyboard.c:1085 No locals. #80 0x0000000000582d8d in recursive_edit_1 () at keyboard.c:692 count = 1 val = { i = 140737488346448 } #81 0x0000000000582f89 in Frecursive_edit () at keyboard.c:763 count = 0 buffer = { i = 0 } #82 0x0000000000580bfb in main (argc=4, argv=0x7fffffffdf38) at emacs.c:1626 dummy = { i = 4131212846 } stack_bottom_variable = -1 '\377' do_initial_setlocale = true dumping = false skip_args = 0 rlim = { rlim_cur = 8720000, rlim_max = 18446744073709551615 } no_loadup = false junk = 0x0 dname_arg = 0x0 ch_to_dir = 0x0 original_pwd = 0x0 Lisp Backtrace: "string-match" (0xffff5df8) "widget-documentation-string-value-create" (0xffff66d8) "widget-apply" (0xffff6828) "widget-default-create" (0xffff70b8) "widget-apply" (0xffff71e0) "widget-create-child-and-convert" (0xffff7978) "apply" (0xffff7b80) "widget-add-documentation-string-button" (0xffff8358) "custom-face-value-create" (0xffff8c38) "widget-apply" (0xffff8d88) "widget-default-create" (0xffff9618) "widget-apply" (0xffff9738) "widget-create" (0xffff9eb8) 0x145c310 PVEC_COMPILED "mapcar" (0xffffa8b0) "custom-buffer-create-internal" (0xffffb088) "custom-buffer-create" (0xffffb818) "customize-face" (0xffffbec0) "progn" (0xffffc120) "eval" (0xffffc398) "command-line-1" (0xffffcb40) "command-line" (0xffffd348) "normal-top-level" (0xffffda20) (gdb) backtrace #0 terminate_due_to_signal (sig=6, backtrace_limit=2147483647) at emacs.c:354 #1 0x00000000006122e6 in die (msg=0x732ed0 "CHAR_VALID_P (ch)", file=0x732ec4 "character.h", line=703) at alloc.c:7223 #2 0x000000000057c60d in char_table_translate (obj=..., ch=4195776) at character.h:703 #3 0x00000000005fe182 in re_search_2 (bufp=0xd76160 <searchbufs+5792>, str1=0x0, size1=0, str2=0x1ae6898 "‘\240’", size2=7, startpos=0, range=1, regs=0xd766f0 <search_regs>, stop=7) at regex.c:4370 #4 0x00000000005fdcef in re_search (bufp=0xd76160 <searchbufs+5792>, string=0x1ae6898 "‘\240’", size=7, startpos=0, range=7, regs=0xd766f0 <search_regs>) at regex.c:4228 #5 0x00000000005ea018 in string_match_1 (regexp=..., string=..., start=..., posix=false) at search.c:404 #6 0x00000000005ea18d in Fstring_match (regexp=..., string=..., start=...) at search.c:444 #7 0x0000000000637da1 in Ffuncall (nargs=3, args=0x7fffffff5df0) at eval.c:2700 #8 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffff66e0) at bytecode.c:880 #9 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffff66d8) at eval.c:2855 #10 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffff66d0) at eval.c:2742 #11 0x000000000063697b in Fapply (nargs=3, args=0x7fffffff66d0) at eval.c:2274 #12 0x000000000064631d in Fwidget_apply (nargs=2, args=0x7fffffff6828) at fns.c:2931 #13 0x0000000000637bef in Ffuncall (nargs=3, args=0x7fffffff6820) at eval.c:2673 #14 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffff70c0) at bytecode.c:880 #15 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffff70b8) at eval.c:2855 #16 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffff70b0) at eval.c:2742 #17 0x000000000063697b in Fapply (nargs=3, args=0x7fffffff70b0) at eval.c:2274 #18 0x000000000064631d in Fwidget_apply (nargs=2, args=0x7fffffff71e0) at fns.c:2931 #19 0x0000000000637bef in Ffuncall (nargs=3, args=0x7fffffff71d8) at eval.c:2673 #20 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=7, args=0x7fffffff7988) at bytecode.c:880 #21 0x000000000063873d in funcall_lambda (fun=..., nargs=7, arg_vector=0x7fffffff7978) at eval.c:2855 #22 0x0000000000637fbb in Ffuncall (nargs=8, args=0x7fffffff7970) at eval.c:2742 #23 0x0000000000636fb6 in Fapply (nargs=6, args=0x7fffffff7b80) at eval.c:2321 #24 0x0000000000637bef in Ffuncall (nargs=7, args=0x7fffffff7b78) at eval.c:2673 #25 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=3, args=0x7fffffff8360) at bytecode.c:880 #26 0x000000000063873d in funcall_lambda (fun=..., nargs=3, arg_vector=0x7fffffff8358) at eval.c:2855 #27 0x0000000000637fbb in Ffuncall (nargs=4, args=0x7fffffff8350) at eval.c:2742 #28 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffff8c40) at bytecode.c:880 #29 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffff8c38) at eval.c:2855 #30 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffff8c30) at eval.c:2742 #31 0x000000000063697b in Fapply (nargs=3, args=0x7fffffff8c30) at eval.c:2274 #32 0x000000000064631d in Fwidget_apply (nargs=2, args=0x7fffffff8d88) at fns.c:2931 #33 0x0000000000637bef in Ffuncall (nargs=3, args=0x7fffffff8d80) at eval.c:2673 #34 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffff9620) at bytecode.c:880 #35 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffff9618) at eval.c:2855 #36 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffff9610) at eval.c:2742 #37 0x000000000063697b in Fapply (nargs=3, args=0x7fffffff9610) at eval.c:2274 #38 0x000000000064631d in Fwidget_apply (nargs=2, args=0x7fffffff9738) at fns.c:2931 #39 0x0000000000637bef in Ffuncall (nargs=3, args=0x7fffffff9730) at eval.c:2673 #40 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=9, args=0x7fffffff9ec0) at bytecode.c:880 #41 0x000000000063873d in funcall_lambda (fun=..., nargs=9, arg_vector=0x7fffffff9eb8) at eval.c:2855 #42 0x0000000000637fbb in Ffuncall (nargs=10, args=0x7fffffff9eb0) at eval.c:2742 #43 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffffa680) at bytecode.c:880 #44 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffffa678) at eval.c:2855 #45 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffffa670) at eval.c:2742 #46 0x000000000063768c in call1 (fn=..., arg1=...) at eval.c:2552 #47 0x0000000000644f36 in mapcar1 (leni=1, vals=0x7fffffffa720, fn=..., seq=...) at fns.c:2522 #48 0x00000000006453c7 in Fmapcar (function=..., sequence=...) at fns.c:2587 #49 0x0000000000637d66 in Ffuncall (nargs=3, args=0x7fffffffa8a8) at eval.c:2696 #50 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=2, args=0x7fffffffb098) at bytecode.c:880 #51 0x000000000063873d in funcall_lambda (fun=..., nargs=2, arg_vector=0x7fffffffb088) at eval.c:2855 #52 0x0000000000637fbb in Ffuncall (nargs=3, args=0x7fffffffb080) at eval.c:2742 #53 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=2, args=0x7fffffffb828) at bytecode.c:880 #54 0x000000000063873d in funcall_lambda (fun=..., nargs=2, arg_vector=0x7fffffffb818) at eval.c:2855 #55 0x0000000000637fbb in Ffuncall (nargs=3, args=0x7fffffffb810) at eval.c:2742 #56 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffffbec8) at bytecode.c:880 #57 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffffbec0) at eval.c:2855 #58 0x000000000063839c in apply_lambda (fun=..., args=..., count=13) at eval.c:2794 #59 0x0000000000636629 in eval_sub (form=...) at eval.c:2211 #60 0x00000000006312fa in Fprogn (body=...) at eval.c:426 #61 0x0000000000636035 in eval_sub (form=...) at eval.c:2119 #62 0x0000000000635a13 in Feval (form=..., lexical=...) at eval.c:1988 #63 0x0000000000637d66 in Ffuncall (nargs=2, args=0x7fffffffc390) at eval.c:2696 #64 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=1, args=0x7fffffffcb48) at bytecode.c:880 #65 0x000000000063873d in funcall_lambda (fun=..., nargs=1, arg_vector=0x7fffffffcb40) at eval.c:2855 #66 0x0000000000637fbb in Ffuncall (nargs=2, args=0x7fffffffcb38) at eval.c:2742 #67 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0, args=0x7fffffffd348) at bytecode.c:880 #68 0x000000000063873d in funcall_lambda (fun=..., nargs=0, arg_vector=0x7fffffffd348) at eval.c:2855 #69 0x0000000000637fbb in Ffuncall (nargs=1, args=0x7fffffffd340) at eval.c:2742 #70 0x0000000000685ea8 in exec_byte_code (bytestr=..., vector=..., maxdepth=..., args_template=..., nargs=0, args=0x7fffffffda20) at bytecode.c:880 #71 0x000000000063873d in funcall_lambda (fun=..., nargs=0, arg_vector=0x7fffffffda20) at eval.c:2855 #72 0x000000000063839c in apply_lambda (fun=..., args=..., count=4) at eval.c:2794 #73 0x0000000000636629 in eval_sub (form=...) at eval.c:2211 #74 0x0000000000635a13 in Feval (form=..., lexical=...) at eval.c:1988 #75 0x00000000005838b8 in top_level_2 () at keyboard.c:1116 #76 0x0000000000633fcb in internal_condition_case (bfun=0x58389b <top_level_2>, handlers=..., hfun=0x583296 <cmd_error>) at eval.c:1309 #77 0x00000000005838f9 in top_level_1 (ignore=...) at keyboard.c:1124 #78 0x0000000000633539 in internal_catch (tag=..., func=0x5838ba <top_level_1>, arg=...) at eval.c:1074 #79 0x00000000005837f1 in command_loop () at keyboard.c:1085 #80 0x0000000000582d8d in recursive_edit_1 () at keyboard.c:692 #81 0x0000000000582f89 in Frecursive_edit () at keyboard.c:763 #82 0x0000000000580bfb in main (argc=4, argv=0x7fffffffdf38) at emacs.c:1626 Lisp Backtrace: "string-match" (0xffff5df8) "widget-documentation-string-value-create" (0xffff66d8) "widget-apply" (0xffff6828) "widget-default-create" (0xffff70b8) "widget-apply" (0xffff71e0) "widget-create-child-and-convert" (0xffff7978) "apply" (0xffff7b80) "widget-add-documentation-string-button" (0xffff8358) "custom-face-value-create" (0xffff8c38) "widget-apply" (0xffff8d88) "widget-default-create" (0xffff9618) "widget-apply" (0xffff9738) "widget-create" (0xffff9eb8) 0x145c310 PVEC_COMPILED "mapcar" (0xffffa8b0) "custom-buffer-create-internal" (0xffffb088) "custom-buffer-create" (0xffffb818) "customize-face" (0xffffbec0) "progn" (0xffffc120) "eval" (0xffffc398) "command-line-1" (0xffffcb40) "command-line" (0xffffd348) "normal-top-level" (0xffffda20) (gdb) In GNU Emacs 25.1.53 (x86_64-unknown-linux-gnu, GTK+ Version 3.10.8) of 2016-08-11 built on unknown Repository revision: d2db5dd8358f132252c8d11d40b1457615c43a57 Windowing system distributor 'The X.Org Foundation', version 11.0.11702000 System Description: Ubuntu 14.04 LTS Configured using: 'configure --enable-checking --enable-check-lisp-object-type 'CFLAGS=-g3 -O0 -gdwarf-4'' Configured features: XPM JPEG TIFF GIF PNG SOUND GSETTINGS NOTIFY GNUTLS FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 Important settings: value of $LANG: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-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 line-number-mode: t transient-mark-mode: t Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message dired format-spec rfc822 mml mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util help-fns help-mode easymenu cl-loaddefs pcase cl-lib mail-prsvr mail-utils time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd 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 inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 88111 5027) (symbols 48 19695 0) (miscs 40 298 147) (strings 32 14560 4939) (string-bytes 1 425838) (vectors 16 12636) (vector-slots 8 440301 4619) (floats 8 164 22) (intervals 56 196 0) (buffers 976 20) (heap 1024 40436 1149))
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Thu, 11 Aug 2016 20:06:01 GMT) Full text and rfc822 format available.Message #8 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Phil <p.stephani2 <at> gmail.com> Cc: 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Thu, 11 Aug 2016 23:05:08 +0300
> From: Phil <p.stephani2 <at> gmail.com> > Date: Thu, 11 Aug 2016 11:55:05 -0700 > > > Build is from the emacs-25 branch. > > $ ./emacs -Q -eval "(progn (defface test nil \"\`\\240'\") (customize-face 'test))" > > character.h:703: Emacs fatal error: assertion failed: CHAR_VALID_P (ch) > Fatal error 6: Aborted > > I think this is serious enough to be release-blocking. Seen in the wild > with older versions of show-wspace.el. Please show the real-life example where this rears its ugly head. The recipe (which is appreciated) is obscure enough to be easily avoided, so it doesn't yet convince me this should block a release. There's always one more crash out there. Thanks.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Thu, 11 Aug 2016 23:52:01 GMT) Full text and rfc822 format available.Message #11 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Philipp Stephani <p.stephani2 <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Thu, 11 Aug 2016 23:51:41 +0000
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> schrieb am Do., 11. Aug. 2016 um 13:05 Uhr: > > From: Phil <p.stephani2 <at> gmail.com> > > Date: Thu, 11 Aug 2016 11:55:05 -0700 > > > > > > Build is from the emacs-25 branch. > > > > $ ./emacs -Q -eval "(progn (defface test nil \"\`\\240'\") > (customize-face 'test))" > > > > character.h:703: Emacs fatal error: assertion failed: CHAR_VALID_P (ch) > > Fatal error 6: Aborted > > > > I think this is serious enough to be release-blocking. Seen in the wild > > with older versions of show-wspace.el. > > Please show the real-life example where this rears its ugly head. The > recipe (which is appreciated) is obscure enough to be easily avoided, > so it doesn't yet convince me this should block a release. There's > always one more crash out there. > > Ubuntu Trusty Tahr (supported until 2019) contains a package emacs-goodies-el, which contains a file show-wspace.el, which contains a face with the docstring "*Face for highlighting non-breaking spaces (`\240')in Font-Lock mode." Attempting to customize that face leads to the segfault.
[Message part 2 (text/html, inline)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Sat, 13 Aug 2016 08:34:02 GMT) Full text and rfc822 format available.Message #14 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Philipp Stephani <p.stephani2 <at> gmail.com>, John Wiegley <johnw <at> gnu.org> Cc: 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sat, 13 Aug 2016 11:32:47 +0300
> From: Philipp Stephani <p.stephani2 <at> gmail.com> > Date: Thu, 11 Aug 2016 23:51:41 +0000 > Cc: 24206 <at> debbugs.gnu.org > > Eli Zaretskii <eliz <at> gnu.org> schrieb am Do., 11. Aug. 2016 um 13:05 Uhr: > > > From: Phil <p.stephani2 <at> gmail.com> > > Date: Thu, 11 Aug 2016 11:55:05 -0700 > > > > > > Build is from the emacs-25 branch. > > > > $ ./emacs -Q -eval "(progn (defface test nil \"\`\\240'\") (customize-face 'test))" > > > > character.h:703: Emacs fatal error: assertion failed: CHAR_VALID_P (ch) > > Fatal error 6: Aborted > > > > I think this is serious enough to be release-blocking. Seen in the wild > > with older versions of show-wspace.el. > > Please show the real-life example where this rears its ugly head. The > recipe (which is appreciated) is obscure enough to be easily avoided, > so it doesn't yet convince me this should block a release. There's > always one more crash out there. > > Ubuntu Trusty Tahr (supported until 2019) contains a package emacs-goodies-el, which contains a file > show-wspace.el, which contains a face with the docstring "*Face for highlighting non-breaking spaces > (`\240')in Font-Lock mode." Attempting to customize that face leads to the segfault. John, do you want us to wait with the next RC until this is fixed?
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Sat, 13 Aug 2016 12:26:02 GMT) Full text and rfc822 format available.Message #17 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Nicolas Petton <nicolas <at> petton.fr> To: Eli Zaretskii <eliz <at> gnu.org>, Philipp Stephani <p.stephani2 <at> gmail.com>, John Wiegley <johnw <at> gnu.org> Cc: 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sat, 13 Aug 2016 14:25:11 +0200
[Message part 1 (text/plain, inline)]
Eli Zaretskii <eliz <at> gnu.org> writes: > John, do you want us to wait with the next RC until this is fixed? I'll wait for your decision regarding this issue. Cheers, Nico
[signature.asc (application/pgp-signature, inline)]
Paul Eggert <eggert <at> cs.ucla.edu>
:Phil <p.stephani2 <at> gmail.com>
:Message #22 received at 24206-done <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Phil <p.stephani2 <at> gmail.com> Cc: Eli Zaretskii <eliz <at> gnu.org>, John Wiegley <johnw <at> gnu.org>, Nicolas Petton <nicolas <at> petton.fr>, 24206-done <at> debbugs.gnu.org Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sat, 13 Aug 2016 23:54:43 -0500
[Message part 1 (text/plain, inline)]
Thanks forreporting that, Phil. Ituncovered several bugs in substitute-command-keys,some predating the curved-quote changes in Emacs 25. I installed a patch into Emacs master as commit 2791580f5eaa65948a13ea4ea4952d03b4da795b and am closing the bug as fixed. For Emacs 25 I propose installing the attached patch, which should avoid the emacs-goodies-el problem though it does not fix the other (presumably less-likely) bugs in this area. This patch is considerably simpler than what I just installed into master.
[0001-Fix-core-dump-with-unibyte-substitute-command-keys.patch (text/x-patch, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Sun, 14 Aug 2016 06:34:01 GMT) Full text and rfc822 format available.Message #25 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: John Wiegley <jwiegley <at> gmail.com> To: Nicolas Petton <nicolas <at> petton.fr> Cc: Eli Zaretskii <eliz <at> gnu.org>, Philipp Stephani <p.stephani2 <at> gmail.com>, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sat, 13 Aug 2016 23:33:08 -0700
[Message part 1 (text/plain, inline)]
>>>>> Nicolas Petton <nicolas <at> petton.fr> writes: > Eli Zaretskii <eliz <at> gnu.org> writes: >> John, do you want us to wait with the next RC until this is fixed? > I'll wait for your decision regarding this issue. Yes, let's wait. -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2
[signature.asc (application/pgp-signature, inline)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Sun, 14 Aug 2016 14:29:02 GMT) Full text and rfc822 format available.Message #28 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sun, 14 Aug 2016 17:27:14 +0300
> Cc: 24206-done <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>, > John Wiegley <johnw <at> gnu.org>, Nicolas Petton <nicolas <at> petton.fr> > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Sat, 13 Aug 2016 23:54:43 -0500 > > Thanks forreporting that, Phil. Ituncovered several bugs in > substitute-command-keys,some predating the curved-quote changes in Emacs > 25. I installed a patch into Emacs master as commit > 2791580f5eaa65948a13ea4ea4952d03b4da795b and am closing the bug as fixed. > > For Emacs 25 I propose installing the attached patch, which should avoid > the emacs-goodies-el problem though it does not fix the other > (presumably less-likely) bugs in this area. This patch is considerably > simpler than what I just installed into master. Thanks for fixing this. However, I'm not sure I agree with the fix: it looks like it loses support for unibyte strings in substitute-command-keys? If so, I don't think we should go that way: Emacs in general tries to support both unibyte and multibyte strings alike in all the primitives that handle strings (with the obvious exception of encoding and decoding them), so losing that here would be a regression. Isn't it true that the problem was in this fragment: else if ((strp[0] == '`' || strp[0] == '\'') && quoting_style == CURVE_QUOTING_STYLE) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); length = 1; length_byte = sizeof uLSQM - 1; idx = strp - SDATA (string) + 1; goto subst_quote; } The "length = 1" part is only correct if the argument string is multibyte, and should otherwise count the number of bytes in uLSQM/uRSQ, right? If this is not the reason for the crash, could you please describe the reason(s) in more detail, so that we could try to find a solution that doesn't lose unibyte string support?
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Sun, 14 Aug 2016 14:52:02 GMT) Full text and rfc822 format available.Message #31 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sun, 14 Aug 2016 09:51:43 -0500
On 08/14/2016 09:27 AM, Eli Zaretskii wrote: > The "length = 1" part is only correct if the argument string is > multibyte, and should otherwise count the number of bytes in > uLSQM/uRSQ, right? This string is by definition multibyte at that point, since that part of the code is inserting a Unicode character that is not ASCII. More generally, Fsubstitute_command_keys is quite confused about unibyte versus multibyte issues. It merges together a number of strings, and assumes that they are all multibyte iff the original string is multibyte, which is obviously not true in general. (This problem is not limited to the requoting part of the code.) In master, I've altered the implementation to always generate either the original string, or an ASCII string, or a multibyte string. Since substitute-command-keys is not intended to be used on encoded unibyte text, that's good enough.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Sun, 14 Aug 2016 15:22:01 GMT) Full text and rfc822 format available.Message #34 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Dmitry Gutov <dgutov <at> yandex.ru> To: 24206 <at> debbugs.gnu.org, eggert <at> cs.ucla.edu, p.stephani2 <at> gmail.com Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sun, 14 Aug 2016 18:21:29 +0300
On 08/14/2016 07:54 AM, Paul Eggert wrote: > Thanks forreporting that, Phil. Ituncovered several bugs in > substitute-command-keys,some predating the curved-quote changes in Emacs > 25. So much for "this is a simple feature that's easy to implement in C". Could you please at least add some tests corresponding to the fix? Instead of just hoping that nobody breaks it later.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Sun, 14 Aug 2016 17:20:01 GMT) Full text and rfc822 format available.Message #37 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sun, 14 Aug 2016 20:18:18 +0300
> Cc: p.stephani2 <at> gmail.com, 24206 <at> debbugs.gnu.org, johnw <at> gnu.org, > nicolas <at> petton.fr > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Sun, 14 Aug 2016 09:51:43 -0500 > > On 08/14/2016 09:27 AM, Eli Zaretskii wrote: > > The "length = 1" part is only correct if the argument string is > > multibyte, and should otherwise count the number of bytes in > > uLSQM/uRSQ, right? > > This string is by definition multibyte at that point, since that part of > the code is inserting a Unicode character that is not ASCII. Sorry, I don't understand what you are saying. The sequence of bytes "\xE2\x80\x98" can be either a sequence of unibyte bytes or a single multibyte character, depending on whether a string it is in is unibyte or multibyte. More generally, a Lisp string with the same sequence of bytes as its data can be treated either as unibyte or as multibyte, I'm sure you know that. Its multibyteness is entirely in Emacs's imagination. > More generally, Fsubstitute_command_keys is quite confused about unibyte > versus multibyte issues. It merges together a number of strings, and > assumes that they are all multibyte iff the original string is > multibyte, which is obviously not true in general. Could you please point out the specific places where this is done? Because I'm not sure I agree with your interpretation. (Let's use the code on emacs-25, where it was still not changed, for the purposes of this discussion.) Thanks.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Sun, 14 Aug 2016 17:23:02 GMT) Full text and rfc822 format available.Message #40 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sun, 14 Aug 2016 20:21:43 +0300
> Cc: 24206-done <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>, > John Wiegley <johnw <at> gnu.org>, Nicolas Petton <nicolas <at> petton.fr> > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Sat, 13 Aug 2016 23:54:43 -0500 > > For Emacs 25 I propose installing the attached patch, which should avoid > the emacs-goodies-el problem though it does not fix the other > (presumably less-likely) bugs in this area. This patch is considerably > simpler than what I just installed into master. Paul, would you agree with the following alternative patch for the release branch? Phil, is the recipe you presented in this bug _exactly_ what emacs-goodies-el does? If not, could you please see if the proposed patch below fixes the real-life use case as well, and if not, show that use case? TIA. diff --git a/src/doc.c b/src/doc.c index 7cdb0d0..bba30b4 100644 --- a/src/doc.c +++ b/src/doc.c @@ -965,7 +965,8 @@ Otherwise, return a new string. */) } } else if ((strp[0] == '`' || strp[0] == '\'') - && quoting_style == CURVE_QUOTING_STYLE) + && quoting_style == CURVE_QUOTING_STYLE + && multibyte) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); length = 1;
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Sun, 14 Aug 2016 20:18:02 GMT) Full text and rfc822 format available.Message #43 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sun, 14 Aug 2016 15:16:47 -0500
On 08/14/2016 12:21 PM, Eli Zaretskii wrote: > Paul, would you agree with the following alternative patch for the > release branch? Sure, that patch should also prevent crash that initiated this bug report (though it does not fix the problem in general). Please mark it with "Do not merge to master".
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 01:13:02 GMT) Full text and rfc822 format available.Message #46 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sun, 14 Aug 2016 18:12:25 -0700
Paul Eggert wrote: > On 08/14/2016 12:21 PM, Eli Zaretskii wrote: >> Paul, would you agree with the following alternative patch for the >> release branch? > > Sure, that patch should also prevent crash that initiated this bug report > (though it does not fix the problem in general). Please mark it with "Do not > merge to master". > Whoops, I spoke too soon. Although your patch would prevent the crash, it has the unfortunate side effect of almost always disabling text-quoting-style, as the input to substitute-command-keys is normally not multibyte. So we really need some other fix, such as the one in <http://bugs.gnu.org/24206#22>.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 01:54:01 GMT) Full text and rfc822 format available.Message #49 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Dmitry Gutov <dgutov <at> yandex.ru>, 24206 <at> debbugs.gnu.org, p.stephani2 <at> gmail.com Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sun, 14 Aug 2016 18:53:22 -0700
Dmitry Gutov wrote: > So much for "this is a simple feature that's easy to implement in C". :-) In my defense, my error was assuming that the original C implementation was correct, and copying its mistakes in my additions.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 01:58:01 GMT) Full text and rfc822 format available.Message #52 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Dmitry Gutov <dgutov <at> yandex.ru> To: Paul Eggert <eggert <at> cs.ucla.edu>, 24206 <at> debbugs.gnu.org, p.stephani2 <at> gmail.com Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Mon, 15 Aug 2016 04:57:38 +0300
On 08/15/2016 04:53 AM, Paul Eggert wrote: > :-) In my defense, my error was assuming that the original C > implementation was correct, and copying its mistakes in my additions. Is it possible to trigger a segfault in the previous version, too?
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 02:05:01 GMT) Full text and rfc822 format available.Message #55 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sun, 14 Aug 2016 19:04:42 -0700
Eli Zaretskii wrote: > Its multibyteness is entirely in Emacs's imagination. Sure, but Emacs should not substitute "\342\200\230" for "`". The point of text-quoting-style is to substitute quotes, not byte string encodings of quotes. >> > More generally, Fsubstitute_command_keys is quite confused about unibyte >> > versus multibyte issues. It merges together a number of strings, and >> > assumes that they are all multibyte iff the original string is >> > multibyte, which is obviously not true in general. > Could you please point out the specific places where this is done? OK, here's a contrived example. Run this code in emacs-25: (progn (setq km (make-keymap)) (define-key km "≠" 'global-set-key) (substitute-command-keys "\200\\<km>\\[global-set-key]")) This should return a 2-character string equal to "\200≠". But in Emacs 25 it dumps core, at least on my platform (Fedora 23 x86-64). And in Emacs 24 on my platform it returns a malformed string that prints as "\242\1340" but has length 2. I suppose we could make Emacs 24 dump core too, though I haven't tried hard to do that. The problem is that the older Emacs code incorrectly assumes that the output of substitution must be properly-encoded if the substitution changes something. This assumption can fail if the input is unibyte and contains bytes that are not properly-encoded for UTF-8. (There are other ways the assumption can fail.)
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 02:06:02 GMT) Full text and rfc822 format available.Message #58 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Dmitry Gutov <dgutov <at> yandex.ru>, 24206 <at> debbugs.gnu.org, p.stephani2 <at> gmail.com Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Sun, 14 Aug 2016 19:05:35 -0700
Dmitry Gutov wrote: > Is it possible to trigger a segfault in the previous version, too? I haven't tried hard to do that. My guess is that one can make Emacs abort, though.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 16:11:01 GMT) Full text and rfc822 format available.Message #61 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Mon, 15 Aug 2016 19:09:40 +0300
> Cc: p.stephani2 <at> gmail.com, 24206 <at> debbugs.gnu.org, johnw <at> gnu.org, > nicolas <at> petton.fr > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Sun, 14 Aug 2016 19:04:42 -0700 > > Eli Zaretskii wrote: > > Its multibyteness is entirely in Emacs's imagination. > > Sure, but Emacs should not substitute "\342\200\230" for "`". The point of > text-quoting-style is to substitute quotes, not byte string encodings of quotes. I'm not sure. We never discussed what should Emacs do when substitute-command-keys is called on a unibyte non-ASCII string which requires quote substitution. Other substitutions, including those that produce ASCII quote characters, previously would leave the unibyte string unibyte. But with your changes, any substitution converts the string into multibyte: (multibyte-string-p (substitute-command-keys "\200\\[goto-char]")) => t I think this is might be a subtle regression, because some code might just find itself mixing multibyte and unibyte strings where previously there were only unibyte strings. > >> > More generally, Fsubstitute_command_keys is quite confused about unibyte > >> > versus multibyte issues. It merges together a number of strings, and > >> > assumes that they are all multibyte iff the original string is > >> > multibyte, which is obviously not true in general. > > Could you please point out the specific places where this is done? > > OK, here's a contrived example. Run this code in emacs-25: > > (progn > (setq km (make-keymap)) > (define-key km "≠" 'global-set-key) > (substitute-command-keys "\200\\<km>\\[global-set-key]")) > > This should return a 2-character string equal to "\200≠". I'm not sure your expectations are correct: as the original string is unibyte, the output of "\200≠", which is multibyte, might not be what the users expect. They might expect "\200\342\211\240" instead. > But in Emacs 25 it dumps core, at least on my platform (Fedora 23 > x86-64). And in Emacs 24 on my platform it returns a malformed > string that prints as "\242\1340" but has length 2. I suppose we > could make Emacs 24 dump core too, though I haven't tried hard to do > that. The errors are easily fixed, though. Below I show 2 patches. The first one should go to master (after reverting yours), and IMO is also safe enough for emacs-25. But if it is deemed not safe enough for the release, the second patch is safer. The second patch doesn't produce "\200≠" in your test case, but neither did Emacs 24, so this is not a regression. Comments? Let's decide on what to do with emacs-25 first, since that blocks the release, and then discuss master if needed. Thanks. --- src/doc.c~0 2016-06-20 08:49:44.000000000 +0300 +++ src/doc.c 2016-08-15 11:24:07.894579900 +0300 @@ -738,8 +738,9 @@ Otherwise, return a new string. */) unsigned char const *start; ptrdiff_t length, length_byte; Lisp_Object name; - bool multibyte; + bool multibyte, pure_ascii; ptrdiff_t nchars; + Lisp_Object orig_string = Qnil; if (NILP (string)) return Qnil; @@ -752,6 +753,20 @@ Otherwise, return a new string. */) enum text_quoting_style quoting_style = text_quoting_style (); multibyte = STRING_MULTIBYTE (string); + /* Pure-ASCII unibyte input strings should produce unibyte strings + if substitution doesn't yield non-ASCII bytes, otherwise they + should produce multibyte strings. */ + pure_ascii = SBYTES (string) == count_size_as_multibyte (SDATA (string), + SCHARS (string)); + /* If the input string is unibyte and includes non-ASCII characters, + make a multibyte copy, so as to be able to return the original + unibyte string if no substitution eventually happens. */ + if (!multibyte && !pure_ascii) + { + orig_string = string; + string = Fstring_make_multibyte (Fcopy_sequence (string)); + multibyte = true; + } nchars = 0; /* KEYMAP is either nil (which means search all the active keymaps) @@ -933,8 +948,8 @@ Otherwise, return a new string. */) subst_string: start = SDATA (tem); - length = SCHARS (tem); length_byte = SBYTES (tem); + length = SCHARS (tem); subst: nonquotes_changed = true; subst_quote: @@ -956,8 +971,8 @@ Otherwise, return a new string. */) && quoting_style == CURVE_QUOTING_STYLE) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); - length = 1; length_byte = sizeof uLSQM - 1; + length = 1; idx = strp - SDATA (string) + 1; goto subst_quote; } @@ -995,6 +1010,8 @@ Otherwise, return a new string. */) } } } + else if (!NILP (orig_string)) + tem = orig_string; else tem = string; xfree (buf); --- src/doc.c~0 2016-06-20 08:49:44.000000000 +0300 +++ src/doc.c 2016-08-15 11:13:15.132137200 +0300 @@ -738,7 +738,7 @@ Otherwise, return a new string. */) unsigned char const *start; ptrdiff_t length, length_byte; Lisp_Object name; - bool multibyte; + bool multibyte, pure_ascii; ptrdiff_t nchars; if (NILP (string)) @@ -752,6 +752,11 @@ Otherwise, return a new string. */) enum text_quoting_style quoting_style = text_quoting_style (); multibyte = STRING_MULTIBYTE (string); + /* Pure-ASCII unibyte input strings should produce unibyte strings + if substitution doesn't yield non-ASCII bytes, otherwise they + should produce multibyte strings. */ + pure_ascii = SBYTES (string) == count_size_as_multibyte (SDATA (string), + SCHARS (string)); nchars = 0; /* KEYMAP is either nil (which means search all the active keymaps) @@ -933,8 +938,11 @@ Otherwise, return a new string. */) subst_string: start = SDATA (tem); - length = SCHARS (tem); length_byte = SBYTES (tem); + if (multibyte || pure_ascii) + length = SCHARS (tem); + else + length = length_byte; subst: nonquotes_changed = true; subst_quote: @@ -956,8 +964,11 @@ Otherwise, return a new string. */) && quoting_style == CURVE_QUOTING_STYLE) { start = (unsigned char const *) (strp[0] == '`' ? uLSQM : uRSQM); - length = 1; length_byte = sizeof uLSQM - 1; + if (multibyte || pure_ascii) + length = 1; + else + length = length_byte; idx = strp - SDATA (string) + 1; goto subst_quote; }
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 16:47:02 GMT) Full text and rfc822 format available.Message #64 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Andreas Schwab <schwab <at> linux-m68k.org> To: Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, Paul Eggert <eggert <at> cs.ucla.edu>, nicolas <at> petton.fr, johnw <at> gnu.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Mon, 15 Aug 2016 18:46:19 +0200
On Aug 15 2016, Eli Zaretskii <eliz <at> gnu.org> wrote: > I'm not sure. We never discussed what should Emacs do when > substitute-command-keys is called on a unibyte non-ASCII string which > requires quote substitution. Unibyte strings should not be used for anything but pre-decoding / post-encoding situations directly after / before doing the actual I/O operation. Thus substitute-command-keys should never be called with an undecoded unibyte string. IMHO it would be ok to return something useless in this case (but it shouldn't cause Emacs to crash, of course). Andreas. -- Andreas Schwab, schwab <at> linux-m68k.org GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5 "And now for something completely different."
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 18:44:01 GMT) Full text and rfc822 format available.Message #67 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Andreas Schwab <schwab <at> linux-m68k.org>, Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Mon, 15 Aug 2016 11:43:16 -0700
[Message part 1 (text/plain, inline)]
Andreas Schwab wrote: > Unibyte strings should not be used for anything but pre-decoding / > post-encoding situations directly after / before doing the actual I/O > operation. Thus substitute-command-keys should never be called with an > undecoded unibyte string. IMHO it would be ok to return something > useless in this case (but it shouldn't cause Emacs to crash, of course). Yes. This is in the Elisp manual, which says "We recommend that you never use unibyte buffers and strings except for manipulating encoded text or binary non-text data." Eli Zaretskii wrote: > as the original string is > unibyte, the output of "\200≠", which is multibyte, might not be what > the users expect. They might expect "\200\342\211\240" instead. No, as per Andreas's comment and the Elisp reference manual, users should not expect substitute-command-keys to do that. As long as it doesn't crash on non-ASCII unibyte data we needn't sweat the details about whether it returns unibyte or multibyte strings for such data. That being said, it shouldn't hurt to return the original string if there is no substitution. Although I think your first patch in <http://bugs.gnu.org/24206#61> should work, it'd be safer and simpler to backport that part of master, as in the attached patch to emacs-25.
[0001-Fix-core-dump-with-unibyte-substitute-command-keys.patch (text/x-diff, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 18:53:02 GMT) Full text and rfc822 format available.Message #70 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Andreas Schwab <schwab <at> linux-m68k.org> Cc: p.stephani2 <at> gmail.com, eggert <at> cs.ucla.edu, nicolas <at> petton.fr, johnw <at> gnu.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Mon, 15 Aug 2016 21:51:37 +0300
> From: Andreas Schwab <schwab <at> linux-m68k.org> > Cc: Paul Eggert <eggert <at> cs.ucla.edu>, p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org > Date: Mon, 15 Aug 2016 18:46:19 +0200 > > Unibyte strings should not be used for anything but pre-decoding / > post-encoding situations directly after / before doing the actual I/O > operation. Thus substitute-command-keys should never be called with an > undecoded unibyte string. IMHO it would be ok to return something > useless in this case (but it shouldn't cause Emacs to crash, of course). I mostly agree, but there's one situation where the above cannot hold: during startup, before Emacs sets up its encoding/decoding machinery and defaults, and decodes the relevant variables (such as load-path) after that. Until that is done, we cannot have multibyte strings in Emacs, because we don't know how to decode them. During that short period, Emacs still calls various primitives that manipulate strings, and they need to work with unibyte strings, because Emacs must be able to start up in directories with non-ASCII names. Granted, substitute-command-keys are not supposed to be called during that period. Or at least I think so. But who knows? We definitely call it when we construct the menu-bar menus, and some user could perhaps cause it to be called in some startup hook. So I'm okay with changing the output for unibyte strings on master, but I think emacs-25 should not produce multibyte strings from substitute-command-keys more eagerly than previous versions.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 19:05:02 GMT) Full text and rfc822 format available.Message #73 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, schwab <at> linux-m68k.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Mon, 15 Aug 2016 22:04:18 +0300
> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, > 24206 <at> debbugs.gnu.org > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Mon, 15 Aug 2016 11:43:16 -0700 > > Yes. This is in the Elisp manual, which says "We recommend that > you never use unibyte buffers and strings except for manipulating > encoded text or binary non-text data." That advice is for Lisp programmers, so it's only tangentially relevant in this case. > Eli Zaretskii wrote: > > as the original string is > > unibyte, the output of "\200≠", which is multibyte, might not be what > > the users expect. They might expect "\200\342\211\240" instead. > > No, as per Andreas's comment and the Elisp reference manual, users should not > expect substitute-command-keys to do that. We still want them to be as little surprised as possible, do we? > As long as it doesn't crash on non-ASCII unibyte data we needn't > sweat the details about whether it returns unibyte or multibyte > strings for such data. I explained why this cannot be 100% true. So I'd like to avoid converting unibyte strings to multibyte as much as reasonably possible.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 19:06:01 GMT) Full text and rfc822 format available.Message #76 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: John Wiegley <jwiegley <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, eggert <at> cs.ucla.edu, Andreas Schwab <schwab <at> linux-m68k.org>, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Mon, 15 Aug 2016 12:05:44 -0700
>>>>> Eli Zaretskii <eliz <at> gnu.org> writes: > So I'm okay with changing the output for unibyte strings on master, but I > think emacs-25 should not produce multibyte strings from > substitute-command-keys more eagerly than previous versions. Very much agreed. -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Mon, 15 Aug 2016 20:42:01 GMT) Full text and rfc822 format available.Message #79 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Eli Zaretskii <eliz <at> gnu.org>, Andreas Schwab <schwab <at> linux-m68k.org> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Mon, 15 Aug 2016 13:41:44 -0700
Eli Zaretskii wrote: > So I'm okay with changing the output for unibyte strings on master, > but I think emacs-25 should not produce multibyte strings from > substitute-command-keys more eagerly than previous versions. OK, in that case the emacs-25 patch just I proposed should suffice <http://bugs.gnu.org/24206#67>.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 14:40:02 GMT) Full text and rfc822 format available.Message #82 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, schwab <at> linux-m68k.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 17:38:50 +0300
> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, nicolas <at> petton.fr, > 24206 <at> debbugs.gnu.org > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Mon, 15 Aug 2016 13:41:44 -0700 > > Eli Zaretskii wrote: > > So I'm okay with changing the output for unibyte strings on master, > > but I think emacs-25 should not produce multibyte strings from > > substitute-command-keys more eagerly than previous versions. > > OK, in that case the emacs-25 patch just I proposed should suffice > <http://bugs.gnu.org/24206#67>. Thanks, I preferred to install one of the 2 patches I posted yesterday. The emacs-25 branch is ready for another RC, from my POV.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 14:54:02 GMT) Full text and rfc822 format available.Message #85 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, schwab <at> linux-m68k.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 17:52:55 +0300
Paul, I've reviewed the changes you pushed to master for fixing this bug, and I must say that most of them look like purely stylistic changes, to make the code more to your personal liking. The actual bugs were very few and minor, and didn't necessitate such thorough changes. I think we should try to avoid such thorough changes due to style, because they risk introducing regressions into code that was working fine for many years. This is especially true in the absence of test coverage for the functionality of the code that gets refactored. One thing I find suboptimal in the new code is that you removed all the unibyte code, and instead rely on this: Lisp_Object str = Fstring_make_multibyte (string); But string-make-multibyte doesn't necessarily produce a multibyte string, e.g.: (multibyte-string-p (string-make-multibyte "abcd")) => nil So without any comments as to why we handle the input string as multibyte for the rest of the function, I think this will confuse someone down the road. More importantly, I think the refactoring already introduced a regression. On the emacs-25 branch we have: (let ((text-quoting-style 'straight)) (substitute-command-keys "‘balls’")) => "'balls'" But on master: (let ((text-quoting-style 'straight)) (substitute-command-keys "‘balls’")) => "‘balls’" I think that's because this chunk of code from the original implementation disappeared without a trace: int len; int ch = STRING_CHAR_AND_LENGTH (strp, len); if ((ch == LEFT_SINGLE_QUOTATION_MARK || ch == RIGHT_SINGLE_QUOTATION_MARK) && quoting_style != CURVE_QUOTING_STYLE) { *bufp++ = ((ch == LEFT_SINGLE_QUOTATION_MARK && quoting_style == GRAVE_QUOTING_STYLE) ? '`' : '\''); strp += len; changed = true; } Once again, we should have a test covering functionality before we attempt such refactoring. Or maybe we should just go to the original code, after fixing the immediate bugs, as I proposed in a patch yesterday? Thanks.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 15:26:02 GMT) Full text and rfc822 format available.Message #88 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: John Wiegley <jwiegley <at> gmail.com> To: Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, Paul Eggert <eggert <at> cs.ucla.edu>, schwab <at> linux-m68k.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 08:25:11 -0700
[Message part 1 (text/plain, inline)]
>>>>> Eli Zaretskii <eliz <at> gnu.org> writes: > The emacs-25 branch is ready for another RC, from my POV. Good, can you cut one for us, Nicolas? -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2
[signature.asc (application/pgp-signature, inline)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 16:10:02 GMT) Full text and rfc822 format available.Message #91 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Nicolas Petton <nicolas <at> petton.fr> To: John Wiegley <jwiegley <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, Paul Eggert <eggert <at> cs.ucla.edu>, schwab <at> linux-m68k.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 18:09:08 +0200
[Message part 1 (text/plain, inline)]
John Wiegley <jwiegley <at> gmail.com> writes: > Good, can you cut one for us, Nicolas? Yes! You'll have to wait until tomorrow though. Cheers, Nico
[signature.asc (application/pgp-signature, inline)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 17:38:02 GMT) Full text and rfc822 format available.Message #94 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, schwab <at> linux-m68k.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 10:37:39 -0700
[Message part 1 (text/plain, inline)]
Eli Zaretskii wrote: > I preferred to install one of the 2 patches I posted yesterday. Let's not cut the RC now, as unfortunately that patch fails spectacularly. (I didn't test it yesterday; I tested your other patch, which is obviously better.) To reproduce the problem, run emacs -Q and "C-h f car RET"; Emacs will display "Wrong type argument: integer-or-marker-p, nil" instead of help. The attached patch to emacs-25 fixes the problem. It makes the code functionally equivalent to the other of the 2 patches that you posted yesterday, and is simpler. OK to install in emacs-25?
[0001-Fix-wrong-type-argument-bug-with-C-h-f.patch (text/x-diff, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 17:46:02 GMT) Full text and rfc822 format available.Message #97 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: John Wiegley <jwiegley <at> gmail.com> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: 24206 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>, schwab <at> linux-m68k.org, p.stephani2 <at> gmail.com, nicolas <at> petton.fr Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 10:45:06 -0700
[Message part 1 (text/plain, inline)]
>>>>> Paul Eggert <eggert <at> cs.ucla.edu> writes: > Let's not cut the RC now, as unfortunately that patch fails spectacularly. I'm rather disturbed by patches being added to emacs-25 which "fail spectacularly". Can you please ensure that there is intensive testing being done on these patches before pushing them to our release branch? Thanks! -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2
[signature.asc (application/pgp-signature, inline)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 17:56:01 GMT) Full text and rfc822 format available.Message #100 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: John Wiegley <jwiegley <at> gmail.com> Cc: 24206 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>, schwab <at> linux-m68k.org, p.stephani2 <at> gmail.com, nicolas <at> petton.fr Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 10:55:46 -0700
John Wiegley wrote: > I'm rather disturbed by patches being added to emacs-25 which "fail > spectacularly". So am I. > Can you please ensure that there is intensive testing being > done on these patches before pushing them to our release branch? My name is on the "To:" line of your email, so are you under the impression that I pushed the patch? I did not, and would not have done so. Eli wrote and installed the patch, despite my recommendation of a different patch that would have avoided the failure. So this is really more a matter for Eli.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 17:58:01 GMT) Full text and rfc822 format available.Message #103 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: John Wiegley <jwiegley <at> gmail.com> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: 24206 <at> debbugs.gnu.org, Eli Zaretskii <eliz <at> gnu.org>, schwab <at> linux-m68k.org, p.stephani2 <at> gmail.com, nicolas <at> petton.fr Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 10:57:43 -0700
>>>>> Paul Eggert <eggert <at> cs.ucla.edu> writes: >> Can you please ensure that there is intensive testing being done on these >> patches before pushing them to our release branch? > My name is on the "To:" line of your email, so are you under the impression > that I pushed the patch? I did not, and would not have done so. Eli wrote > and installed the patch, despite my recommendation of a different patch that > would have avoided the failure. So this is really more a matter for Eli. I trust Eli to have chastised himself sufficiently in that case, and expectantly await correction of the problem. :) -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 18:33:01 GMT) Full text and rfc822 format available.Message #106 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, schwab <at> linux-m68k.org, nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 21:31:40 +0300
> Cc: schwab <at> linux-m68k.org, p.stephani2 <at> gmail.com, johnw <at> gnu.org, > nicolas <at> petton.fr, 24206 <at> debbugs.gnu.org > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Tue, 16 Aug 2016 10:37:39 -0700 > > Let's not cut the RC now, as unfortunately that patch fails spectacularly. (I > didn't test it yesterday; I tested your other patch, which is obviously better.) > To reproduce the problem, run emacs -Q and "C-h f car RET"; Emacs will display > "Wrong type argument: integer-or-marker-p, nil" instead of help. Thanks, that blunder should be fixed now. > The attached patch to emacs-25 fixes the problem. It makes the code functionally > equivalent to the other of the 2 patches that you posted yesterday, and is > simpler. OK to install in emacs-25? Sorry, no. I don't want to indiscriminately convert unibyte strings to multibyte in substitute-command-keys.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 18:45:02 GMT) Full text and rfc822 format available.Message #109 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Dmitry Gutov <dgutov <at> yandex.ru> To: Paul Eggert <eggert <at> cs.ucla.edu>, John Wiegley <jwiegley <at> gmail.com> Cc: p.stephani2 <at> gmail.com, schwab <at> linux-m68k.org, 24206 <at> debbugs.gnu.org, nicolas <at> petton.fr Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 21:44:25 +0300
On 08/16/2016 08:55 PM, Paul Eggert wrote: > John Wiegley wrote: >> I'm rather disturbed by patches being added to emacs-25 which "fail >> spectacularly". > > So am I. I'm disturbed by the lack of tests (in all proposed patches, as well as the one that was pushed), even when this bug report shows that the function is question is easy to get wrong.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Tue, 16 Aug 2016 21:08:02 GMT) Full text and rfc822 format available.Message #112 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, schwab <at> linux-m68k.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Tue, 16 Aug 2016 14:07:05 -0700
[Message part 1 (text/plain, inline)]
Eli Zaretskii wrote: > I've reviewed the changes you pushed to master for fixing this bug, > and I must say that most of them look like purely stylistic changes, > to make the code more to your personal liking. The actual bugs were > very few and minor, and didn't necessitate such thorough changes. The changes were motivated by bug fixes, not style. Although the bugs were mostly minor (e.g., generating bogus NUL bytes due to miscounting) it's fine to fix minor bugs. I did change nearby style (indenting as per GNU style, switching some locals to C99-style decl-after-statement, etc.) but none of the changes were pervasive or were intended for the emacs-25 branch, and it's fine to make such changes in master. One of the bugs was O(N**2) performance when reallocating a temporary buffer. While I was at it, I changed the code to allocate a small temp buffer on the stack to avoid a malloc/free in the usual case, which should be a small win. This accounts for many changes that a quick glance might give the mistaken impression of being stylistic. > without any comments as to why we handle the input string as > multibyte for the rest of the function, I think this will confuse > someone down the road. OK, I added some comments along those lines (see attached patch). > I think the refactoring already introduced a > regression. This comment appears to be about changes made in May for Bug#23425, not about code changes I made recently. The May changes were not a regression; they were intended and are documented in etc/NEWS. Alan Mackenzie felt strongly that some changes were needed in this area. See commit 433d366dc7b053048abf710d790ff62421dd1570. > maybe we should just go to the original code, after fixing the > immediate bugs, as I proposed in a patch yesterday? No, the code in master should be uniformly better than what's in emacs-25. It would be nice to have good tests for substitute-command-keys, of course. (We can all add this to our lists of things to do. :-)
[0001-Omit-substitute-command-keys-code-no-longer-needed.patch (text/x-diff, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Wed, 17 Aug 2016 15:13:02 GMT) Full text and rfc822 format available.Message #115 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: johnw <at> gnu.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Wed, 17 Aug 2016 18:12:48 +0300
> Cc: schwab <at> linux-m68k.org, p.stephani2 <at> gmail.com, johnw <at> gnu.org, > 24206 <at> debbugs.gnu.org > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Tue, 16 Aug 2016 14:07:05 -0700 > > The changes were motivated by bug fixes, not style. That's not what I see. E.g., this hunk simply replaces valid code by an equivalently valid code: - if (multibyte) - { - int len; - - STRING_CHAR_AND_LENGTH (strp, len); - if (len == 1) - *bufp = *strp; - else - memcpy (bufp, strp, len); - strp += len; - bufp += len; - nchars++; - } - else - *bufp++ = *strp++, nchars++; + /* Fall through to copy one char. */ Same here: - else if (strp[0] == '\\' && strp[1] == '[') + else if (strp[0] == '\\' && strp[1] == '[' + && (close_bracket + = memchr (strp + 2, ']', + SDATA (str) + strbytes - (strp + 2)))) { - ptrdiff_t start_idx; bool follow_remap = 1; - strp += 2; /* skip \[ */ - start = strp; - start_idx = start - SDATA (string); - - while ((strp - SDATA (string) - < SBYTES (string)) - && *strp != ']') - strp++; - length_byte = strp - start; - - strp++; /* skip ] */ and here (which, for some reason, loses part of a comment, and IMO makes it half a riddle for the uninitiated): - /* Note the Fwhere_is_internal can GC, so we have to take - relocation of string contents into account. */ - strp = SDATA (string) + idx; - start = SDATA (string) + start_idx; + /* Take relocation of string contents into account. */ + strp = SDATA (str) + idx; + start = strp - length_byte - 1; etc. etc. -- I see a lot of changes that have nothing to do with the real bugs in this function, they just rearrange valid code, change the way intermediate variables are used, etc. > Although the bugs were mostly minor (e.g., generating bogus NUL bytes due to miscounting) it's fine to fix minor bugs. I did change nearby style (indenting as per GNU style, switching some locals to C99-style decl-after-statement, etc.) but none of the changes were pervasive or were intended for the emacs-25 branch, and it's fine to make such changes in master. What code generated bogus null bytes? I'm not saying it isn't fine to make such changes, I'm urging you and the others to resist the temptation of doing so unless really necessary. We are operating in the area of diminishing returns, and too many times introduce regressions into code that was working properly for decades. We should try to minimize that. Emacs is not supposed to become less stable in core code, unless its gets significant improvements or new features. > One of the bugs was O(N**2) performance when reallocating a temporary buffer. While I was at it, I changed the code to allocate a small temp buffer on the stack to avoid a malloc/free in the usual case, which should be a small win. This accounts for many changes that a quick glance might give the mistaken impression of being stylistic. Where's the O(N**2) performance, and why does performance matter in this function anyway? I don't think we ever had complaints about this being slow. The new code is more complex, because it sometimes uses the stack and sometimes the heap, so more opportunities for bugs in it. I don't see any net gains, sorry. > without any comments as to why we handle the input string as > multibyte for the rest of the function, I think this will confuse > someone down the road. > > OK, I added some comments along those lines (see attached patch). Thanks. > I think the refactoring already introduced a > regression. > > This comment appears to be about changes made in May for Bug#23425, not about code changes I made recently. The May changes were not a regression; they were intended and are documented in etc/NEWS. Alan Mackenzie felt strongly that some changes were needed in this area. See commit 433d366dc7b053048abf710d790ff62421dd1570. Right, sorry I forgot about that. Unlike at that time, I now think this was a bad move, because Emacs 25.1 will have the disabled conversion in it, so by the time we release the code in master, it would be an incompatible change. Also, ‘..’ is left unchanged, but '..' is not, which is inconsistent. So I think that change should be reverted on master. (I also don't see how it is related to the original bug report, which AFAIU was about (message "`foo'") that still behaves as in the bug report.) > maybe we should just go to the original code, after fixing the > immediate bugs, as I proposed in a patch yesterday? > > No, the code in master should be uniformly better than what's in emacs-25. I can't say I see that, sorry. > It would be nice to have good tests for substitute-command-keys, of course. (We can all add this to our lists of things to do. :-) Which seems to be just another way of saying NO, sigh. (Mumbles something about Emacs maintenance being a lonely business...)
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Wed, 17 Aug 2016 17:43:01 GMT) Full text and rfc822 format available.Message #118 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Eli Zaretskii <eliz <at> gnu.org> Cc: johnw <at> gnu.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Wed, 17 Aug 2016 10:41:52 -0700
[Message part 1 (text/plain, inline)]
Eli Zaretskii wrote: >> The changes were motivated by bug fixes, not style. > > That's not what I see. E.g., this hunk simply replaces valid code by > an equivalently valid code: > > - if (multibyte) > - { > - int len; > - > - STRING_CHAR_AND_LENGTH (strp, len); > - if (len == 1) > - *bufp = *strp; > - else > - memcpy (bufp, strp, len); > - strp += len; > - bufp += len; > - nchars++; > - } > - else > - *bufp++ = *strp++, nchars++; > + /* Fall through to copy one char. */ Some change in this area was needed because the 'multibyte' flag went away. While doing that, I noticed that discarding all the code made this somewhat-tricky area easier to follow. It's not merely that the old multibyte code is unnecessarily long and hard to follow; it's that the old code does something fairly-typical (copy a multibyte character) in an unusual way, which is too likely to lead the reader into incorrectly thinking that there is something actually unusual about the action. Misleading code like this really cries out to be rewritten, particularly if the rewriting simply ionvolves deleting it. In short, the main motivation here was clarity, not merely style. (I hope I don't have to go into such details to defend every code change I install! I'm finding it difficult-enough now to find time to improve Emacs.) > Same here: > > - else if (strp[0] == '\\' && strp[1] == '[') > + else if (strp[0] == '\\' && strp[1] == '[' > + && (close_bracket > + = memchr (strp + 2, ']', > + SDATA (str) + strbytes - (strp + 2)))) > { > - ptrdiff_t start_idx; > bool follow_remap = 1; > > - strp += 2; /* skip \[ */ > - start = strp; > - start_idx = start - SDATA (string); > - > - while ((strp - SDATA (string) > - < SBYTES (string)) > - && *strp != ']') > - strp++; > - length_byte = strp - start; > - > - strp++; /* skip ] */ This one is not merely a style change. The old code matched \[ even if not followed by ], the new code does not. This is an intended improvement. I plead guilty to the charge that the new code is also shorter and clearer. > and here (which, for some reason, loses part of a comment, and IMO > makes it half a riddle for the uninitiated): > > - /* Note the Fwhere_is_internal can GC, so we have to take > - relocation of string contents into account. */ > - strp = SDATA (string) + idx; > - start = SDATA (string) + start_idx; > + /* Take relocation of string contents into account. */ > + strp = SDATA (str) + idx; > + start = strp - length_byte - 1; The new comment came because I copied it from somewhere else in the interest of consistency. You're right, I omitted some commentary in the process. I thought the omitted info obvious, but evidently you think otherwise. It's obviously no big deal, so I brought it back by applying the attached patch to master. > What code generated bogus null bytes? For example, (substitute-command-keys "\\=") generated "\0". > I'm not saying it isn't fine to make such changes, I'm urging you and > the others to resist the temptation of doing so unless really > necessary. We are operating in the area of diminishing returns, and > too many times introduce regressions into code that was working > properly for decades. This particular code has been buggy for decades in unusual areas. There is no harm in simplifying it when fixing the bugs. On the contrary, we should encourage bug fixes that simplify code. > Where's the O(N**2) performance When the buffer grew slightly, it was reallocated to be slightly bigger and the old data was copied to the new; this is an O(N**2) algorithm, where N is the final buffer size. The new approach doubles the buffer size instead (actually, multiplies it by 1.5, but that's good enough to bring worst-case behavior down to O(N)). This sort of thing is standard programming practice when growing a buffer whose eventual size is not yet known. > and why does performance matter in this function anyway? It usually doesn't, but it might in the worst case, so I figured I might as well fix the O(N**2) problem while I was fixing related bugs. This is a good thing to do in master. > Unlike at that time, I now think > this was a bad move, because Emacs 25.1 will have the disabled > conversion in it, so by the time we release the code in master, it > would be an incompatible change. If that's the main objection, then let's change Emacs 25 to behave similarly. This would be a simple and conservative change to Emacs 25. But even if you don't want to change Emacs 25 (and thus you want to Emacs 25 to continue to be less-compatible with Emacs 24), it's OK to change this minor detail back to the way Emacs 24 does things. > (I also don't see how it is related to the > original bug report, which AFAIU was about (message "`foo'") that > still behaves as in the bug report.) Alan wanted something that he could put into his .emacs that would cause (message PERCENTLESS) to output the string PERCENTLESS as-is, assuming PERCENTLESS lacks %. This was the point of his original bug report; his original example involved ` and ' but he wanted the same behavior for ‘ and ’, a point that became clear during the discussion of Bug#23425. In Message #95 of that bug report I proposed the change in question, and in Message #104 you said it sounded good to you. This is a contentious area, and unless there's good reason I'd rather let sleeping dogs lie and stick with master's current behavior here. > (Mumbles something about Emacs maintenance being a lonely business...) But we have all these nice conversations! :-)
[0001-src-doc.c-Fsubstitute_command_keys-Clarify-GC-commen.patch (text/x-diff, attachment)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Wed, 17 Aug 2016 17:51:02 GMT) Full text and rfc822 format available.Message #121 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Dmitry Gutov <dgutov <at> yandex.ru> To: Paul Eggert <eggert <at> cs.ucla.edu>, Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, johnw <at> gnu.org, schwab <at> linux-m68k.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Wed, 17 Aug 2016 20:50:29 +0300
On 08/17/2016 12:07 AM, Paul Eggert wrote: > It would be nice to have good tests for substitute-command-keys, of > course. (We can all add this to our lists of things to do. :-) Tests written after the fact are often less than helpful, because you don't see the problem anymore. Not to mention that there's little motivation for anyone to do that. Never mind "good" tests, let's at least have _some_ tests first. It should be the responsibility of the person who fixes the bug, or the one who introduced it, at least.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Wed, 17 Aug 2016 18:08:01 GMT) Full text and rfc822 format available.Message #124 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: johnw <at> gnu.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Wed, 17 Aug 2016 21:06:42 +0300
> Cc: johnw <at> gnu.org, 24206 <at> debbugs.gnu.org > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Wed, 17 Aug 2016 10:41:52 -0700 > > > - if (multibyte) > > - { > > - int len; > > - > > - STRING_CHAR_AND_LENGTH (strp, len); > > - if (len == 1) > > - *bufp = *strp; > > - else > > - memcpy (bufp, strp, len); > > - strp += len; > > - bufp += len; > > - nchars++; > > - } > > - else > > - *bufp++ = *strp++, nchars++; > > + /* Fall through to copy one char. */ > > Some change in this area was needed because the 'multibyte' flag went away. Only because you removed it. You could have left it alone, it would have worked even after the call to Fstring_make_multibyte, for the reasons I explained earlier: the result is not necessarily a multibyte string. > While doing that, I noticed that discarding all the code made this > somewhat-tricky area easier to follow. It's not merely that the old multibyte > code is unnecessarily long and hard to follow; it's that the old code does > something fairly-typical (copy a multibyte character) in an unusual way, which > is too likely to lead the reader into incorrectly thinking that there is > something actually unusual about the action. Misleading code like this really > cries out to be rewritten, particularly if the rewriting simply ionvolves > deleting it. I don't see why it is tricky, we do that in Emacs in other places. It's pretty boilerplate. > In short, the main motivation here was clarity, not merely style. That's exactly my point: it's more clear for you, but that alone is not reason good enough to make such changes in code that worked for many years. > (I hope I don't have to go into such details to defend every code change I > install! I'm finding it difficult-enough now to find time to improve Emacs.) I could simply revert your commit, it would have saved us both quite some time. Would you prefer that? > This one is not merely a style change. The old code matched \[ even if not > followed by ], the new code does not. This is an intended improvement. I plead > guilty to the charge that the new code is also shorter and clearer. Then why is there nothing about this in the log entry? > > - /* Note the Fwhere_is_internal can GC, so we have to take > > - relocation of string contents into account. */ > > - strp = SDATA (string) + idx; > > - start = SDATA (string) + start_idx; > > + /* Take relocation of string contents into account. */ > > + strp = SDATA (str) + idx; > > + start = strp - length_byte - 1; > > The new comment came because I copied it from somewhere else in the interest of > consistency. You're right, I omitted some commentary in the process. I thought > the omitted info obvious, but evidently you think otherwise. It's obviously no > big deal, so I brought it back by applying the attached patch to master. Thanks. > > Unlike at that time, I now think > > this was a bad move, because Emacs 25.1 will have the disabled > > conversion in it, so by the time we release the code in master, it > > would be an incompatible change. > > If that's the main objection, then let's change Emacs 25 to behave similarly. > This would be a simple and conservative change to Emacs 25. But even if you > don't want to change Emacs 25 (and thus you want to Emacs 25 to continue to be > less-compatible with Emacs 24), it's OK to change this minor detail back to the > way Emacs 24 does things. Alas, it's too late to change Emacs 25.1. > > (I also don't see how it is related to the > > original bug report, which AFAIU was about (message "`foo'") that > > still behaves as in the bug report.) > > Alan wanted something that he could put into his .emacs that would cause > (message PERCENTLESS) to output the string PERCENTLESS as-is, assuming > PERCENTLESS lacks %. This was the point of his original bug report; his original > example involved ` and ' but he wanted the same behavior for ‘ and ’, a point > that became clear during the discussion of Bug#23425. Then why not for '..' as well? How is that different from ‘..’? What we have now on master is inconsistent and cannot be defended, IMO. > > (Mumbles something about Emacs maintenance being a lonely business...) > > But we have all these nice conversations! :-) Oh yes, what a relief!
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Wed, 17 Aug 2016 20:53:02 GMT) Full text and rfc822 format available.Message #127 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Eli Zaretskii <eliz <at> gnu.org> Cc: johnw <at> gnu.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Wed, 17 Aug 2016 13:52:42 -0700
Eli Zaretskii wrote: >> Some change in this area was needed because the 'multibyte' flag went away. > > Only because you removed it. You could have left it alone, it would > have worked Sure, but it was no longer necessary, as the code no longer needs to record whether the original string was multibyte. Keeping an unnecessary variable around would make the code harder to read. > even after the call to Fstring_make_multibyte, for the > reasons I explained earlier: the result is not necessarily a multibyte > string. That doesn't affect the fact that the 'multibyte' variable is no longer necessary. In emacs-25, 'multibyte' does not mean that the result is a multibyte string; it means that the input is a multibyte string. There is no need to keep track of that in master now, and it simplifies the code to not worry about it. >> While doing that, I noticed that discarding all the code made this >> somewhat-tricky area easier to follow. It's not merely that the old multibyte >> code is unnecessarily long and hard to follow; it's that the old code does >> something fairly-typical (copy a multibyte character) in an unusual way, which >> is too likely to lead the reader into incorrectly thinking that there is >> something actually unusual about the action. > I don't see why it is tricky, we do that in Emacs in other places. Really? A call to STRING_CHAR_AND_LENGTH followed by a length test followed by a call to memcpy for length > 1 and a special case inline copy for length == 1? When copying multibyte data? Where else does Emacs do that? > it's more clear for you Replacing 14 unusually and unnecessarily tricky lines with zero lines should help clarify things for most readers. > I could simply revert your commit, it would have saved us both quite > some time. Would you prefer that? It'd be even simpler to leave things alone, as the master code works better than emacs-25 does. (Merely reverting the commit wouldn't suffice, of course.) >> This one is not merely a style change. The old code matched \[ even if not >> followed by ], the new code does not. This is an intended improvement. I plead >> guilty to the charge that the new code is also shorter and clearer. > > Then why is there nothing about this in the log entry? I didn't think such detail was necessary, since it was a change to undocumented behavior. If you think it worth mentioning, I can add a NEWS item. >> Alan wanted something that he could put into his .emacs that would cause >> (message PERCENTLESS) to output the string PERCENTLESS as-is, assuming >> PERCENTLESS lacks %. This was the point of his original bug report; his original >> example involved ` and ' but he wanted the same behavior for ‘ and ’, a point >> that became clear during the discussion of Bug#23425. > > Then why not for '..' as well? How is that different from ‘..’? It's not different. Alan wanted the same behavior for '..', and he got that too.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Thu, 18 Aug 2016 14:31:01 GMT) Full text and rfc822 format available.Message #130 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: johnw <at> gnu.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Thu, 18 Aug 2016 17:30:44 +0300
> Cc: johnw <at> gnu.org, 24206 <at> debbugs.gnu.org > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Wed, 17 Aug 2016 13:52:42 -0700 > > Some change in this area was needed because the 'multibyte' flag went away. > > Only because you removed it. You could have left it alone, it would > have worked > > Sure, but it was no longer necessary, as the code no longer needs to record whether the original string was multibyte. Keeping an unnecessary variable around would make the code harder to read. The code that got removed was the easy and intuitive part: it dealt with processing single-byte strings one byte at a time. The hard-to-read part of the code is still with us. We have less 'if' conditionals, but that's hardly the main complication in the original code. > even after the call to Fstring_make_multibyte, for the > reasons I explained earlier: the result is not necessarily a multibyte > string. > > That doesn't affect the fact that the 'multibyte' variable is no longer necessary. In emacs-25, 'multibyte' does not mean that the result is a multibyte string You are missing my point: the code on master now processes a string, that could be either unibyte or multibyte, using only multibyte methods. With the flag in place, each kind of string would have used the method that's natural with it. The way things are now, one has to think hard about what the code does to convince oneself it's valid. > I don't see why it is tricky, we do that in Emacs in other places. > > Really? A call to STRING_CHAR_AND_LENGTH followed by a length test followed by a call to memcpy for length > 1 and a special case inline copy for length == 1? When copying multibyte data? Where else does Emacs do that? What exactly confuses you in that snippet? The call to STRING_CHAR_AND_LENGTH itself? we have that in umpteen other places. The single-byte optimization of not calling memcpy? That's standard practice in C. If you need an example for using STRING_CHAR_AND_LENGTH while copying text, you can find it in copy_text, for example. I really don't understand what's your problem with that code. > it's more clear for you > > Replacing 14 unusually and unnecessarily tricky lines with zero lines should help clarify things for most readers. They are not unusually tricky at all. And you replaced it with a fall-through, which is harder to follow and easier to introduce subtle bugs. > I could simply revert your commit, it would have saved us both quite > some time. Would you prefer that? > > It'd be even simpler to leave things alone, as the master code works better than emacs-25 does. Sorry, leaving alone changes that I find questionable or gratuitous is not in the job description. > Alan wanted something that he could put into his .emacs that would cause > (message PERCENTLESS) to output the string PERCENTLESS as-is, assuming > PERCENTLESS lacks %. This was the point of his original bug report; his original > example involved ` and ' but he wanted the same behavior for ‘ and ’, a point > that became clear during the discussion of Bug#23425. > > Then why not for '..' as well? How is that different from ‘..’? > > It's not different. Alan wanted the same behavior for '..', and he got that too. But the behavior is not the same: (let ((text-quoting-style 'curve)) (substitute-command-keys "'foo'")) => ’foo’ but (let ((text-quoting-style 'grave)) (substitute-command-keys "‘foo’")) => ‘foo’ I would have expected the first example to yield 'foo', i.e. leave the apostrophes alone, as we do with curved quotes in the second example. What we have now is inconsistent, and its rationale evades me.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Thu, 18 Aug 2016 16:34:02 GMT) Full text and rfc822 format available.Message #133 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Nicolas Petton <nicolas <at> petton.fr> To: John Wiegley <jwiegley <at> gmail.com>, Eli Zaretskii <eliz <at> gnu.org> Cc: p.stephani2 <at> gmail.com, Paul Eggert <eggert <at> cs.ucla.edu>, schwab <at> linux-m68k.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Thu, 18 Aug 2016 18:30:32 +0200
[Message part 1 (text/plain, inline)]
John Wiegley <jwiegley <at> gmail.com> writes: >> The emacs-25 branch is ready for another RC, from my POV. > > Good, can you cut one for us, Nicolas? I'm at the GNU Hackers Meeting and I haven't followed the latest development regarding this issue, are we ready for another pretest? Cheers, Nico
[signature.asc (application/pgp-signature, inline)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Thu, 18 Aug 2016 16:44:01 GMT) Full text and rfc822 format available.Message #136 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: John Wiegley <jwiegley <at> gmail.com> To: Nicolas Petton <nicolas <at> petton.fr> Cc: Eli Zaretskii <eliz <at> gnu.org>, Paul Eggert <eggert <at> cs.ucla.edu>, schwab <at> linux-m68k.org, p.stephani2 <at> gmail.com, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Thu, 18 Aug 2016 09:41:57 -0700
[Message part 1 (text/plain, inline)]
>>>>> Nicolas Petton <nicolas <at> petton.fr> writes: > I'm at the GNU Hackers Meeting and I haven't followed the latest development > regarding this issue, are we ready for another pretest? I had thought so, but I'll let Eli confirm again. -- John Wiegley GPG fingerprint = 4710 CF98 AF9B 327B B80F http://newartisans.com 60E1 46C4 BD1A 7AC1 4BA2
[signature.asc (application/pgp-signature, inline)]
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Thu, 18 Aug 2016 17:36:01 GMT) Full text and rfc822 format available.Message #139 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: John Wiegley <jwiegley <at> gmail.com> Cc: nicolas <at> petton.fr, eggert <at> cs.ucla.edu, schwab <at> linux-m68k.org, p.stephani2 <at> gmail.com, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Thu, 18 Aug 2016 20:35:29 +0300
> From: John Wiegley <jwiegley <at> gmail.com> > Cc: Eli Zaretskii <eliz <at> gnu.org>, Paul Eggert <eggert <at> cs.ucla.edu>, schwab <at> linux-m68k.org, p.stephani2 <at> gmail.com, 24206 <at> debbugs.gnu.org > Date: Thu, 18 Aug 2016 09:41:57 -0700 > > >>>>> Nicolas Petton <nicolas <at> petton.fr> writes: > > > I'm at the GNU Hackers Meeting and I haven't followed the latest development > > regarding this issue, are we ready for another pretest? > > I had thought so, but I'll let Eli confirm again. Confirmed.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Thu, 18 Aug 2016 18:34:02 GMT) Full text and rfc822 format available.Message #142 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Paul Eggert <eggert <at> cs.ucla.edu> To: Eli Zaretskii <eliz <at> gnu.org> Cc: johnw <at> gnu.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Thu, 18 Aug 2016 11:33:36 -0700
Eli Zaretskii wrote: > The code that got removed was the easy and intuitive part: it dealt > with processing single-byte strings one byte at a time. The > hard-to-read part of the code is still with us. We have less 'if' > conditionals, but that's hardly the main complication in the original > code. Sure, but removing unnecessary easy stuff lets the reader see the hard stuff more clearly. > You are missing my point: the code on master now processes a string, > that could be either unibyte or multibyte, using only multibyte > methods. With the flag in place, each kind of string would have used > the method that's natural with it. The way things are now, one has to > think hard about what the code does to convince oneself it's valid. The way things were before it was even harder, because one had to worry not only about processing Emacs-encoded text, one also had to worry about processing unibyte text containing non-ASCII bytes. The code is simpler now, because it needs only to process Emacs-encoded text. The old code might have flown despite its problems, if all the input data were consistent (i.e., either all unibyte, or all with Emacs-encoded text). But inputs need not be consistent, so the old approach simply did not work. As I take it, your principal objection to the new code is not to its internals: it's that substitute-command-keys can now return a multibyte string even when all the input data is unibyte. I don't think that's a big deal, but if this is the primary reason for our lengthy conversation, I can move things forward by changing the code so that it instead returns a unibyte string when all the input data are unibyte. Would that suffice? >> I don't see why it is tricky, we do that in Emacs in other places. >> >> Really? A call to STRING_CHAR_AND_LENGTH followed by a length test followed by a call to memcpy for length > 1 and a special case inline copy for length == 1? When copying multibyte data? Where else does Emacs do that? > > What exactly confuses you in that snippet? Nothing confuses me in that snippet. I know what the snippet does, now that I've read and understood it. It is a longwinded and unnecessarily tricky way of doing something simple. > The call to > STRING_CHAR_AND_LENGTH itself? we have that in umpteen other places. > The single-byte optimization of not calling memcpy? That's standard > practice in C. I'm not talking about each individual line of code in that snippet. I am talking about the entire construction. A reader must look at all 14 lines to deduce what it does, deduce that it's unnecessarily complicated, and deduce that the unnecessary complication is not a sign that something unusual is going on. No place else in Emacs has this construction. > If you need an example for using > STRING_CHAR_AND_LENGTH while copying text, you can find it in > copy_text, for example. copy_text does something quite different. When copying multibyte text, it does a single memcpy for the entire string. copy_text does not call memcpy for each multibyte character, and nothing in copy_text is particularly close to the snippet in question. > you replaced it with a > fall-through, which is harder to follow and easier to introduce subtle > bugs. True, but the fall-through is clearly marked in comments. The new way is a bit more efficent (smaller code space, more likely to fit in cache); the old way duplicated character-copying code, a practice that also introduces subtle bugs -- in addition to temporarily mystifying the reader because the old code duplicates were not identical (itself a sign of cruft). With all that in mind, it was reasonable to switch from the old way to the new, despite the disadvantage you mention. >> Alan wanted something that he could put into his .emacs that would cause >> (message PERCENTLESS) to output the string PERCENTLESS as-is, assuming >> PERCENTLESS lacks %. This was the point of his original bug report; his original >> example involved ` and ' but he wanted the same behavior for ‘ and ’, a point >> that became clear during the discussion of Bug#23425. >> >> Then why not for '..' as well? How is that different from ‘..’? >> >> It's not different. Alan wanted the same behavior for '..', and he got that too. > > But the behavior is not the same: I was referring to Alan's desire to treat all quotes the same (i.e., to not substitute for any of them), which is now supported by setting text-quoting-style to grave. > (let ((text-quoting-style 'curve)) > (substitute-command-keys "'foo'")) > => ’foo’ > > but > > (let ((text-quoting-style 'grave)) > (substitute-command-keys "‘foo’")) > => ‘foo’ > > I would have expected the first example to yield 'foo' No, substitute-command-keys works on each grave accent and apostrophe separately, without looking at the others. As I recall it's worked that way and has been documented that way, in both master and emacs-25, ever since the feature was installed. One could posit a "smarter" form of substitution, which leaves 'foo' alone but which translates `foo'. Although we considered that possibility during design, we rejected it because it is more complicated and has more problems and quirks that are a pain to document and would surprise users in other ways.
bug-gnu-emacs <at> gnu.org
:bug#24206
; Package emacs
.
(Thu, 18 Aug 2016 18:59:02 GMT) Full text and rfc822 format available.Message #145 received at 24206 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Paul Eggert <eggert <at> cs.ucla.edu> Cc: johnw <at> gnu.org, 24206 <at> debbugs.gnu.org Subject: Re: bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Date: Thu, 18 Aug 2016 21:58:25 +0300
> Cc: johnw <at> gnu.org, 24206 <at> debbugs.gnu.org > From: Paul Eggert <eggert <at> cs.ucla.edu> > Date: Thu, 18 Aug 2016 11:33:36 -0700 > > As I take it, your principal objection to the new code is not to its internals: > it's that substitute-command-keys can now return a multibyte string even when > all the input data is unibyte. I don't think that's a big deal, but if this is > the primary reason for our lengthy conversation, I can move things forward by > changing the code so that it instead returns a unibyte string when all the input > data are unibyte. Would that suffice? No, that's not the primary reason. The primary reason is that I think we should avoid changing code that doesn't necessarily need any changes.
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Fri, 16 Sep 2016 11:24:03 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.