[PATCH] D45406: Document -std= values for different languages

2018-04-11 Thread Dimitry Andric via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL329827: Document -std= values for different languages 
(authored by dim, committed by ).
Herald added a subscriber: llvm-commits.

Changed prior to commit:
  https://reviews.llvm.org/D45406?vs=141529=142042#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D45406

Files:
  cfe/trunk/docs/CommandGuide/clang.rst

Index: cfe/trunk/docs/CommandGuide/clang.rst
===
--- cfe/trunk/docs/CommandGuide/clang.rst
+++ cfe/trunk/docs/CommandGuide/clang.rst
@@ -98,10 +98,129 @@
 
  Treat subsequent input files as having type language.
 
-.. option:: -std=
+.. option:: -std=
 
  Specify the language standard to compile for.
 
+ Supported values for the C language are:
+
+  | ``c89``
+  | ``c90``
+  | ``iso9899:1990``
+
+   ISO C 1990
+
+  | ``iso9899:199409``
+
+   ISO C 1990 with amendment 1
+
+  | ``gnu89``
+  | ``gnu90``
+
+   ISO C 1990 with GNU extensions
+
+  | ``c99``
+  | ``iso9899:1999``
+
+   ISO C 1999
+
+  | ``gnu99``
+
+   ISO C 1999 with GNU extensions
+
+  | ``c11``
+  | ``iso9899:2011``
+
+   ISO C 2011
+
+  | ``gnu11``
+
+   ISO C 2011 with GNU extensions
+
+  | ``c17``
+  | ``iso9899:2017``
+
+   ISO C 2017
+
+  | ``gnu17``
+
+   ISO C 2017 with GNU extensions
+
+ The default C language standard is ``gnu11``, except on PS4, where it is
+ ``gnu99``.
+
+ Supported values for the C++ language are:
+
+  | ``c++98``
+  | ``c++03``
+
+   ISO C++ 1998 with amendments
+
+  | ``gnu++98``
+  | ``gnu++03``
+
+   ISO C++ 1998 with amendments and GNU extensions
+
+  | ``c++11``
+
+   ISO C++ 2011 with amendments
+
+  | ``gnu++11``
+
+ISO C++ 2011 with amendments and GNU extensions
+
+  | ``c++14``
+
+   ISO C++ 2014 with amendments
+
+  | ``gnu++14``
+
+   ISO C++ 2014 with amendments and GNU extensions
+
+  | ``c++17``
+
+   ISO C++ 2017 with amendments
+
+  | ``gnu++17``
+
+   ISO C++ 2017 with amendments and GNU extensions
+
+  | ``c++2a``
+
+   Working draft for ISO C++ 2020
+
+  | ``gnu++2a``
+
+   Working draft for ISO C++ 2020 with GNU extensions
+
+ The default C++ language standard is ``gnu++14``.
+
+ Supported values for the OpenCL language are:
+
+  | ``cl1.0``
+
+   OpenCL 1.0
+
+  | ``cl1.1``
+
+   OpenCL 1.1
+
+  | ``cl1.2``
+
+   OpenCL 1.2
+
+  | ``cl2.0``
+
+   OpenCL 2.0
+
+ The default OpenCL language standard is ``cl1.0``.
+
+ Supported values for the CUDA language are:
+
+  | ``cuda``
+
+   NVIDIA CUDA(tm)
+
 .. option:: -stdlib=
 
  Specify the C++ standard library to use; supported options are libstdc++ and
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-11 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith accepted this revision.
rsmith added a comment.
This revision is now accepted and ready to land.

Looks good to me, thank you


Repository:
  rC Clang

https://reviews.llvm.org/D45406



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-11 Thread Dimitry Andric via Phabricator via cfe-commits
dim added a comment.

Ping


Repository:
  rC Clang

https://reviews.llvm.org/D45406



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-09 Thread Dimitry Andric via Phabricator via cfe-commits
dim added a comment.

So, does this look good enough to commit?


Repository:
  rC Clang

https://reviews.llvm.org/D45406



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-08 Thread Dimitry Andric via Phabricator via cfe-commits
dim updated this revision to Diff 141529.
dim added a comment.

Attempt to put the standard values in to definition lists.  In the HTML
output, this looks fairly nice, but as a man page, it seems a bit
strange, for example:

  -std=
 Specify the language standard to compile for.
  
 Supported values for the C language are:
c89
c90
iso9899:1990
  
   ISO C 1990
iso9899:199409
  
   ISO C 1990 with amendment 1
gnu89
gnu90
  
   ISO C 1990 with GNU extensions
