* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
@ 2016-08-11 18:55 Phil
2016-08-11 20:05 ` Eli Zaretskii
2016-08-14 4:54 ` Paul Eggert
0 siblings, 2 replies; 47+ messages in thread
From: Phil @ 2016-08-11 18:55 UTC (permalink / raw)
To: 24206
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@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))
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-11 18:55 bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Phil
@ 2016-08-11 20:05 ` Eli Zaretskii
2016-08-11 23:51 ` Philipp Stephani
2016-08-14 4:54 ` Paul Eggert
1 sibling, 1 reply; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-11 20:05 UTC (permalink / raw)
To: Phil; +Cc: 24206
> From: Phil <p.stephani2@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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-11 20:05 ` Eli Zaretskii
@ 2016-08-11 23:51 ` Philipp Stephani
2016-08-13 8:32 ` Eli Zaretskii
0 siblings, 1 reply; 47+ messages in thread
From: Philipp Stephani @ 2016-08-11 23:51 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 24206
[-- Attachment #1: Type: text/plain, Size: 1070 bytes --]
Eli Zaretskii <eliz@gnu.org> schrieb am Do., 11. Aug. 2016 um 13:05 Uhr:
> > From: Phil <p.stephani2@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.
[-- Attachment #2: Type: text/html, Size: 1585 bytes --]
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-11 23:51 ` Philipp Stephani
@ 2016-08-13 8:32 ` Eli Zaretskii
2016-08-13 12:25 ` Nicolas Petton
0 siblings, 1 reply; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-13 8:32 UTC (permalink / raw)
To: Philipp Stephani, John Wiegley; +Cc: 24206
> From: Philipp Stephani <p.stephani2@gmail.com>
> Date: Thu, 11 Aug 2016 23:51:41 +0000
> Cc: 24206@debbugs.gnu.org
>
> Eli Zaretskii <eliz@gnu.org> schrieb am Do., 11. Aug. 2016 um 13:05 Uhr:
>
> > From: Phil <p.stephani2@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?
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-11 18:55 bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Phil
2016-08-11 20:05 ` Eli Zaretskii
@ 2016-08-14 4:54 ` Paul Eggert
2016-08-14 14:27 ` Eli Zaretskii
` (2 more replies)
1 sibling, 3 replies; 47+ messages in thread
From: Paul Eggert @ 2016-08-14 4:54 UTC (permalink / raw)
To: Phil; +Cc: John Wiegley, Nicolas Petton, 24206-done
[-- Attachment #1: Type: text/plain, Size: 521 bytes --]
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.
[-- Attachment #2: 0001-Fix-core-dump-with-unibyte-substitute-command-keys.patch --]
[-- Type: text/x-patch, Size: 688 bytes --]
From 2cbfb2adb97b086e24c05b24ebf6349a3b3b94c9 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sat, 13 Aug 2016 23:38:33 -0500
Subject: [PATCH] Fix core dump with unibyte substitute-command-keys
* src/doc.c (Fsubstitute_command_keys): Convert string to
multibyte first (Bug#24206). Do not merge to master.
---
src/doc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/doc.c b/src/doc.c
index 7cdb0d0..f664e0e 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -757,6 +757,7 @@ Otherwise, return a new string. */)
return Qnil;
CHECK_STRING (string);
+ string = Fstring_make_multibyte (string);
tem = Qnil;
keymap = Qnil;
name = Qnil;
--
2.5.5
^ permalink raw reply related [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-14 4:54 ` Paul Eggert
@ 2016-08-14 14:27 ` Eli Zaretskii
2016-08-14 14:51 ` Paul Eggert
2016-08-14 15:21 ` Dmitry Gutov
2016-08-14 17:21 ` Eli Zaretskii
2 siblings, 1 reply; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-14 14:27 UTC (permalink / raw)
To: Paul Eggert; +Cc: p.stephani2, johnw, nicolas, 24206
> Cc: 24206-done@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>,
> John Wiegley <johnw@gnu.org>, Nicolas Petton <nicolas@petton.fr>
> From: Paul Eggert <eggert@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?
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-14 14:27 ` Eli Zaretskii
@ 2016-08-14 14:51 ` Paul Eggert
2016-08-14 17:18 ` Eli Zaretskii
0 siblings, 1 reply; 47+ messages in thread
From: Paul Eggert @ 2016-08-14 14:51 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: p.stephani2, johnw, nicolas, 24206
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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-14 14:51 ` Paul Eggert
@ 2016-08-14 17:18 ` Eli Zaretskii
2016-08-15 2:04 ` Paul Eggert
0 siblings, 1 reply; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-14 17:18 UTC (permalink / raw)
To: Paul Eggert; +Cc: p.stephani2, johnw, nicolas, 24206
> Cc: p.stephani2@gmail.com, 24206@debbugs.gnu.org, johnw@gnu.org,
> nicolas@petton.fr
> From: Paul Eggert <eggert@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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-14 17:18 ` Eli Zaretskii
@ 2016-08-15 2:04 ` Paul Eggert
2016-08-15 16:09 ` Eli Zaretskii
0 siblings, 1 reply; 47+ messages in thread
From: Paul Eggert @ 2016-08-15 2:04 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: p.stephani2, johnw, nicolas, 24206
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.)
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-15 2:04 ` Paul Eggert
@ 2016-08-15 16:09 ` Eli Zaretskii
2016-08-15 16:46 ` Andreas Schwab
0 siblings, 1 reply; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-15 16:09 UTC (permalink / raw)
To: Paul Eggert; +Cc: p.stephani2, johnw, nicolas, 24206
> Cc: p.stephani2@gmail.com, 24206@debbugs.gnu.org, johnw@gnu.org,
> nicolas@petton.fr
> From: Paul Eggert <eggert@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;
}
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-15 16:09 ` Eli Zaretskii
@ 2016-08-15 16:46 ` Andreas Schwab
2016-08-15 18:43 ` Paul Eggert
2016-08-15 18:51 ` Eli Zaretskii
0 siblings, 2 replies; 47+ messages in thread
From: Andreas Schwab @ 2016-08-15 16:46 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: p.stephani2, Paul Eggert, nicolas, johnw, 24206
On Aug 15 2016, Eli Zaretskii <eliz@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@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
"And now for something completely different."
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-15 16:46 ` Andreas Schwab
@ 2016-08-15 18:43 ` Paul Eggert
2016-08-15 19:04 ` Eli Zaretskii
2016-08-15 18:51 ` Eli Zaretskii
1 sibling, 1 reply; 47+ messages in thread
From: Paul Eggert @ 2016-08-15 18:43 UTC (permalink / raw)
To: Andreas Schwab, Eli Zaretskii; +Cc: p.stephani2, johnw, nicolas, 24206
[-- Attachment #1: Type: text/plain, Size: 1322 bytes --]
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.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-core-dump-with-unibyte-substitute-command-keys.patch --]
[-- Type: text/x-diff; name="0001-Fix-core-dump-with-unibyte-substitute-command-keys.patch", Size: 1021 bytes --]
From c4cdebc78783f337cb504b6fea71295cfcaaa516 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Mon, 15 Aug 2016 11:34:57 -0700
Subject: [PATCH] Fix core dump with unibyte substitute-command-keys
Backport from master (Bug#24206).
* src/doc.c (Fsubstitute_command_keys): Convert string to
multibyte first, but return the original if there is no
substitution.
---
src/doc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/doc.c b/src/doc.c
index 7cdb0d0..4f5f7a4 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -763,6 +763,8 @@ Otherwise, return a new string. */)
enum text_quoting_style quoting_style = text_quoting_style ();
+ Lisp_Object orig_string = string;
+ string = Fstring_make_multibyte (string);
multibyte = STRING_MULTIBYTE (string);
nchars = 0;
@@ -1024,7 +1026,7 @@ Otherwise, return a new string. */)
}
}
else
- tem = string;
+ tem = orig_string;
xfree (buf);
return tem;
}
--
2.7.4
^ permalink raw reply related [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-15 18:43 ` Paul Eggert
@ 2016-08-15 19:04 ` Eli Zaretskii
0 siblings, 0 replies; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-15 19:04 UTC (permalink / raw)
To: Paul Eggert; +Cc: p.stephani2, johnw, schwab, nicolas, 24206
> Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr,
> 24206@debbugs.gnu.org
> From: Paul Eggert <eggert@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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-15 16:46 ` Andreas Schwab
2016-08-15 18:43 ` Paul Eggert
@ 2016-08-15 18:51 ` Eli Zaretskii
2016-08-15 19:05 ` John Wiegley
2016-08-15 20:41 ` Paul Eggert
1 sibling, 2 replies; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-15 18:51 UTC (permalink / raw)
To: Andreas Schwab; +Cc: p.stephani2, eggert, nicolas, johnw, 24206
> From: Andreas Schwab <schwab@linux-m68k.org>
> Cc: Paul Eggert <eggert@cs.ucla.edu>, p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr, 24206@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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-15 18:51 ` Eli Zaretskii
@ 2016-08-15 19:05 ` John Wiegley
2016-08-15 20:41 ` Paul Eggert
1 sibling, 0 replies; 47+ messages in thread
From: John Wiegley @ 2016-08-15 19:05 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: p.stephani2, eggert, Andreas Schwab, nicolas, 24206
>>>>> Eli Zaretskii <eliz@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
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-15 18:51 ` Eli Zaretskii
2016-08-15 19:05 ` John Wiegley
@ 2016-08-15 20:41 ` Paul Eggert
2016-08-16 14:38 ` Eli Zaretskii
2016-08-16 14:52 ` Eli Zaretskii
1 sibling, 2 replies; 47+ messages in thread
From: Paul Eggert @ 2016-08-15 20:41 UTC (permalink / raw)
To: Eli Zaretskii, Andreas Schwab; +Cc: p.stephani2, johnw, nicolas, 24206
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>.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-15 20:41 ` Paul Eggert
@ 2016-08-16 14:38 ` Eli Zaretskii
2016-08-16 15:25 ` John Wiegley
2016-08-16 17:37 ` Paul Eggert
2016-08-16 14:52 ` Eli Zaretskii
1 sibling, 2 replies; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-16 14:38 UTC (permalink / raw)
To: Paul Eggert; +Cc: p.stephani2, johnw, schwab, nicolas, 24206
> Cc: p.stephani2@gmail.com, johnw@gnu.org, nicolas@petton.fr,
> 24206@debbugs.gnu.org
> From: Paul Eggert <eggert@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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 14:38 ` Eli Zaretskii
@ 2016-08-16 15:25 ` John Wiegley
2016-08-16 16:09 ` Nicolas Petton
2016-08-18 16:30 ` Nicolas Petton
2016-08-16 17:37 ` Paul Eggert
1 sibling, 2 replies; 47+ messages in thread
From: John Wiegley @ 2016-08-16 15:25 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: p.stephani2, Paul Eggert, schwab, nicolas, 24206
[-- Attachment #1: Type: text/plain, Size: 304 bytes --]
>>>>> Eli Zaretskii <eliz@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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 629 bytes --]
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 15:25 ` John Wiegley
@ 2016-08-16 16:09 ` Nicolas Petton
2016-08-18 16:30 ` Nicolas Petton
1 sibling, 0 replies; 47+ messages in thread
From: Nicolas Petton @ 2016-08-16 16:09 UTC (permalink / raw)
To: John Wiegley, Eli Zaretskii; +Cc: p.stephani2, Paul Eggert, schwab, 24206
[-- Attachment #1: Type: text/plain, Size: 147 bytes --]
John Wiegley <jwiegley@gmail.com> writes:
> Good, can you cut one for us, Nicolas?
Yes! You'll have to wait until tomorrow though.
Cheers,
Nico
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 512 bytes --]
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 15:25 ` John Wiegley
2016-08-16 16:09 ` Nicolas Petton
@ 2016-08-18 16:30 ` Nicolas Petton
2016-08-18 16:41 ` John Wiegley
1 sibling, 1 reply; 47+ messages in thread
From: Nicolas Petton @ 2016-08-18 16:30 UTC (permalink / raw)
To: John Wiegley, Eli Zaretskii; +Cc: p.stephani2, Paul Eggert, schwab, 24206
[-- Attachment #1: Type: text/plain, Size: 295 bytes --]
John Wiegley <jwiegley@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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 512 bytes --]
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-18 16:30 ` Nicolas Petton
@ 2016-08-18 16:41 ` John Wiegley
2016-08-18 17:35 ` Eli Zaretskii
0 siblings, 1 reply; 47+ messages in thread
From: John Wiegley @ 2016-08-18 16:41 UTC (permalink / raw)
To: Nicolas Petton; +Cc: Paul Eggert, schwab, p.stephani2, 24206
[-- Attachment #1: Type: text/plain, Size: 399 bytes --]
>>>>> Nicolas Petton <nicolas@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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 629 bytes --]
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-18 16:41 ` John Wiegley
@ 2016-08-18 17:35 ` Eli Zaretskii
0 siblings, 0 replies; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-18 17:35 UTC (permalink / raw)
To: John Wiegley; +Cc: nicolas, eggert, schwab, p.stephani2, 24206
> From: John Wiegley <jwiegley@gmail.com>
> Cc: Eli Zaretskii <eliz@gnu.org>, Paul Eggert <eggert@cs.ucla.edu>, schwab@linux-m68k.org, p.stephani2@gmail.com, 24206@debbugs.gnu.org
> Date: Thu, 18 Aug 2016 09:41:57 -0700
>
> >>>>> Nicolas Petton <nicolas@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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 14:38 ` Eli Zaretskii
2016-08-16 15:25 ` John Wiegley
@ 2016-08-16 17:37 ` Paul Eggert
2016-08-16 17:45 ` John Wiegley
2016-08-16 18:31 ` Eli Zaretskii
1 sibling, 2 replies; 47+ messages in thread
From: Paul Eggert @ 2016-08-16 17:37 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: p.stephani2, johnw, schwab, nicolas, 24206
[-- Attachment #1: Type: text/plain, Size: 602 bytes --]
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?
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Fix-wrong-type-argument-bug-with-C-h-f.patch --]
[-- Type: text/x-diff; name="0001-Fix-wrong-type-argument-bug-with-C-h-f.patch", Size: 2752 bytes --]
From 36a8eec4e8f07724e5ed202b0c68233019975e85 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Tue, 16 Aug 2016 10:36:14 -0700
Subject: [PATCH] =?UTF-8?q?Fix=20=E2=80=98wrong=20type=20argument=E2=80=99?=
=?UTF-8?q?=20bug=20with=20C-h=20f?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* src/doc.c (Fsubstitute_command_keys): Revert previous change.
Instead, to fix the core dump, first convert source string to a
multibyte temporary if it is not multibyte already. As before,
keep the original string if there are no changes (Bug#24206).
---
src/doc.c | 24 +++++++-----------------
1 file changed, 7 insertions(+), 17 deletions(-)
diff --git a/src/doc.c b/src/doc.c
index 86e1e0d..4f5f7a4 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -750,7 +750,7 @@ Otherwise, return a new string. */)
unsigned char const *start;
ptrdiff_t length, length_byte;
Lisp_Object name;
- bool multibyte, pure_ascii;
+ bool multibyte;
ptrdiff_t nchars;
if (NILP (string))
@@ -763,12 +763,9 @@ Otherwise, return a new string. */)
enum text_quoting_style quoting_style = text_quoting_style ();
+ Lisp_Object orig_string = string;
+ string = Fstring_make_multibyte (string);
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)
@@ -950,11 +947,8 @@ 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:
@@ -973,15 +967,11 @@ Otherwise, return a new string. */)
}
}
else if ((strp[0] == '`' || strp[0] == '\'')
- && quoting_style == CURVE_QUOTING_STYLE
- && multibyte)
+ && 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;
}
@@ -1036,7 +1026,7 @@ Otherwise, return a new string. */)
}
}
else
- tem = string;
+ tem = orig_string;
xfree (buf);
return tem;
}
--
2.5.5
^ permalink raw reply related [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 17:37 ` Paul Eggert
@ 2016-08-16 17:45 ` John Wiegley
2016-08-16 17:55 ` Paul Eggert
2016-08-16 18:31 ` Eli Zaretskii
1 sibling, 1 reply; 47+ messages in thread
From: John Wiegley @ 2016-08-16 17:45 UTC (permalink / raw)
To: Paul Eggert; +Cc: p.stephani2, schwab, 24206, nicolas
[-- Attachment #1: Type: text/plain, Size: 506 bytes --]
>>>>> Paul Eggert <eggert@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
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 629 bytes --]
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 17:45 ` John Wiegley
@ 2016-08-16 17:55 ` Paul Eggert
2016-08-16 17:57 ` John Wiegley
2016-08-16 18:44 ` Dmitry Gutov
0 siblings, 2 replies; 47+ messages in thread
From: Paul Eggert @ 2016-08-16 17:55 UTC (permalink / raw)
To: John Wiegley; +Cc: p.stephani2, schwab, 24206, nicolas
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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 17:55 ` Paul Eggert
@ 2016-08-16 17:57 ` John Wiegley
2016-08-16 18:44 ` Dmitry Gutov
1 sibling, 0 replies; 47+ messages in thread
From: John Wiegley @ 2016-08-16 17:57 UTC (permalink / raw)
To: Paul Eggert; +Cc: p.stephani2, schwab, 24206, nicolas
>>>>> Paul Eggert <eggert@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
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 17:55 ` Paul Eggert
2016-08-16 17:57 ` John Wiegley
@ 2016-08-16 18:44 ` Dmitry Gutov
1 sibling, 0 replies; 47+ messages in thread
From: Dmitry Gutov @ 2016-08-16 18:44 UTC (permalink / raw)
To: Paul Eggert, John Wiegley; +Cc: p.stephani2, schwab, 24206, nicolas
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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 17:37 ` Paul Eggert
2016-08-16 17:45 ` John Wiegley
@ 2016-08-16 18:31 ` Eli Zaretskii
1 sibling, 0 replies; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-16 18:31 UTC (permalink / raw)
To: Paul Eggert; +Cc: p.stephani2, johnw, schwab, nicolas, 24206
> Cc: schwab@linux-m68k.org, p.stephani2@gmail.com, johnw@gnu.org,
> nicolas@petton.fr, 24206@debbugs.gnu.org
> From: Paul Eggert <eggert@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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-15 20:41 ` Paul Eggert
2016-08-16 14:38 ` Eli Zaretskii
@ 2016-08-16 14:52 ` Eli Zaretskii
2016-08-16 21:07 ` Paul Eggert
1 sibling, 1 reply; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-16 14:52 UTC (permalink / raw)
To: Paul Eggert; +Cc: p.stephani2, johnw, schwab, 24206
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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 14:52 ` Eli Zaretskii
@ 2016-08-16 21:07 ` Paul Eggert
2016-08-17 15:12 ` Eli Zaretskii
2016-08-17 17:50 ` Dmitry Gutov
0 siblings, 2 replies; 47+ messages in thread
From: Paul Eggert @ 2016-08-16 21:07 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: p.stephani2, johnw, schwab, 24206
[-- Attachment #1: Type: text/plain, Size: 2051 bytes --]
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. :-)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Omit-substitute-command-keys-code-no-longer-needed.patch --]
[-- Type: text/x-diff; name="0001-Omit-substitute-command-keys-code-no-longer-needed.patch", Size: 1420 bytes --]
From bc5a55262382da9cc4b1999df7ce195b7f825d4b Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Tue, 16 Aug 2016 13:16:49 -0700
Subject: [PATCH] Omit substitute-command-keys code no longer needed
* src/doc.c (Fsubstitute_command_keys):
Remove duplicate initializations.
---
src/doc.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/src/doc.c b/src/doc.c
index 37a731b..4b91831 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -743,10 +743,12 @@ Otherwise, return a new string. */)
if (NILP (string))
return Qnil;
+ /* If STRING contains non-ASCII unibyte data, process its
+ properly-encoded multibyte equivalent instead. This simplifies
+ the implementation and is OK since substitute-command-keys is
+ intended for use only on text strings. Keep STRING around, since
+ it will be returned if no changes occur. */
Lisp_Object str = Fstring_make_multibyte (string);
- tem = Qnil;
- keymap = Qnil;
- name = Qnil;
enum text_quoting_style quoting_style = text_quoting_style ();
@@ -905,6 +907,8 @@ Otherwise, return a new string. */)
}
subst_string:
+ /* Convert non-ASCII unibyte data to properly-encoded multibyte,
+ for the same reason STRING was converted to STR. */
tem = Fstring_make_multibyte (tem);
start = SDATA (tem);
length = SCHARS (tem);
--
2.7.4
^ permalink raw reply related [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 21:07 ` Paul Eggert
@ 2016-08-17 15:12 ` Eli Zaretskii
2016-08-17 17:41 ` Paul Eggert
2016-08-17 17:50 ` Dmitry Gutov
1 sibling, 1 reply; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-17 15:12 UTC (permalink / raw)
To: Paul Eggert; +Cc: johnw, 24206
> Cc: schwab@linux-m68k.org, p.stephani2@gmail.com, johnw@gnu.org,
> 24206@debbugs.gnu.org
> From: Paul Eggert <eggert@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...)
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-17 15:12 ` Eli Zaretskii
@ 2016-08-17 17:41 ` Paul Eggert
2016-08-17 18:06 ` Eli Zaretskii
0 siblings, 1 reply; 47+ messages in thread
From: Paul Eggert @ 2016-08-17 17:41 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: johnw, 24206
[-- Attachment #1: Type: text/plain, Size: 5924 bytes --]
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! :-)
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-src-doc.c-Fsubstitute_command_keys-Clarify-GC-commen.patch --]
[-- Type: text/x-diff; name="0001-src-doc.c-Fsubstitute_command_keys-Clarify-GC-commen.patch", Size: 1092 bytes --]
From 70a5e67e9a072b6f22343fc0c7eed91dfdaf8025 Mon Sep 17 00:00:00 2001
From: Paul Eggert <eggert@cs.ucla.edu>
Date: Wed, 17 Aug 2016 10:15:53 -0700
Subject: [PATCH] * src/doc.c (Fsubstitute_command_keys): Clarify GC comments.
---
src/doc.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/doc.c b/src/doc.c
index 4b91831..6376398 100644
--- a/src/doc.c
+++ b/src/doc.c
@@ -821,7 +821,8 @@ Otherwise, return a new string. */)
goto do_remap;
}
- /* Take relocation of string contents into account. */
+ /* Fwhere_is_internal can GC, so take relocation of string
+ contents into account. */
strp = SDATA (str) + idx;
start = strp - length_byte - 1;
@@ -936,7 +937,8 @@ Otherwise, return a new string. */)
bufp += length_byte;
nchars += length;
- /* Take relocation of string contents into account. */
+ /* Some of the previous code can GC, so take relocation of
+ string contents into account. */
strp = SDATA (str) + idx;
continue;
--
2.5.5
^ permalink raw reply related [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-17 17:41 ` Paul Eggert
@ 2016-08-17 18:06 ` Eli Zaretskii
2016-08-17 20:52 ` Paul Eggert
0 siblings, 1 reply; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-17 18:06 UTC (permalink / raw)
To: Paul Eggert; +Cc: johnw, 24206
> Cc: johnw@gnu.org, 24206@debbugs.gnu.org
> From: Paul Eggert <eggert@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!
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-17 18:06 ` Eli Zaretskii
@ 2016-08-17 20:52 ` Paul Eggert
2016-08-18 14:30 ` Eli Zaretskii
0 siblings, 1 reply; 47+ messages in thread
From: Paul Eggert @ 2016-08-17 20:52 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: johnw, 24206
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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-17 20:52 ` Paul Eggert
@ 2016-08-18 14:30 ` Eli Zaretskii
2016-08-18 18:33 ` Paul Eggert
0 siblings, 1 reply; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-18 14:30 UTC (permalink / raw)
To: Paul Eggert; +Cc: johnw, 24206
> Cc: johnw@gnu.org, 24206@debbugs.gnu.org
> From: Paul Eggert <eggert@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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-18 14:30 ` Eli Zaretskii
@ 2016-08-18 18:33 ` Paul Eggert
2016-08-18 18:58 ` Eli Zaretskii
0 siblings, 1 reply; 47+ messages in thread
From: Paul Eggert @ 2016-08-18 18:33 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: johnw, 24206
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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-18 18:33 ` Paul Eggert
@ 2016-08-18 18:58 ` Eli Zaretskii
0 siblings, 0 replies; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-18 18:58 UTC (permalink / raw)
To: Paul Eggert; +Cc: johnw, 24206
> Cc: johnw@gnu.org, 24206@debbugs.gnu.org
> From: Paul Eggert <eggert@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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-16 21:07 ` Paul Eggert
2016-08-17 15:12 ` Eli Zaretskii
@ 2016-08-17 17:50 ` Dmitry Gutov
1 sibling, 0 replies; 47+ messages in thread
From: Dmitry Gutov @ 2016-08-17 17:50 UTC (permalink / raw)
To: Paul Eggert, Eli Zaretskii; +Cc: p.stephani2, johnw, schwab, 24206
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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-14 4:54 ` Paul Eggert
2016-08-14 14:27 ` Eli Zaretskii
@ 2016-08-14 15:21 ` Dmitry Gutov
2016-08-15 1:53 ` Paul Eggert
2016-08-14 17:21 ` Eli Zaretskii
2 siblings, 1 reply; 47+ messages in thread
From: Dmitry Gutov @ 2016-08-14 15:21 UTC (permalink / raw)
To: 24206, eggert, p.stephani2
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.
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-14 4:54 ` Paul Eggert
2016-08-14 14:27 ` Eli Zaretskii
2016-08-14 15:21 ` Dmitry Gutov
@ 2016-08-14 17:21 ` Eli Zaretskii
2016-08-14 20:16 ` Paul Eggert
2 siblings, 1 reply; 47+ messages in thread
From: Eli Zaretskii @ 2016-08-14 17:21 UTC (permalink / raw)
To: Paul Eggert; +Cc: p.stephani2, johnw, nicolas, 24206
> Cc: 24206-done@debbugs.gnu.org, Eli Zaretskii <eliz@gnu.org>,
> John Wiegley <johnw@gnu.org>, Nicolas Petton <nicolas@petton.fr>
> From: Paul Eggert <eggert@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;
^ permalink raw reply related [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-14 17:21 ` Eli Zaretskii
@ 2016-08-14 20:16 ` Paul Eggert
2016-08-15 1:12 ` Paul Eggert
0 siblings, 1 reply; 47+ messages in thread
From: Paul Eggert @ 2016-08-14 20:16 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: p.stephani2, johnw, nicolas, 24206
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".
^ permalink raw reply [flat|nested] 47+ messages in thread
* bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault
2016-08-14 20:16 ` Paul Eggert
@ 2016-08-15 1:12 ` Paul Eggert
0 siblings, 0 replies; 47+ messages in thread
From: Paul Eggert @ 2016-08-15 1:12 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: p.stephani2, johnw, nicolas, 24206
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>.
^ permalink raw reply [flat|nested] 47+ messages in thread
end of thread, other threads:[~2016-08-18 18:58 UTC | newest]
Thread overview: 47+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-11 18:55 bug#24206: 25.1; Curly quotes generate invalid strings, leading to a segfault Phil
2016-08-11 20:05 ` Eli Zaretskii
2016-08-11 23:51 ` Philipp Stephani
2016-08-13 8:32 ` Eli Zaretskii
2016-08-13 12:25 ` Nicolas Petton
2016-08-14 6:33 ` John Wiegley
2016-08-14 4:54 ` Paul Eggert
2016-08-14 14:27 ` Eli Zaretskii
2016-08-14 14:51 ` Paul Eggert
2016-08-14 17:18 ` Eli Zaretskii
2016-08-15 2:04 ` Paul Eggert
2016-08-15 16:09 ` Eli Zaretskii
2016-08-15 16:46 ` Andreas Schwab
2016-08-15 18:43 ` Paul Eggert
2016-08-15 19:04 ` Eli Zaretskii
2016-08-15 18:51 ` Eli Zaretskii
2016-08-15 19:05 ` John Wiegley
2016-08-15 20:41 ` Paul Eggert
2016-08-16 14:38 ` Eli Zaretskii
2016-08-16 15:25 ` John Wiegley
2016-08-16 16:09 ` Nicolas Petton
2016-08-18 16:30 ` Nicolas Petton
2016-08-18 16:41 ` John Wiegley
2016-08-18 17:35 ` Eli Zaretskii
2016-08-16 17:37 ` Paul Eggert
2016-08-16 17:45 ` John Wiegley
2016-08-16 17:55 ` Paul Eggert
2016-08-16 17:57 ` John Wiegley
2016-08-16 18:44 ` Dmitry Gutov
2016-08-16 18:31 ` Eli Zaretskii
2016-08-16 14:52 ` Eli Zaretskii
2016-08-16 21:07 ` Paul Eggert
2016-08-17 15:12 ` Eli Zaretskii
2016-08-17 17:41 ` Paul Eggert
2016-08-17 18:06 ` Eli Zaretskii
2016-08-17 20:52 ` Paul Eggert
2016-08-18 14:30 ` Eli Zaretskii
2016-08-18 18:33 ` Paul Eggert
2016-08-18 18:58 ` Eli Zaretskii
2016-08-17 17:50 ` Dmitry Gutov
2016-08-14 15:21 ` Dmitry Gutov
2016-08-15 1:53 ` Paul Eggert
2016-08-15 1:57 ` Dmitry Gutov
2016-08-15 2:05 ` Paul Eggert
2016-08-14 17:21 ` Eli Zaretskii
2016-08-14 20:16 ` Paul Eggert
2016-08-15 1:12 ` Paul Eggert
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).