>>> OTOH, strings must be aligned at least to `Integer' size. (Accessing
>>> the Capacity and Length fields requires alignment on some platforms
>>> and is at least more efficient on others; accessing the characters
>>> can also be more efficient when aligned.) Does your preprocessor
>>> take care of this?
>>>
>> Whether you choose to align the length field on an integer-size boundary or
>> not is a decision you could make based on a time versus space trade-off.
>
> Unless you don't want to crash your program on some platforms ...
 
If alignment is required on a particular platform, then there is no decision to make.  You have to align the strings. 

>> The
>> macros that I have written happen to store the strings with no gaps at all, and
>> do not do any alignment.
>
>So they're not suitable for portable programs.
 
The prologue of these macros says, "This version is intended mainly as a demonstration."  It is an example designed to illustrate some of the features and capabilities of the Pascal Macro Compiler.  Users who do not need alignment can use the macros as provided.  Users who need alignment can easily add that feature to the macros.
 
If there are any requests from bona fide users of the Pascal Macro Compiler for an alignment feature, then I will be glad to add it.
 
Frank Rubin