Status of SEH?

I was wondering what the current state of SEH and planned SEH support is. The things I’ve found in mailing list/forum history indicate that parsing and AST are now supported, but the back end is not in place.

Is the problem a lack of implementation, or the referenced patent issues? Are there any paths forward identified? I know that C++ exceptions work in user mode, but that won’t cut it in Windows drivers.

Thanks,
JB

As far as I understand, from reading this mailing list, is that nothing will happen as long as there is a patent on the technology. But if I recall correctly that patent should end sometime this year.

Yes, it looks like the patent will expire in June, so that’s exciting.

So, as I’m looking at this, thinking about trying to get it implemented by June, I came up with a question for the list. Does anyone feel strongly that we should follow the Visual C++ SEH approach or just make sure it is functional. Visual C++ uses a crazy fancy extended structure to make sure that everything goes back to the same function, but the operating system doesn’t mandate that we take that approach.

Opinions?

JB

Does anyone feel strongly that we should follow

>the Visual C++ SEH approach

not by default but as an option if its needed to get closer to
full interop with vstudio compiled libs

see Reid Kleckner talk "Bringing clang and LLVM to Visual C++ users" (http://llvm.org/devmtg/2013-11/#talk11)

You are not a lawyer. I am not a lawyer. As such, please do not discuss
patents, or anything to do with patents or other legal matters on this
mailing list. This is not the appropriate forum. If you want to discuss
them, do so with your lawyer, not here.

Huh? Notification of potential patent infringements is encouraged and in fact effectively required by the LLVM Developer Policy: Jb Feldman is absolutely correct to bring this up. To suppress contributors who are providing essential notification in an area they’re work on is callous and ill advised. These rules are here to protect those of us who have customers to support in the United States and once brought up, notifications must be heard by the community as required by the developer policy. Alp.

Bringing it up in the appropriate media and forum is the key here. Chandler is correct we don’t want any legal discussions here. It will at best only bring out trolls and armchair lawyers‎. Maybe the policy could be revised to have legal inquiries directed somewhere

ATT43099326.txt (143 Bytes)

Yeah. Until we have an opt-in forum for such topics, the mailing list remains the only visible forum for contributors. This isn’t great, but it’s a reality and puts everyone in an uncomfortable situation. If we don’t want to receive such notifications, the only way to achieve that is a change to the policy to invert the meaning: Chandler, is that more in line with that you had in mind? I don’t mind what wording is used in the developer policy as long as it’s consistent with the way we treat newcomers to the project. Alp.

Actually, the policy actually says the right thing, you removed a
sentence, which says:
"Please contact the oversight group for more details."

This because patents are not to be discussed in "a visible forum for
contributors".
So let's be 100% clear:

Do not discuss patents or infringement on this list, or any other llvm
mailing list.
If you have concerns around patents, contact the oversight group.

--Dan

Here's my cut at this

"we expect contributors to [not] discuss potential IP (intellectual property) issues on public mailing lists and to seek their own legal advice. Nobody on any of the user or developer mailing lists can provide legal council and any notices should be directed to the appropriate legal contact. In the event of a patch or existing code contribution which needs additional legal review please first send an email to --------------@---------.--- before disclosing the issue publicly."

I suspect LLVM has representation and like most serious projects maybe an email alias should be setup. Sorry I can't think of a better way to dodge this bullet...

From: "Alp Toker" <alp@nuanti.com>
To: "Chandler Carruth" <chandlerc@google.com>, "Jb Feldman" <jb.feldman@kyrus-tech.com>
Cc: "Jacob Carlborg" <doob@me.com>, "clang-dev Developers" <cfe-dev@cs.uiuc.edu>
Sent: Thursday, January 30, 2014 3:57:07 PM
Subject: Re: [cfe-dev] Status of SEH?

Bringing it up in the appropriate media and forum is the key here.
Chandler is correct we don't want any legal discussions here. It
will at best only bring out trolls and armchair lawyers‎. Maybe the
policy could be revised to have legal inquiries directed somewhere
Yeah. Until we have an opt-in forum for such topics, the mailing list
remains the only visible forum for contributors. This isn't great,
but it's a reality and puts everyone in an uncomfortable situation.

If we don't want to receive such notifications, the only way to
achieve that is a change to the policy to invert the meaning:

"we expect contributors [not] to notify us of any potential for
patent-related trouble with their changes (including from third
parties) "

My general impression is that notifications are wanted, but discussion of the details is not wanted.

-Hal

Seems like you hit an issue which I wasn’t sure of the answer to: Does LLVM have lawyers to consult on the integration of something like this? I’m happy to consult my own lawyers before I do this locally, but I’d like to do it in a way that can contribute to the open source project, and at that point I imagine that saying, “I know a guy who said it’s cool” won’t cut it.

If LLVM doesn’t have that capacity, it’s possible that things that might be even remotely legally ambiguous just can’t be integrated.

JB

Actually, the policy actually says the right thing, you removed a
sentence, which says:
"Please contact the oversight group for more details."

To be clear, I didn't remove this sentence -- it's some way down in the paragraph and pertains to receiving details from the oversight group, whereas the section about providing notification pertains to "us", the LLVM community.

This is grammatically clear and unambiguous so if it's not the intention, that needs to be reworded.

This because patents are not to be discussed in "a visible forum for
contributors".
So let's be 100% clear:

Do not discuss patents or infringement on this list, or any other llvm
mailing list.
If you have concerns around patents, contact the oversight group.

Thanks, please nominate my organisation to the oversight group. We've been advised that we need to stay informed both as a major upstream contributor and as a downstream distributor.

Alp.

Actually, the policy actually says the right thing, you removed a
sentence, which says:
"Please contact the oversight group for more details."

To be clear, I didn't remove this sentence -- it's some way down in the
paragraph and pertains to receiving details from the oversight group,
whereas the section about providing notification pertains to "us", the LLVM
community.

This is grammatically clear and unambiguous so if it's not the intention,
that needs to be reworded.

Don't take this the wrong way, but most people would still understand
that this probably means "don't talk about patents except to the
oversight group". There are roughly no open source projects where the
rule is "talk about patents all you like on random development mailing
lists"

Actually, the policy actually says the right thing, you removed a
sentence, which says:
"Please contact the oversight group for more details."

To be clear, I didn't remove this sentence -- it's some way down in the
paragraph and pertains to receiving details from the oversight group,
whereas the section about providing notification pertains to "us", the LLVM
community.

This is grammatically clear and unambiguous so if it's not the intention,
that needs to be reworded.

Don't take this the wrong way, but most people would still understand
that this probably means "don't talk about patents except to the
oversight group".

Hi Dan,

I'm not sure if you realize, but that paragraph reads as an open invitation to notify and discuss patents on the development and commits lists.

There are roughly no open source projects where the
rule is "talk about patents all you like on random development mailing
lists"

There are plenty of projects around the world the where that is absolutely the rule.

Your remarks suggest that you've worked on a limited range of projects without the perspective it takes to accurately word a developer policy like this for an international audience.

"Most people" doesn't cut it here and we need to set out our expectations explicitly before we start turning away new contributors and telling them to "hit the road" for something they said.

I can't stand by while new contributors receive abuse for some violation of a rule that's not even written in the LLVM developer policy.

We should assume that contributors come from a background that's varied, inclusive and different to the norms in our immediate circles, and aim to provide them with accurate and helpful guidance in the developer policy and reflects our expectations. Flaming people when they try to engage our community because they have a different legal system or interpretation.

What next, turn people away because they have a funny name? Reject patches because their skin color is different to yours? I'm disappointed that you've tried to defend what is clearly repeated and inexcusable behaviour by Chandler towards people who are graciously trying to help out. In so far as there is a community, we must stand up distance ourselves from behaviour like that.

(This is becoming OT for cfe-dev, moving the thread to llvm-dev. Let's refocus into a more productive mode and and roll a patch already?)

Alp.

Sorry about causing all this trouble. I misunderstood what was allowable
conversation on this list, and honestly didn't even think that I was
seriously discussing patents, I thought my statement was simply a statement
of fact, but I realize that these are things on which professionals should
be consulted. As to patent issues, I'll cross that bridge with the
oversight group if I ever get something viable to be included in llvm.

I would like to redirect my question simply to be: how do people feel
about whether it should be implemented as Visual C++ SEH or barest-bones
SEH. Being new, I'm also not sure whether that would be a CFE question or
an LLVM question, if it is better suited to llvm-dev, please let me know.

Thanks,
JB

From: "Daniel Berlin" <dannyb@google.com>
To: "Alp Toker" <alp@nuanti.com>
Cc: cfe-dev@cs.uiuc.edu
Sent: Thursday, January 30, 2014 4:57:08 PM
Subject: Re: [cfe-dev] Status of SEH?

>
>>
>> Actually, the policy actually says the right thing, you removed a
>> sentence, which says:
>> "Please contact the oversight group for more details."
>
>
> To be clear, I didn't remove this sentence -- it's some way down in
> the
> paragraph and pertains to receiving details from the oversight
> group,
> whereas the section about providing notification pertains to "us",
> the LLVM
> community.
>
> This is grammatically clear and unambiguous so if it's not the
> intention,
> that needs to be reworded.

Don't take this the wrong way, but most people would still understand
that this probably means "don't talk about patents except to the
oversight group". There are roughly no open source projects where
the
rule is "talk about patents all you like on random development
mailing
lists"

To be fair, as I read it, the "Please contact the oversight group for more details." applies only to the situation discussed in the previous sentence (dealing with the "If you or your employer own the rights to a patent and would like to contribute..." situation). If we expect that all patent discussions, regardless of the relationship to the rights holders, will take place *only* with the oversight group, then we need to amend the current wording to make that unquestionably clear.

-Hal

Actually, the policy actually says the right thing, you removed a
sentence, which says:
"Please contact the oversight group for more details."

To be clear, I didn't remove this sentence -- it's some way down in the
paragraph and pertains to receiving details from the oversight group,
whereas the section about providing notification pertains to "us", the
LLVM
community.

This is grammatically clear and unambiguous so if it's not the intention,
that needs to be reworded.

Don't take this the wrong way, but most people would still understand
that this probably means "don't talk about patents except to the
oversight group".

Hi Dan,

I'm not sure if you realize, but that paragraph reads as an open invitation
to notify and discuss patents on the development and commits lists.

There are roughly no open source projects where the
rule is "talk about patents all you like on random development mailing
lists"

There are plenty of projects around the world the where that is absolutely
the rule.

Your remarks suggest that you've worked on a limited range of projects
without the perspective it takes to accurately word a developer policy like
this for an international audience.

Actually, I've worked on hundreds of open source projects, and plenty
of them very international, and worded a fairly large number of
developer policies. You can't write one that works for everyone no
matter what you do.
But rather than say what you did, which comes off as a personal
attack, a more productive thing to say it would have been "I would
find the current policy better if it was worded like <x>"

"Most people" doesn't cut it here and we need to set out our expectations
explicitly before we start turning away new contributors and telling them to
"hit the road" for something they said.

I didn't see anyone do anything of the sort here.

I can't stand by while new contributors receive abuse for some violation of
a rule that's not even written in the LLVM developer policy.

Now we've gone from someone kindly asking someone else not to discuss
something to abuse?

We should assume that contributors come from a background that's varied,
inclusive and different to the norms in our immediate circles, and aim to
provide them with accurate and helpful guidance in the developer policy and
reflects our expectations. Flaming people when they try to engage our
community because they have a different legal system or interpretation.

I haven't see any flaming here either ...

What next, turn people away because they have a funny name? Reject patches
because their skin color is different to yours? I'm disappointed that you've
tried to defend what is clearly repeated and inexcusable behaviour by
Chandler towards people who are graciously trying to help out. In so far as
there is a community, we must stand up distance ourselves from behaviour
like that.

This seems like a pretty strong digression and very odd comparison.
I'm not sure what personal issues you have with chandler, but he
kindly asked someone not to discuss stuff. The entire part above,
both about chandler, and me, seem like highly unproductive personal
attacks.

Sorry about causing all this trouble. I misunderstood what was allowable conversation on this list, and honestly didn't even think that I was seriously discussing patents, I thought my statement was simply a statement of fact, but I realize that these are things on which professionals should be consulted. As to patent issues, I'll cross that bridge with the oversight group if I ever get something viable to be included in llvm.

Hi Jb,

Thanks for holding on. This has happened before so I'd like to point out that Chandler Carruth, although a committer, doesn't speak for the project.

We should have done a better job of politely moving the discussion towards a constructive conclusion providing some pointers towards the right forum. I'm going to follow this up once the dust settles so we have a better response in place.

I would like to redirect my question simply to be: how do people feel about whether it should be implemented as Visual C++ SEH or barest-bones SEH. Being new, I'm also not sure whether that would be a CFE question or an LLVM question, if it is better suited to llvm-dev, please let me know.

I think others will agree with me that we look forward to working on this feature with you and earlier patch contributors when the time comes. The feature would presumably cross into both projects so would be appropriate as a cross-posting to both list.

Until that time comes I'd say it's expedient to focus on other areas. Does that work for you?

Cheers,
Alp.