On 10/26/2016 10:47 AM, Mark Wielaard wrote:
On Wed, Oct 26, 2016 at 09:36:31AM -0700, Josh Stone wrote:
> On 10/26/2016 03:24 AM, Mark Wielaard wrote:
>> The name used in the standard and other DWARF implementations for
>> Programming Language One, PL/I, is DW_LANG_PLI (not DW_LANG_PL1).
>> +Version 0.168
>> +libdw: dwarf.h corrected the DW_LANG_PLI constant name (was DW_LANG_PL1).
>> + Any existing sources using the old name will have to be updated.
> That typo has been there since the dawn of elfutils.git, 2005-07-26
> commit b08d5a8fb42f. It seems callous to break API here, even if it was
> wrong. Why not include a #define to preserve compatibility?
Since it doesn't break ABI we have historically just fixed such wrong
constant names, see e.g. the removal in 0.160 of the non-existing
DW_TAG_mutable_type in 0.160. Given that others (libdwarf, binutils)
do define the correct name in their headers.
It doesn't matter what other headers do -- if someone was already using
the bad constant in elfutils' headers, that's an API break. But sure,
you might still decide that's acceptable.
Also I would be somewhat afraid that might break the generation
of known-dwarf.h (although I didn't try).
It might be ok for known-dwarf.h to know both PL1 and PLI.
Is there actually any source out there that uses this (wrong)
Lots of hits, but in the first few pages they're all just clones of
via Google I found at least one real hit from an elfutils user:
and it seems some version of eclipse cdt had the same typo:
and also found the typo in a dwarfstd issue:
>> - DW_LANG_PL1 = 0x000f, /* ISO PL/1:1976 */
>> + DW_LANG_PLI = 0x000f, /* ISO PL/1:1976 */
> You should correct the comment too, "PL/I".
The '1' in the comment really is correct, because that
is the actual name of the standard. That is probably where
the confusion came from.
Figure 8 in the DWARF 3 and 4 standards both call it "ANSI PL/I:1976"
(not "ISO"), as does Table 3.1 in the DWARF 5 draft I've got.
Wikipedia also uses "PL/I", and even has a redirect from "PL/1".
This "I" is pronounced "one" though, surely as a roman numeral.