Path: csiph.com!news.nrbbs.org!border-2.nntp.ord.giganews.com!nntp.giganews.com!Xl.tags.giganews.com!local-4.nntp.ord.giganews.com!news.giganews.com.POSTED!not-for-mail NNTP-Posting-Date: Sat, 10 Oct 2026 23:07:17 +0000 From: steve g Newsgroups: comp.lang.lisp Subject: Re: GNU Emacs native compiled functions (was Re: Malicious Computer Architecture) References: <113ovuj$23t9c$1@dont-email.me> <114ge0v$24ndu$2@dont-email.me> <114h1v7$2b0po$2@dont-email.me> <114h24r$9nm$1@reader1.panix.com> <114h26m$2b0po$3@dont-email.me> <114kain$3erqe$1@dont-email.me> <114oc02$qbqp$1@dont-email.me> <114odai$qp0b$1@dont-email.me> <114piou$14lmv$2@dont-email.me> <114pno3$16g53$1@dont-email.me> <114pqg5$17lne$1@dont-email.me> <5T_bS.71191$4Fu9.56234@fx05.ams4> <27248.58134.739884.512819@parhasard.net> <87v78mz15a.fsf_-_@debian> <87wlsmo83m.fsf@debian> <118kcc1$1mri1$2@dont-email.me> <87wlrvendh.fsf@gmail.com> <20261005164228.546@kylheku.com> Date: Sat, 10 Oct 2026 19:07:16 -0400 Message-ID: <87bj9117ff.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:xqp3a2KW5TLTNyWgbfg6fCKgTik= MIME-Version: 1.0 Content-Type: text/plain Lines: 41 X-Usenet-Provider: http://www.giganews.com X-Trace: sv3-IJCfHD/NsHdBd3wIj+PKHe08RrwUZK1zaKRj+DwSh4wolMZzdo+ahVRQvF5WBzj7qoWGugRcmNF8XnM!Zl/yAvLbnM4yEyN3ErYlLSaXtiNKYl7VL86j3mOpk901ojA= X-Complaints-To: abuse@giganews.com X-DMCA-Notifications: http://www.giganews.com/info/dmca.html X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.40 Xref: csiph.com comp.lang.lisp:61722 Kaz Kylheku <046-301-5902@kylheku.com> writes: >> The biggest problem with dynamic scoping is variable shadowing. > > Not sure about "biggest". > > Variable shadowing can be worked around with conventions, leaving only > accidents. Umm, not the best programmer in the world, but isn't namespace an issue? > Use *earmuffs* for variables intended to be context variables > (true specials). How do you define a context? I was thinking about sessions. > Omit them for locals. How do you mean? How do you implement local bindings? aside from make-local-variable (emacs)? I usually use let. > Do not use SETQ on a variable you did not bind > with LET or other binding construct: this needs discipine, > verification/tooling, because people make typos: How can you determine bindings in the future or the past? > (let ((foobar 3)) > (setq fubar 42)) ; clobbered caller's private fubar > > The lack of closure over bindings is a big problem. That has workarounds > but they are not that nice and not just coding conventions/discipine. > >> I usually use the same name for the same variables; str, len, pos, epos, idx, >> rdx; horrifying. > > So if you make a typo somewhere, either in the binding or the > referencing, so that they are talking past each other, you are working > with the wrong frame's variable of the same name. No, I just stubborn.