Strengthen the "default" pragma from "implementation-defined" to "relaxed"

Issue #83 new
Former user created an issue

Originally reported on Google Code with ID 83 ``` Section 6.7.1 defines the behavior of #pragma upc strict/relaxed:

"Shared accesses which are not categorized by either referenced type or by these pragmas behave in an implementation defined manner in which either all such accesses are strict or all are relaxed. Users wishing portable programs are strongly encouraged to categorize all shared accesses either by using type qualifiers, these directives, or by including <upc strict.h> or <upc relaxed.h>."

This text dates back to spec version 1.0, and gives implementations the "freedom" to define their "default pragma" as either strict or relaxed. I've never seen a motivation for allowing this (tiny) implementation freedom. To my knowledge all implementations "define" this as relaxed by default, and most training examples and applications I've seen simply include <upc.h> and assume the default is relaxed. It seems silly to require users to #include <upc_relaxed.h> to guarantee portable behavior if the entire UPC community is in agreement that relaxed should be the default. The pragmas and header files already allow full control of the current setting, regardless of the default, so why leave the default as implementation-defined?

I propose to replace the paragraph above with something like:

"Each translation unit has an implicit #pragma upc relaxed before the first line."

```

Reported by `danbonachea` on 2012-08-11 01:34:28

Comments (10)

  1. Former user Account Deleted

    ``` I agree with Troy that this change "sounds good".

    However, I am assuming that upc_relaxed.h and upc_strict.h will be retained, right? I think there may be enough codes out there that use one or the other to justify keeping them. ```

    Reported by `phhargrove@lbl.gov` on 2012-08-12 06:01:17

  2. Former user Account Deleted

    ``` "However, I am assuming that upc_relaxed.h and upc_strict.h will be retained, right?"

    Correct - I see no reason to remove those, and as you mention doing so might be a backwards compatibility issue. ```

    Reported by `danbonachea` on 2012-08-12 17:31:39

  3. Former user Account Deleted

    ``` Thanks for adding this issue. I agree that relaxed should be the default. ```

    Reported by `gary.funck` on 2012-08-13 03:51:58

  4. Former user Account Deleted

    ``` I concur as well; relaxed should be the default. ```

    Reported by `brian.wibecan` on 2012-08-13 15:48:31

  5. Former user Account Deleted

    ``` Mass-edit to mark all issues with an officially-announced resolution diff as "PendingApproval" ```

    Reported by `danbonachea` on 2012-08-17 15:25:01 - Status changed: `PendingApproval`

  6. Former user Account Deleted

    ``` Set Consensus:High on Pending Approval issues. ```

    Reported by `gary.funck` on 2012-08-19 23:31:54 - Labels added: Consensus-High

  7. Former user Account Deleted

    ``` Change in comment #0 committed as SVN r109 ```

    Reported by `danbonachea` on 2012-09-14 00:21:57 - Status changed: `Fixed`

  8. Former user Account Deleted

    ``` For the record: Public comment period for this change was 8/14/2012 - 9/14/2012 No substantial objections were raised or recorded during that period. At the 9/7/2012 telecon, it was announced this change was imminent, feedback was explicitly solicited, and none was received. The change was integrated into a working draft distributed on 9/13/2012 for consideration and draft ratification at the 9/14/2012 telecon. ```

    Reported by `danbonachea` on 2012-09-14 07:26:14

  9. Former user Account Deleted

    ``` Changes distributed as Draft 1.1 were ratified during the 9/14/2012 teleconference, for inclusion in the next public draft. ```

    Reported by `danbonachea` on 2012-09-14 21:46:01 - Status changed: `Ratified`

  10. Log in to comment