[cfe-dev] Configuration files
Hal Finkel via cfe-dev
cfe-dev at lists.llvm.org
Wed Mar 15 10:14:02 PDT 2017
On 03/15/2017 12:04 PM, Serge Pavlov wrote:
>
>
> Thanks,
> --Serge
>
> 2017-03-15 23:21 GMT+07:00 Hal Finkel <hfinkel at anl.gov
> <mailto:hfinkel at anl.gov>>:
>
> On 03/15/2017 10:59 AM, Serge Pavlov wrote:
>
>> It looks like the features that may be added to the file format
>> in `@file` construct without disturbing existing functionality are:
>> - comments,
>> - splitting long lines with trailing '\',
>> - suppressing warnings on unused options.
>> The remaining feature is resolving names in nested `@file`
>> constructs, it must keep current behavior (resolve names relative
>> to current directory). This makes nesting constructs `@file`
>> inconvenient it not useless, but it does not look like a big loss.
>
> Can't you just make it configurable? If parsing an `@file`, do the
> old thing, otherwise, do the new thing?
>
>>
>> Configuration encoded in compiler file name, as in `armv7l-clang`
>> is not related to `@file`, so this functionality implemented in
>> https://reviews.llvm.org/D24933 <https://reviews.llvm.org/D24933>
>> remains unchanged. Explicit specification of config file in
>> command line should be made by `@file` option, there are several
>> issues as compared to the proposed `--config` option:
>> - config file must be specified by its full path otherwise it
>> won't be found if the current directory is changed by build
>> script. This limitation should not be a big problem if options
>> are specified in build scripts, but for manual invocations in
>> command line it is inconvenient.
>> - command line may contain several `@file` constructs, there may
>> be options before `@file`. If we want to distinguish config file
>> from others (for instance, we want to suppress unused option
>> warnings only in such files), we need to assume that only the
>> first option may load it.
>>
>> So if we are ready to sacrifice some convenience, config files
>> can be implemented on top of `@file` construct. If there are no
>> objections I'll update the patch.
>
> Maybe I'm missing something, but I think you're taking this the
> wrong way. I don't recommend giving up features in this sense. I
> think the question is: can we replace the current `@file`
> processing with the new config-file logic (just with some of the
> new features turned off)?
>
> If that can't be done reasonably, then I think that's okay too. We
> just should understand (and document) why.
>
>
> I understood the question as "can we load config files with @file not
> with new option", there were such opinions in this thread above. If
> the question is only about enhancements to processing of `@file`, the
> reply is yes. In the LLVM part of this patch config file parsing in
> implemented on top of `@file` processing
> (https://reviews.llvm.org/D24926, function `cl::tokenizeConfigFile`).
> It seems to me that comments and using '\' to glue lines may be
> enabled in `@file` as well, as an extension. Other features may be
> enabled for config files only but clang must somehow know that the
> file contains configuration.
Sounds good. I'll look at the patches.
-Hal
>
> Thanks,
> --Serge
--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20170315/1bf29adf/attachment.html>
More information about the cfe-dev
mailing list