Idea Delivered

*** It's back !!! ***

This work was completed and the XyMacro manual available with XPP 9.6 and above on docs.rws.com includes the primitive identifier.

Bring back the '*' in our Xymacro book, please

In the  old versions of the XyMacro book the macro 'primitives' were indicated with an asterisk symbol or *.
In the newer versions of the same manual this indication has disappeared and now there is no more way of knowing if a macro is a primitive or not.
Which is a nuisance and also a danger when writing macros.
Calling primitives directly as a primitive using the </ ..> syntax prevented you from having another macro somewhere that accidently had the same name as the primitive and that was overwriting the meaning the primitive by accident.

So please bring back the asterisk notation...both in the index at the end of the xymacro book and in the regular pages explaining the use of the macro.

Parents
  • This is being worked on as we speak, with one caveat.

    The change to take out the display of an asterisk for 'primitives' was done so long ago now that no one really remembers why that was done.

    Our best guess is that it was discovered that the asterisk was being displayed for some macros, where calling the </yy> primitive was not identical in all cases to calling the xy_sys <yy> macro. At the time it apparently was not thought that displaying the asterisk was that useful (or used) by customers, and that rather than analyze every single macro marked with an asterisk to determine whether or not the asterisk should really be displayed, it was decided to just take them out entirely (done in one fell swoop by taking out the output of the asterisk in one of our documentation internal macros).

    So, in restoring the display of the asterisks to the manual an analysis is being done of all of those macros that used to be marked (as well as doing an analysis of "new" macros added since then that should be marked as 'primitives' and even one macros we might have missed marking with an asterisk).

    Unless the calling of a </yy> primitive is identical in all cases to calling the xy_sys <yy> macro, the asterisk is not going to be displayed for a macro in the manual.

    Some examples of this "change" where the asterisk was being displayed but now is not going to be displayed are <pc>, <ps>, and <bx>.

    The expansion for the <pc> macro starts with the "end line" (*) operator, so calling </pc> is not identical in all cases to calling <pc>.

    The expansion for the <ps> macro starts with the "end word" (!) operator.

    The expansion for the <bx> macro is actually a couple of </mc> macros, where it checks for being in math with %inmath and does an </MM;71;3> "math inhibit break" macro when in math or does a </bx> when not in math. So, </bx> is not identical in all cases to <bx>.

    Just wanted everyone to know about this, so that when you get the updated documentation with the asterisks put back in you will know why some macros that had an asterisk before no longer do now.

Comment
  • This is being worked on as we speak, with one caveat.

    The change to take out the display of an asterisk for 'primitives' was done so long ago now that no one really remembers why that was done.

    Our best guess is that it was discovered that the asterisk was being displayed for some macros, where calling the </yy> primitive was not identical in all cases to calling the xy_sys <yy> macro. At the time it apparently was not thought that displaying the asterisk was that useful (or used) by customers, and that rather than analyze every single macro marked with an asterisk to determine whether or not the asterisk should really be displayed, it was decided to just take them out entirely (done in one fell swoop by taking out the output of the asterisk in one of our documentation internal macros).

    So, in restoring the display of the asterisks to the manual an analysis is being done of all of those macros that used to be marked (as well as doing an analysis of "new" macros added since then that should be marked as 'primitives' and even one macros we might have missed marking with an asterisk).

    Unless the calling of a </yy> primitive is identical in all cases to calling the xy_sys <yy> macro, the asterisk is not going to be displayed for a macro in the manual.

    Some examples of this "change" where the asterisk was being displayed but now is not going to be displayed are <pc>, <ps>, and <bx>.

    The expansion for the <pc> macro starts with the "end line" (*) operator, so calling </pc> is not identical in all cases to calling <pc>.

    The expansion for the <ps> macro starts with the "end word" (!) operator.

    The expansion for the <bx> macro is actually a couple of </mc> macros, where it checks for being in math with %inmath and does an </MM;71;3> "math inhibit break" macro when in math or does a </bx> when not in math. So, </bx> is not identical in all cases to <bx>.

    Just wanted everyone to know about this, so that when you get the updated documentation with the asterisks put back in you will know why some macros that had an asterisk before no longer do now.

Children