[COFF] ancient macros, machine code translation, as mental architecture models
Paul Winalski
paul.winalski at gmail.com
Tue Jul 16 00:26:18 AEST 2024
On Mon, Jul 15, 2024 at 8:46 AM Douglas McIlroy <
douglas.mcilroy at dartmouth.edu> wrote:
>
> We never considered anything but recursive expansion, where macro
> definitions can contain macro calls; thus the TX-0 model comes as quite a
> surprise. We kept a modest stack of the state of each active macro
> expansion. We certainly did not foresee that within a few years some
> applications would need a 70-level stack!
>
> As I mentioned in a previous reply, BLISS has a very powerful and
extensive macro facility. This led to an obscure and difficult to fix
parser bug.
The outermost organizational unit of a BLISS program is the module. All
declarations, routines, identifiers, etc. have a syntactic scope limited to
the module in which they occur. Modules are delimited by the keywords
MODULE and ELUOM (module spelt backwards).
The bug was triggered by a call to a macro that included an ELUDOM followed
by a new MODULE declaration. When the parser saw the ELUDOM it threw away
all of the context for the current module, including the parser context for
the macro that was being processed. The parser blew its brains out and the
compilation terminated with an internal compiler error.
-Paul W.
P. S. - I once remarked that in BLISS we don't solve problems, we ELUDOM.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.tuhs.org/pipermail/coff/attachments/20240715/78b0bf82/attachment-0001.htm>
More information about the COFF
mailing list