[Info-vax] How much of VMS is still in MACRO-32?

John Reagan xyzzy1959 at gmail.com
Tue Jun 1 08:11:14 EDT 2021


On Monday, May 31, 2021 at 8:43:47 PM UTC-4, lee.g... at gmail.com wrote:
> On 5/31/2021 8:07 AM, Simon Clubley wrote: 
> > On 2021-05-31, Camiel Vanderhoeven <iamc... at gmail.com> wrote: 
> >> Op maandag 31 mei 2021 om 05:19:19 UTC+2 schreef Dave Froble: 
> >>> I'm curious. Do you have any tools that can pinpoint all references to 
> >>> a particular field or argument? If not, did you attempt to produce such 
> >>> a tool? 
> >> 
> >> SEARCH? :-) 
> >> 
> >> Seriously, having the structure name repeated in each field name helps a lot with this. Consider a field simply called "id" in a structure "employee". "SEARCH *.* id" would likely turn up fields called "id" in various different structures, loose variables called "id", etc. Having that field called emp$l_id makes for a much more meaningful result from "SEARCH *.* emp$l_id". 
> >> 
> >> Pinpointing references to an argument to a procedure written in Macro requires following the logic, as the argument may be stored on the stack, moved to a different register, etc. 
> >> 
> > 
> > Is there any self-modifying code in VMS ? (I hope the answer to that 
> > is no, BTW. :-)) 
> > 
> > Simon. 
> >
> I haven't looked lately, but circa 4.7, lib$tparse contained self 
> modifying code. 
> 
> -- 
> Lee K. Gleason N5ZMR 
> Control-G Consultants 
> lee.g... at comcast.net
I'm going to disagree with you. I've spent lots of time recently in LIB$TPARSE/LIB$TABLE_PARSE.
It is boring BLISS code with ugly data structures.  However, it is just another routine in LIBRTL.EXE.

When I read Simon's question about "self-modifying code", I took that as code that modifies itself
during program execution.  It turned into "generating code on the fly".  That's a different question.
I know of a few places that generate code on the fly but nothing in OS itself.

And the comments about the varioue EVAX_ builtins to update the i-cache for generating code on
the fly (and would self modifying code) varies from target to target.  Alpha has one set of instructions,
Itanium another, and x86 a different model still.



More information about the Info-vax mailing list