c99
iso9899:1999
  
   ISO C 1999
gnu99
  
   ISO C 1999 with GNU extensions
c11
iso9899:2011
  
   ISO C 2011
gnu11
  
   ISO C 2011 with GNU extensions
c17
iso9899:2017
  
   ISO C 2017
gnu17
  
   ISO C 2017 with GNU extensions
  
 The default C language standard is gnu11, except on PS4, where
 it is gnu99.


Repository:
  rC Clang

https://reviews.llvm.org/D45406

Files:
  docs/CommandGuide/clang.rst

Index: docs/CommandGuide/clang.rst
===
--- docs/CommandGuide/clang.rst
+++ docs/CommandGuide/clang.rst
@@ -98,9 +98,128 @@
 
  Treat subsequent input files as having type language.
 
-.. option:: -std=
+.. option:: -std=
 
  Specify the language standard to compile for.
+
+ Supported values for the C language are:
+
+  | ``c89``
+  | ``c90``
+  | ``iso9899:1990``
+
+   ISO C 1990
+
+  | ``iso9899:199409``
+
+   ISO C 1990 with amendment 1
+
+  | ``gnu89``
+  | ``gnu90``
+
+   ISO C 1990 with GNU extensions
+
+  | ``c99``
+  | ``iso9899:1999``
+
+   ISO C 1999
+
+  | ``gnu99``
+
+   ISO C 1999 with GNU extensions
+
+  | ``c11``
+  | ``iso9899:2011``
+
+   ISO C 2011
+
+  | ``gnu11``
+
+   ISO C 2011 with GNU extensions
+
+  | ``c17``
+  | ``iso9899:2017``
+
+   ISO C 2017
+
+  | ``gnu17``
+
+   ISO C 2017 with GNU extensions
+
+ The default C language standard is ``gnu11``, except on PS4, where it is
+ ``gnu99``.
+
+ Supported values for the C++ language are:
+
+  | ``c++98``
+  | ``c++03``
+
+   ISO C++ 1998 with amendments
+
+  | ``gnu++98``
+  | ``gnu++03``
+
+   ISO C++ 1998 with amendments and GNU extensions
+
+  | ``c++11``
+
+   ISO C++ 2011 with amendments
+
+  | ``gnu++11``
+
+ISO C++ 2011 with amendments and GNU extensions
+
+  | ``c++14``
+
+   ISO C++ 2014 with amendments
+
+  | ``gnu++14``
+
+   ISO C++ 2014 with amendments and GNU extensions
+
+  | ``c++17``
+
+   ISO C++ 2017 with amendments
+
+  | ``gnu++17``
+
+   ISO C++ 2017 with amendments and GNU extensions
+
+  | ``c++2a``
+
+   Working draft for ISO C++ 2020
+
+  | ``gnu++2a``
+
+   Working draft for ISO C++ 2020 with GNU extensions
+
+ The default C++ language standard is ``gnu++14``.
+
+ Supported values for the OpenCL language are:
+
+  | ``cl1.0``
+
+   OpenCL 1.0
+
+  | ``cl1.1``
+
+   OpenCL 1.1
+
+  | ``cl1.2``
+
+   OpenCL 1.2
+
+  | ``cl2.0``
+
+   OpenCL 2.0
+
+ The default OpenCL language standard is ``cl1.0``.
+
+ Supported values for the CUDA language are:
+
+  | ``cuda``
+
+   NVIDIA CUDA(tm)
 
 .. option:: -stdlib=
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-08 Thread Michał Górny via Phabricator via cfe-commits
mgorny added a comment.

I think you'd want a definition list 
 
instead then. But I haven't tested if they can be nested inside option lists.


Repository:
  rC Clang

https://reviews.llvm.org/D45406



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-08 Thread Dimitry Andric via Phabricator via cfe-commits
dim added a comment.

In https://reviews.llvm.org/D45406#1060914, @mgorny wrote:

> Well, my idea was to list the standards one per line (like on GCC manpage), 
> and then the '(deprecated)' comments would probably stand out enough to apply 
> to a single line. Also, FWICS the gcc manpage simply lists which aliases are 
> deprecated in the description text. But skipping them entirely also works for 
> me.


