On 2/08/2013 7:30 AM, Paul Gilmartin wrote:
On Thu, 1 Aug 2013 17:50:10 -0400, John Gilmore wrote:

What seems to have fallen through the cracks in this [tangential]
discussion is that the use of code-modification schemes, ALTER and the
like, in a routine makes it non-reentrant.

This in my view is the crucial objection to their use.

One might imagine restoring reentrancy by making the alterable
fragments pointers into obtained storage.

Almost as bad as code-modification is the use in C of function pointers
in structs.  BTDT.

What's wrong with function pointers in structs? That's the only way you can do polymorphism in C. I would argue that they are rather useful. The interface for Unix device drivers is function pointers in structs.


In PostScript, subroutines are first-class data objects.  Something
similar applies to Lisp.  Sometimes the interpreter helps with
the debugging.

And there was a version of the PDP-8 with the OS in ROM with all
modifiable locations replaced with pointers to locations in RAM.

PSA makes z/OS partly reentrant.  Exploited by multiple CPUs in any
LPAR, but not, AFAIK, by VM or PR/SM.

CMS has a reentrant kernel (nucleus?), precious for virtualization.
I believe Linux has not.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to