Re: Follow-up to earlier question

Douglas Katzman via Sbcl-help <[email protected]> Fri, 27 Mar 2026 12:37:39 -0400
Newsgroups gmane.lisp.steel-bank.general
Message-ID <CAOrNasxvAfsUe7FmWpf0yqYrpekJMwz0pZnp2pusk6X9GV7Ucw@mail.gmail.com>
--0000000000004f512c064e041f31
Content-Type: multipart/alternative; boundary="0000000000004f5129064e041f2f"

--0000000000004f5129064e041f2f
Content-Type: text/plain; charset="UTF-8"

Algorithmic improvements in the pretty-printer could potentially decrease
its use of special vars. However, user-defined print-object methods could
be to blame.  The size to which you increased the binding stack (10x over
the default) should have allowed *640 thousand* bindings. I am curious to
know which vars are on the stack so I concocted a patch to ldb-monitor
which can tell you.  Try rebuilding with the patch (which requires the
latest unreleased SBCL), entering ldb-monitor, executing the added
'bindings' command, and then you will see output resembling the following:
ldb> *bindings*
slot      4: *                              ffffffffffffffff
slot      5: **                             ffffffffffffffff
slot      6: ***                            ffffffffffffffff
...
slot    146: *ERROR-OUTPUT*                 ffffffffffffffff
slot    148: *READ-SUPPRESS*                5200000fff97
slot    149: *SUPPRESS-FRAME-PRINT*         ffffffffffffffff

>

--0000000000004f5129064e041f2f
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div>Algorithmic improvements in the pret=
ty-printer could potentially decrease its use of special vars. However, use=
r-defined print-object methods could be to blame.=C2=A0 The size to which=
=C2=A0you increased=C2=A0the binding stack (10x over the default) should ha=
ve allowed <i>640 thousand</i> bindings. I am curious to know which vars ar=
e on the stack so I concocted a patch to ldb-monitor which can tell you.=C2=
=A0 Try rebuilding=C2=A0with the patch (which requires the latest unrelease=
d SBCL), entering ldb-monitor, executing the added &#39;bindings&#39; comma=
nd, and then you will see output resembling the following:</div><div><font =
face=3D"monospace">ldb&gt; <b>bindings</b></font></div><div><font face=3D"m=
onospace">slot =C2=A0 =C2=A0 =C2=A04: * =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ffffff=
ffffffffff<br>slot =C2=A0 =C2=A0 =C2=A05: ** =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 fffff=
fffffffffff<br>slot =C2=A0 =C2=A0 =C2=A06: *** =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0ffffff=
ffffffffff</font></div><div><font face=3D"monospace">...</font></div><font =
face=3D"monospace">slot =C2=A0 =C2=A0146: *ERROR-OUTPUT* =C2=A0 =C2=A0 =C2=
=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ffffffffffffffff<br>slot =C2=A0 =C2=
=A0148: *READ-SUPPRESS* =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A05200000fff97<br>slot =C2=A0 =C2=A0149: *SUPPRESS-FRAME-PRINT* =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 ffffffffffffffff</font><div><div class=3D"gmail_quote"=
><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border=
-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div style=3D"font-=
family:sans-serif">
<div style=3D"white-space:normal">

</div>
</div>
</div>


</blockquote></div></div></div>
</div>

--0000000000004f5129064e041f2f--
--0000000000004f512c064e041f31
Content-Type: application/x-patch; name="bindingscmd.patch"
Content-Disposition: attachment; filename="bindingscmd.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mn94jngi0>
X-Attachment-Id: f_mn94jngi0