Right, I see what you mean (as per 
https://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#index-std-1), I'm not 
completely sure how to force a line break in RST with itemized lists, though.


Repository:
  rC Clang

https://reviews.llvm.org/D45406



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-08 Thread Michał Górny via Phabricator via cfe-commits
mgorny added a comment.

Well, my idea was to list the standards one per line (like on GCC manpage), and 
then the '(deprecated)' comments would probably stand out enough to apply to a 
single line. Also, FWICS the gcc manpage simply lists which aliases are 
deprecated in the description text. But skipping them entirely also works for 
me.


Repository:
  rC Clang

https://reviews.llvm.org/D45406



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-07 Thread Dimitry Andric via Phabricator via cfe-commits
dim updated this revision to Diff 141513.
dim added a comment.

- Use "values" instead of "options"
- Remove deprecated standard values


Repository:
  rC Clang

https://reviews.llvm.org/D45406

Files:
  docs/CommandGuide/clang.rst


Index: docs/CommandGuide/clang.rst
===
--- docs/CommandGuide/clang.rst
+++ docs/CommandGuide/clang.rst
@@ -98,9 +98,55 @@
 
  Treat subsequent input files as having type language.
 
-.. option:: -std=
+.. option:: -std=
 
  Specify the language standard to compile for.
+
+ Supported values for the C language are:
+
+ - ``c89``, ``c90`` or ``iso9899:1990``: ISO C 1990
+ - ``iso9899:199409``: ISO C 1990 with amendment 1
+ - ``gnu89`` or ``gnu90``: ISO C 1990 with GNU extensions
+ - ``c99`` or ``iso9899:1999``: ISO C 1999
+ - ``gnu99``: ISO C 1999 with GNU extensions
+ - ``c11`` or ``iso9899:2011``: ISO C 2011
+ - ``gnu11``: ISO C 2011 with GNU extensions
+ - ``c17`` or ``iso9899:2017``: ISO C 2017
+ - ``gnu17``: ISO C 2017 with GNU extensions
+
+ The default C language standard is ``gnu11``, except on PS4, where it is
+ ``gnu99``.
+
+ Supported values for the C++ language are:
+
+ - ``c++98`` or ``c++03``: ISO C++ 1998 with amendments
+ - ``gnu++98`` or ``gnu++03``: ISO C++ 1998 with amendments and GNU extensions
+ - ``c++11``: ISO C++ 2011 with amendments
+ - ``gnu++11``: ISO C++ 2011 with amendments and
+   GNU extensions
+ - ``c++14``: ISO C++ 2014 with amendments
+ - ``gnu++14``: ISO C++ 2014 with amendments and
+   GNU extensions
+ - ``c++17``: ISO C++ 2017 with amendments
+ - ``gnu++17``: ISO C++ 2017 with amendments and
+   GNU extensions
+ - ``c++2a``: Working draft for ISO C++ 2020
+ - ``gnu++2a``: Working draft for ISO C++ 2020 with GNU extensions
+
+ The default C++ language standard is ``gnu++14``.
+
+ Supported values for the OpenCL language are:
+
+ - ``cl1.0``: OpenCL 1.0
+ - ``cl1.1``: OpenCL 1.1
+ - ``cl1.2``: OpenCL 1.2
+ - ``cl2.0``: OpenCL 2.0
+
+ The default OpenCL language standard is ``cl1.0``.
+
+ Supported values for the CUDA language are:
+
+ - ``cuda``: NVIDIA CUDA(tm)
 
 .. option:: -stdlib=
 


Index: docs/CommandGuide/clang.rst
===
--- docs/CommandGuide/clang.rst
+++ docs/CommandGuide/clang.rst
@@ -98,9 +98,55 @@
 
  Treat subsequent input files as having type language.
 
-.. option:: -std=
+.. option:: -std=
 
  Specify the language standard to compile for.
+
+ Supported values for the C language are:
+
+ - ``c89``, ``c90`` or ``iso9899:1990``: ISO C 1990
+ - ``iso9899:199409``: ISO C 1990 with amendment 1
+ - ``gnu89`` or ``gnu90``: ISO C 1990 with GNU extensions
+ - ``c99`` or ``iso9899:1999``: ISO C 1999
+ - ``gnu99``: ISO C 1999 with GNU extensions
+ - ``c11`` or ``iso9899:2011``: ISO C 2011
+ - ``gnu11``: ISO C 2011 with GNU extensions
+ - ``c17`` or ``iso9899:2017``: ISO C 2017
+ - ``gnu17``: ISO C 2017 with GNU extensions
+
+ The default C language standard is ``gnu11``, except on PS4, where it is
+ ``gnu99``.
+
+ Supported values for the C++ language are:
+
+ - ``c++98`` or ``c++03``: ISO C++ 1998 with amendments
+ - ``gnu++98`` or ``gnu++03``: ISO C++ 1998 with amendments and GNU extensions
+ - ``c++11``: ISO C++ 2011 with amendments
+ - ``gnu++11``: ISO C++ 2011 with amendments and
+   GNU extensions
+ - ``c++14``: ISO C++ 2014 with amendments
+ - ``gnu++14``: ISO C++ 2014 with amendments and
+   GNU extensions
+ - ``c++17``: ISO C++ 2017 with amendments
+ - ``gnu++17``: ISO C++ 2017 with amendments and
+   GNU extensions
+ - ``c++2a``: Working draft for ISO C++ 2020
+ - ``gnu++2a``: Working draft for ISO C++ 2020 with GNU extensions
+
+ The default C++ language standard is ``gnu++14``.
+
+ Supported values for the OpenCL language are:
+
+ - ``cl1.0``: OpenCL 1.0
+ - ``cl1.1``: OpenCL 1.1
+ - ``cl1.2``: OpenCL 1.2
+ - ``cl2.0``: OpenCL 2.0
+
+ The default OpenCL language standard is ``cl1.0``.
+
+ Supported values for the CUDA language are:
+
+ - ``cuda``: NVIDIA CUDA(tm)
 
 .. option:: -stdlib=
 
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-07 Thread Richard Smith - zygoloid via Phabricator via cfe-commits
rsmith added a comment.

In https://reviews.llvm.org/D45406#1060773, @dim wrote:

> In https://reviews.llvm.org/D45406#1060768, @mgorny wrote:
>
> > To be honest, I find those '(deprecated)' confusing — the user may 
> > mistakenly assume that it's about all values rather than the alias.
>
>
> Sure, what would you suggest as an alternative?  Not listing them, listing 
> them separately, using some sort of "*" suffix, or anything else?


I think not listing them is probably best. We don't want anyone to specify 
them, after all.


Repository:
  rC Clang

https://reviews.llvm.org/D45406



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-07 Thread Dimitry Andric via Phabricator via cfe-commits
dim added a comment.

In https://reviews.llvm.org/D45406#1060768, @mgorny wrote:

> To be honest, I find those '(deprecated)' confusing — the user may mistakenly 
> assume that it's about all values rather than the alias.


Sure, what would you suggest as an alternative?  Not listing them, listing them 
separately, using some sort of "*" suffix, or anything else?


Repository:
  rC Clang

https://reviews.llvm.org/D45406



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-07 Thread Michał Górny via Phabricator via cfe-commits
mgorny added a comment.

To be honest, I find those '(deprecated)' confusing — the user may mistakenly 
assume that it's about all values rather than the alias.




Comment at: docs/CommandGuide/clang.rst:105
+
+ Supported options for the C language are:
+

s/options/values/ I think.


Repository:
  rC Clang

https://reviews.llvm.org/D45406



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D45406: Document -std= values for different languages

2018-04-07 Thread Dimitry Andric via Phabricator via cfe-commits
dim created this revision.
dim added reviewers: rsmith, dexonsmith, sylvestre.ledru, mgorny.
Herald added subscribers: krytarowski, fhahn.

After a remark on a FreeBSD mailing list that the clang man page did
not have any list of possible values for the `-std=` flag, I have now
attempted to exhaustively list those, for each available language.

This also includes a number of deprecated aliases, but since some of
those are still used, we might as well include them.  They are marked
with '(deprecated)`.

I also documented the default standard for each language, if there was
more than one choice.

Suggestions on how to make the values and descriptions line up more
nicely in RST are welcome.


Repository:
  rC Clang

https://reviews.llvm.org/D45406

Files:
  docs/CommandGuide/clang.rst


Index: docs/CommandGuide/clang.rst
===
--- docs/CommandGuide/clang.rst
+++ docs/CommandGuide/clang.rst
@@ -98,9 +98,57 @@
 
  Treat subsequent input files as having type language.
 
-.. option:: -std=
+.. option:: -std=
 
  Specify the language standard to compile for.
+
+ Supported options for the C language are:
+
+ - ``c89``, ``c90`` or ``iso9899:1990``: ISO C 1990
+ - ``iso9899:199409``: ISO C 1990 with amendment 1
+ - ``gnu89`` or ``gnu90``: ISO C 1990 with GNU extensions
+ - ``c99``, ``iso9899:1999``, ``c9x`` (deprecated) or ``iso9899:199x``
+   (deprecated): ISO C 1999
+ - ``gnu99`` or ``gnu9x`` (deprecated): ISO C 1999 with GNU extensions
+ - ``c11``, ``iso9899:2011``, ``c1x`` (deprecated) or ``iso9899:201x``
+   (deprecated): ISO C 2011
+ - ``gnu11`` or ``gnu1x`` (deprecated): ISO C 2011 with GNU extensions
+ - ``c17`` or ``iso9899:2017``: ISO C 2017
+ - ``gnu17``: ISO C 2017 with GNU extensions
+
+ The default C language standard is ``gnu11``, except on PS4, where it is
+ ``gnu99``.
+
+ Supported options for the C++ language are:
+
+ - ``c++98`` or ``c++03``: ISO C++ 1998 with amendments
+ - ``gnu++98`` or ``gnu++03``: ISO C++ 1998 with amendments and GNU extensions
+ - ``c++11`` or ``c++0x`` (deprecated): ISO C++ 2011 with amendments
+ - ``gnu++11`` or ``gnu++0x`` (deprecated): ISO C++ 2011 with amendments and
+   GNU extensions
+ - ``c++14`` or ``c++1y`` (deprecated): ISO C++ 2014 with amendments
+ - ``gnu++14`` or ``gnu++1y`` (deprecated): ISO C++ 2014 with amendments and
+   GNU extensions
+ - ``c++17`` or ``c++1z`` (deprecated): ISO C++ 2017 with amendments
+ - ``gnu++17`` or ``gnu++1z`` (deprecated): ISO C++ 2017 with amendments and
+   GNU extensions
+ - ``c++2a``: Working draft for ISO C++ 2020
+ - ``gnu++2a``: Working draft for ISO C++ 2020 with GNU extensions
+
+ The default C++ language standard is ``gnu++14``.
+
+ Supported options for the OpenCL language are:
+
+ - ``cl1.0`` or ``cl`` (deprecated): OpenCL 1.0
+ - ``cl1.1``: OpenCL 1.1
+ - ``cl1.2``: OpenCL 1.2
+ - ``cl2.0``: OpenCL 2.0
+
+ The default OpenCL language standard is ``cl1.0``.
+
+ Supported options for the CUDA language are:
+
+ - ``cuda``: NVIDIA CUDA(tm)
 
 .. option:: -stdlib=
 


Index: docs/CommandGuide/clang.rst
===
--- docs/CommandGuide/clang.rst
+++ docs/CommandGuide/clang.rst
@@ -98,9 +98,57 @@
 
  Treat subsequent input files as having type language.
 
-.. option:: -std=
+.. option:: -std=
 
  Specify the language standard to compile for.
+
+ Supported options for the C language are:
+
+ - ``c89``, ``c90`` or ``iso9899:1990``: ISO C 1990
+ - ``iso9899:199409``: ISO C 1990 with amendment 1
+ - ``gnu89`` or ``gnu90``: ISO C 1990 with GNU extensions
+ - ``c99``, ``iso9899:1999``, ``c9x`` (deprecated) or ``iso9899:199x``
+   (deprecated): ISO C 1999
+ - ``gnu99`` or ``gnu9x`` (deprecated): ISO C 1999 with GNU extensions
+ - ``c11``, ``iso9899:2011``, ``c1x`` (deprecated) or ``iso9899:201x``
+   (deprecated): ISO C 2011
+ - ``gnu11`` or ``gnu1x`` (deprecated): ISO C 2011 with GNU extensions
+ - ``c17`` or ``iso9899:2017``: ISO C 2017
+ - ``gnu17``: ISO C 2017 with GNU extensions
+
+ The default C language standard is ``gnu11``, except on PS4, where it is
+ ``gnu99``.
+
+ Supported options for the C++ language are:
+
+ - ``c++98`` or ``c++03``: ISO C++ 1998 with amendments
+ - ``gnu++98`` or ``gnu++03``: ISO C++ 1998 with amendments and GNU extensions
+ - ``c++11`` or ``c++0x`` (deprecated): ISO C++ 2011 with amendments
+ - ``gnu++11`` or ``gnu++0x`` (deprecated): ISO C++ 2011 with amendments and
+   GNU extensions
+ - ``c++14`` or ``c++1y`` (deprecated): ISO C++ 2014 with amendments
+ - ``gnu++14`` or ``gnu++1y`` (deprecated): ISO C++ 2014 with amendments and
+   GNU extensions
+ - ``c++17`` or ``c++1z`` (deprecated): ISO C++ 2017 with amendments
+ - ``gnu++17`` or ``gnu++1z`` (deprecated): ISO C++ 2017 with amendments and
+   GNU extensions
+ - ``c++2a``: Working draft for ISO C++ 2020
+ - ``gnu++2a``: Working draft for ISO C++ 2020 with GNU extensions
+
+ The default C++ language standard is ``gnu++14``.
+
+