#pragma


(isidoro carlo ghezzi) #1

Just another consideration: the consequence could be about avoiding any `#pragma` (or equivalent), semantic instructions out of comments, those, in my opinion, should be fully ignored by compiler and IDE: knowing that comments are not ignored by compiler or IDE, a developer may think not using comments his code at all.
`// isghe: maybe some hack code here it will be executed by IDE.`
That is why I am proposing a `#pragma` or equivalent.
thanks, Isidoro

// isghe: ok

I agree: "mark" (IMO) is in the same category as "todo" and "fixme", and all are bona fide comments. If you wish your code to be disabled without becoming parsed as a comment, use instead `#if false`.

···

On Sep 06, 2016, at 02:10 AM, isidoro carlo ghezzi <isidoro.ghezzi@icloud.com> wrote:
Sent from my iPhone
On 05 Sep 2016, at 22:31, Xiaodi Wu <xiaodi.wu@gmail.com> wrote:

On Mon, Sep 5, 2016 at 15:27 Jean-Daniel Dupas via swift-evolution <swift-evolution@swift.org> wrote:

Le 5 sept. 2016 à 00:53, isidoro carlo ghezzi via swift-evolution <swift-evolution@swift.org> a écrit :

Hi all,

I think the "old style" `#pragma` is necessary in Swift.
Exactly in the same way it is available in C/C++ or Objective-C/C++, or in something else portable way.

Because `#pragma` is not handled in Swift, in Xcode they overloaded the semantic of comments, giving to the comment `// MARK:` the semantic of `#pragma mark`

But my point of view is that, I would like that what it is written in a source comment (what it is written after a // or between /* */ ) should be fully ignore by compiler or IDE.

I understand that maybe a compiler shouldn't lose time handling `#pragma options`, but giving semantics to source comment, I think it can be dangerous and misunderstood.

The implementation in Swift compiler should be simple, ignoring any line beginning with `#pragma` (ok I know It is not simple)
The IDE will handle the `#pragma`

That's why they invented `#pragma`in C/C++ Objective-C/C++ right?

I don’t think it is a reason pragma exists. except for #pragma mark, I’m not sure the compiler ignore any pragma. They are used to control the compiler behaviors (controlling warning, specifying linker dependencies, enabled specific feature like OpenMP, etc…) and not at all to interact with the IDE. I would even says that pragma mark is an abuse of the #pragma construct as it is ignored by the compiler and used by the IDE only.

I’m strongly again introducing #pragma without very very good reason into swift. Asking the IDE to parse comment to extract metadata is not worst abusing pragma to do the same, and at least it is forward and backward compatible with any other tools.

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution


(Xiaodi Wu) #2

I'm not sure I understand. Swift comments are parsed. Are you saying that
this is a problem? If so, why do you think it's a problem?

···

On Tue, Sep 6, 2016 at 7:19 PM, isidoro carlo ghezzi < isidoro.ghezzi@icloud.com> wrote:

Just another consideration: the consequence could be about avoiding any
`#pragma` (or equivalent), semantic instructions out of comments, those, in
my opinion, should be fully ignored by compiler and IDE: knowing that
comments are not ignored by compiler or IDE, a developer may think not
using comments his code at all.
`// isghe: maybe some hack code here it will be executed by IDE.`
That is why I am proposing a `#pragma` or equivalent.
thanks, Isidoro

On Sep 06, 2016, at 02:10 AM, isidoro carlo ghezzi < > isidoro.ghezzi@icloud.com> wrote:

// isghe: ok

Sent from my iPhone

On 05 Sep 2016, at 22:31, Xiaodi Wu <xiaodi.wu@gmail.com> wrote:

I agree: "mark" (IMO) is in the same category as "todo" and "fixme", and
all are bona fide comments. If you wish your code to be disabled without
becoming parsed as a comment, use instead `#if false`.

On Mon, Sep 5, 2016 at 15:27 Jean-Daniel Dupas via swift-evolution < > swift-evolution@swift.org> wrote:

> Le 5 sept. 2016 à 00:53, isidoro carlo ghezzi via swift-evolution < >> swift-evolution@swift.org> a écrit :
>
> Hi all,
>
> I think the "old style" `#pragma` is necessary in Swift.
> Exactly in the same way it is available in C/C++ or Objective-C/C++, or
in something else portable way.
>
> Because `#pragma` is not handled in Swift, in Xcode they overloaded the
semantic of comments, giving to the comment `// MARK:` the semantic of
`#pragma mark`
>
> But my point of view is that, I would like that what it is written in a
source comment (what it is written after a // or between /* */ ) should be
fully ignore by compiler or IDE.
>
> I understand that maybe a compiler shouldn't lose time handling
`#pragma options`, but giving semantics to source comment, I think it can
be dangerous and misunderstood.
>
> The implementation in Swift compiler should be simple, ignoring any
line beginning with `#pragma` (ok I know It is not simple)
> The IDE will handle the `#pragma`
>
> That's why they invented `#pragma`in C/C++ Objective-C/C++ right?

I don’t think it is a reason pragma exists. except for #pragma mark, I’m
not sure the compiler ignore any pragma. They are used to control the
compiler behaviors (controlling warning, specifying linker dependencies,
enabled specific feature like OpenMP, etc…) and not at all to interact with
the IDE. I would even says that pragma mark is an abuse of the #pragma
construct as it is ignored by the compiler and used by the IDE only.

I’m strongly again introducing #pragma without very very good reason into
swift. Asking the IDE to parse comment to extract metadata is not worst
abusing pragma to do the same, and at least it is forward and backward
compatible with any other tools.

_______________________________________________
swift-evolution mailing list
swift-evolution@swift.org
https://lists.swift.org/mailman/listinfo/swift-evolution