ZGlmZiAtLWdpdCBhL3NyYy9ydW50aW1lL21vbml0b3IuYyBiL3NyYy9ydW50aW1lL21vbml0b3Iu
YwppbmRleCBkZWNiMTUwNTUuLjJiZGVlMjgzNCAxMDA2NDQKLS0tIGEvc3JjL3J1bnRpbWUvbW9u
aXRvci5jCisrKyBiL3NyYy9ydW50aW1lL21vbml0b3IuYwpAQCAtMjgwLDcgKzI4MCw3IEBAIHN0
YXRpYyBjbWQgY2FsbF9jbWQsIGR1bXBfY21kLCBwcmludF9jbWQsIHF1aXRfY21kLCBoZWxwX2Nt
ZDsKIHN0YXRpYyBjbWQgZmx1c2hfY21kLCByZWdzX2NtZCwgZXhpdF9jbWQsIHByaW50X2NvZGUs
IHNldF9jb250ZXh0X2NtZDsKIHN0YXRpYyBjbWQgcHJpbnRfY29udGV4dF9jbWQsIHB0ZV9jbWQs
IHNlYXJjaF9jbWQsIGhhc2h0YWJsZV9jbWQ7CiBzdGF0aWMgY21kIGJhY2t0cmFjZV9jbWQsIHRo
cmVhZGJ0X2NtZCwgY2F0Y2hlcnNfY21kOwotc3RhdGljIGNtZCB0aHJlYWRzX2NtZCwgZmluZHBh
dGhfY21kLCBsYXlvdXRzX2NtZDsKK3N0YXRpYyBjbWQgdGhyZWFkc19jbWQsIGZpbmRwYXRoX2Nt
ZCwgbGF5b3V0c19jbWQsIGJpbmRpbmdzX2NtZDsKICNpZmRlZiBBVE9NSUNfTE9HR0lORwogc3Rh
dGljIGNtZCBldmVudHNfY21kOwogI2VuZGlmCkBAIC00NjYsNiArNDY2LDcgQEAgc3RhdGljIHN0
cnVjdCBjbWQgewogICAgIHsiaGVscCIsICJEaXNwbGF5IHRoaXMgaGVscCBpbmZvcm1hdGlvbi4i
LCBoZWxwX2NtZH0sCiAgICAgeyI/IiwgIihhbiBhbGlhcyBmb3IgaGVscCkiLCBoZWxwX2NtZH0s
CiAgICAgeyJiYWNrdHJhY2UiLCAiQmFja3RyYWNlIHVwIHRvIE4gZnJhbWVzLiIsIGJhY2t0cmFj
ZV9jbWR9LAorICAgIHsiYmluZGluZ3MiLCAiU2hvdyBiaW5kaW5nIHN0YWNrIG9mIHRoaXMgdGhy
ZWFkIiwgYmluZGluZ3NfY21kfSwKICAgICB7ImJ0dGhyZWFkIiwgIkJhY2t0cmFjZSBzcGVjaWZp
ZWQgdGhyZWFkIiwgdGhyZWFkYnRfY21kfSwKICAgICB7ImNhbGwiLCAiQ2FsbCBGVU5DVElPTiB3
aXRoIEFSRzEsIEFSRzIsIC4uLiIsIGNhbGxfY21kfSwKICAgICB7ImNhdGNoZXJzIiwgIlByaW50
IGEgbGlzdCBvZiBhbGwgdGhlIGFjdGl2ZSBjYXRjaGVycy4iLCBjYXRjaGVyc19jbWR9LApAQCAt
MTA5Nyw2ICsxMDk4LDI1IEBAIHN0YXRpYyBpbnQgbGF5b3V0c19jbWQoY2hhciBfX2F0dHJpYnV0
ZV9fKCh1bnVzZWQpKSAqKnB0ciwgaW9jaGFubmVsX3QgaW8pCiAgICAgcmV0dXJuIDA7CiB9CiAK
K3N0YXRpYyBpbnQgYmluZGluZ3NfY21kKGNoYXIgX19hdHRyaWJ1dGVfXygodW51c2VkKSkgKipw
dHIsIGlvY2hhbm5lbF90IGlvKQoreworICAgIHN0cnVjdCB0aHJlYWQqIHRoID0gZ2V0X3NiX3Zt
X3RocmVhZCgpOworICAgIHN0cnVjdCBiaW5kaW5nKiBzdGFydCA9ICh2b2lkKil0aC0+YmluZGlu
Z19zdGFja19zdGFydDsKKyAgICBzdHJ1Y3QgYmluZGluZyogZW5kID0gKHZvaWQqKWdldF9iaW5k
aW5nX3N0YWNrX3BvaW50ZXIodGgpOworICAgIGZvciAoc3RydWN0IGJpbmRpbmcqIGIgPSBzdGFy
dCA7IGIgPCBlbmQgOyArK2IgKSB7CisgICAgICAgIGludCB0bHNvZmZzZXQgPSBiLT5zeW1ib2w7
CisgICAgICAgIGlmICh0bHNvZmZzZXQgPCA5MDAgLyoga2x1ZGdlLCBnb29kIGVub3VnaCBmb3Ig
bm93ICovKSBjb250aW51ZTsKKyAgICAgICAgbGlzcG9iaiB0YWdnZWRzeW1ib2wgPSB0bHNpbmRl
eF90b19zeW1ib2xfbWFwWyh0bHNvZmZzZXQtOCk+PigxK1dPUkRfU0hJRlQpXTsKKyAgICAgICAg
aWYgKGxvd3RhZ19vZih0YWdnZWRzeW1ib2wpPT1PVEhFUl9QT0lOVEVSX0xPV1RBRykgeworICAg
ICAgICAgICAgc3RydWN0IHN5bWJvbCogc3ltID0gU1lNQk9MKHRhZ2dlZHN5bWJvbCk7CisgICAg
ICAgICAgICBpZiAobG93dGFnX29mKHN5bS0+bmFtZSk9PU9USEVSX1BPSU5URVJfTE9XVEFHICYm
IHNpbXBsZV9iYXNlX3N0cmluZ19wKHN5bS0+bmFtZSkpCisgICAgICAgICAgICAgICAgZnByaW50
Zihpby0+b3V0LCAic2xvdCAlNmQ6ICUtMzBzICVseFxuIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIChpbnQpKGIgLSBzdGFydCksIChjaGFyKilWRUNUT1Ioc3ltLT5uYW1lKS0+ZGF0YSwgYi0+
dmFsdWUpOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgaW50
IG1vbml0b3JfbG9vcChjaGFyICooKikoY2hhciosIGludCwgRklMRSopLCBzdHJ1Y3QgaW9jaGFu
bmVsKTsKIGV4dGVybiBGSUxFICpnY19hY3Rpdml0eWxvZ19maWxlOwogdm9pZAo=
--0000000000004f512c064e041f31
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--0000000000004f512c064e041f31
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Sbcl-help mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sbcl-help

--0000000000004f512c064e041f31--