[jira] [Commented] (THRIFT-4678) add noexcept cpp generator option

2018-12-20 Thread yuanyuan chen (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16726298#comment-16726298
 ] 

yuanyuan chen commented on THRIFT-4678:
---

Good job

发自我的 iPhone



> add noexcept cpp generator option
> -
>
> Key: THRIFT-4678
> URL: https://issues.apache.org/jira/browse/THRIFT-4678
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0
>Reporter: yuanyuan chen
>Priority: Minor
>
> The C++11 standard has deprecated the usage of throw() to express 
> exceptions,so to avoid warnings from the compiler,I think this option is 
> useful.
> I have a pull request in github,this issue is created to track it.
> Some questions remain:
> 1.Should we change the runtime c++ library to use BOOST_NOEXCEPT_OR_NOTHROW?
> 2.Should we add an control option to enable all c++11 options like 
> moveable_types .etc?
> 3.Should we begin to support C+17 features? I think std::optional should be 
> used to implement optional keyword,but this is clearly an API breaking 
> change,so we need an c+17 control option.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4678) add noexcept cpp generator option

2018-12-20 Thread Randy Abernethy (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16726234#comment-16726234
 ] 

Randy Abernethy commented on THRIFT-4678:
-

Big +1 for removing all dependencies on boost. Love boost but given all of the 
possible environments people might want to use Thrift in and how fundamental a 
utility it is for people, I think we should aggressively, across the board, 
keep deps to a min. Thrift should work with boost but not require it.

The one problem area is tests. Our C++ solution right now is boost/test and it 
is probably best to leave it in place but of course this does not impact the 
runtime lib or sources.

> add noexcept cpp generator option
> -
>
> Key: THRIFT-4678
> URL: https://issues.apache.org/jira/browse/THRIFT-4678
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0
>Reporter: yuanyuan chen
>Priority: Minor
>
> The C++11 standard has deprecated the usage of throw() to express 
> exceptions,so to avoid warnings from the compiler,I think this option is 
> useful.
> I have a pull request in github,this issue is created to track it.
> Some questions remain:
> 1.Should we change the runtime c++ library to use BOOST_NOEXCEPT_OR_NOTHROW?
> 2.Should we add an control option to enable all c++11 options like 
> moveable_types .etc?
> 3.Should we begin to support C+17 features? I think std::optional should be 
> used to implement optional keyword,but this is clearly an API breaking 
> change,so we need an c+17 control option.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (THRIFT-4683) Add a port scan feature test

2018-12-20 Thread James E. King III (JIRA)
James E. King III created THRIFT-4683:
-

 Summary: Add a port scan feature test
 Key: THRIFT-4683
 URL: https://issues.apache.org/jira/browse/THRIFT-4683
 Project: Thrift
  Issue Type: Test
  Components: Test Suite
Affects Versions: 0.11.0, 0.12.0
Reporter: James E. King III


Port scans are common.  The servers should not crash when one occurs.  Add a 
feature test to run a port scan against a server to make sure it doesn't end 
badly.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4678) add noexcept cpp generator option

2018-12-20 Thread James E. King III (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16725941#comment-16725941
 ] 

James E. King III commented on THRIFT-4678:
---

I am already working on the 0.12.0 release, there is a release candidate which 
was advertised on the mailing list yesterday.  Don't worry about 0.12.0, it's 
almost out.

> add noexcept cpp generator option
> -
>
> Key: THRIFT-4678
> URL: https://issues.apache.org/jira/browse/THRIFT-4678
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0
>Reporter: yuanyuan chen
>Priority: Minor
>
> The C++11 standard has deprecated the usage of throw() to express 
> exceptions,so to avoid warnings from the compiler,I think this option is 
> useful.
> I have a pull request in github,this issue is created to track it.
> Some questions remain:
> 1.Should we change the runtime c++ library to use BOOST_NOEXCEPT_OR_NOTHROW?
> 2.Should we add an control option to enable all c++11 options like 
> moveable_types .etc?
> 3.Should we begin to support C+17 features? I think std::optional should be 
> used to implement optional keyword,but this is clearly an API breaking 
> change,so we need an c+17 control option.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4682) C++ TBinaryProtocol crashes on port scan

2018-12-20 Thread James E. King III (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16725945#comment-16725945
 ] 

James E. King III commented on THRIFT-4682:
---

Please submit a pull request to the GitHub project, if possible.

Additionally, I will add a backlog item to have a crosstest feature test to run 
a portscan against each server.

> C++ TBinaryProtocol crashes on port scan
> 
>
> Key: THRIFT-4682
> URL: https://issues.apache.org/jira/browse/THRIFT-4682
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.10.0, 0.11.0
>Reporter: Michael Patrick
>Priority: Major
> Attachments: TBinaryProtocolKiller.py, THRIFT-4682.diff
>
>
> I'm afraid I don't have the expertise or time to submit a formal Git pull 
> request and test cases, but I feel it's important for the Thrift community to 
> be aware of a serious Denial of Service (DOS) attack vulnerability involving 
> TBinaryProtocol. 
> A commercial port scanner application crashed all C++ Thrift server processes 
> we had listening for TBinaryProcol connections. Investigation showed it was 
> due to an assert verifying the initial packet length.  Crashing the server 
> was as easy as sending an initial 4 bytes of zeroes after the client opens 
> the socket.  I'm attaching a "TBinaryProtocolKiller.py" script that  will 
> kill all C++ ThriftBinaryProtocol servers on an arbitrary IPv4 address within 
> a provided port range. The script can be used to verify the fix.   This 
> problem  does not occur in the  Python BinaryProtocol server;  I don't know 
> about other languages.  The problem is present in 0.10.0 and 0.11.0, and I 
> don't know about earlier releases. 
>  My recommended patch is to simply change the assert to a regular error 
> check, as shown below. 
> {code:java}
> Index: lib/cpp/src/thrift/server/TNonblockingServer.cpp
> ===
> --- lib/cpp/src/thrift/server/TNonblockingServer.cpp  (revision 75217)
> +++ lib/cpp/src/thrift/server/TNonblockingServer.cpp  (working copy)
> @@ -473,8 +473,13 @@
> return;
> case SOCKET_RECV:
> - // It is an error to be in this state if we already have all the data
> - assert(readBufferPos_ < readWant_);
> + if (!(readBufferPos_ < readWant_)) {
> + GlobalOutput.printf("TNonblockingServer: frame size too short from client 
> %s",
> + tSocket_->getSocketInfo().c_str());
> + close();
> + return;
> + }
> try {
> // Read from the socket{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4678) add noexcept cpp generator option

2018-12-20 Thread yuanyuan chen (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16725933#comment-16725933
 ] 

yuanyuan chen commented on THRIFT-4678:
---

IMO,we should have a new release to fix those commits since 2017, then we could 
talk about whether to increase the major version for breaking API.

发自我的 iPhone



> add noexcept cpp generator option
> -
>
> Key: THRIFT-4678
> URL: https://issues.apache.org/jira/browse/THRIFT-4678
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0
>Reporter: yuanyuan chen
>Priority: Minor
>
> The C++11 standard has deprecated the usage of throw() to express 
> exceptions,so to avoid warnings from the compiler,I think this option is 
> useful.
> I have a pull request in github,this issue is created to track it.
> Some questions remain:
> 1.Should we change the runtime c++ library to use BOOST_NOEXCEPT_OR_NOTHROW?
> 2.Should we add an control option to enable all c++11 options like 
> moveable_types .etc?
> 3.Should we begin to support C+17 features? I think std::optional should be 
> used to implement optional keyword,but this is clearly an API breaking 
> change,so we need an c+17 control option.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4678) add noexcept cpp generator option

2018-12-20 Thread yuanyuan chen (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16725932#comment-16725932
 ] 

yuanyuan chen commented on THRIFT-4678:
---

But at least it is time to release a new version.

发自我的 iPhone



> add noexcept cpp generator option
> -
>
> Key: THRIFT-4678
> URL: https://issues.apache.org/jira/browse/THRIFT-4678
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0
>Reporter: yuanyuan chen
>Priority: Minor
>
> The C++11 standard has deprecated the usage of throw() to express 
> exceptions,so to avoid warnings from the compiler,I think this option is 
> useful.
> I have a pull request in github,this issue is created to track it.
> Some questions remain:
> 1.Should we change the runtime c++ library to use BOOST_NOEXCEPT_OR_NOTHROW?
> 2.Should we add an control option to enable all c++11 options like 
> moveable_types .etc?
> 3.Should we begin to support C+17 features? I think std::optional should be 
> used to implement optional keyword,but this is clearly an API breaking 
> change,so we need an c+17 control option.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (THRIFT-4682) C++ TBinaryProtocol crashes on port scan

2018-12-20 Thread Michael Patrick (JIRA)


 [ 
https://issues.apache.org/jira/browse/THRIFT-4682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Patrick updated THRIFT-4682:

 Flags: Patch,Important
Patch Info: Patch Available

> C++ TBinaryProtocol crashes on port scan
> 
>
> Key: THRIFT-4682
> URL: https://issues.apache.org/jira/browse/THRIFT-4682
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.10.0, 0.11.0
>Reporter: Michael Patrick
>Priority: Major
> Attachments: TBinaryProtocolKiller.py, THRIFT-4682.diff
>
>
> I'm afraid I don't have the expertise or time to submit a formal Git pull 
> request and test cases, but I feel it's important for the Thrift community to 
> be aware of a serious Denial of Service (DOS) attack vulnerability involving 
> TBinaryProtocol. 
> A commercial port scanner application crashed all C++ Thrift server processes 
> we had listening for TBinaryProcol connections. Investigation showed it was 
> due to an assert verifying the initial packet length.  Crashing the server 
> was as easy as sending an initial 4 bytes of zeroes after the client opens 
> the socket.  I'm attaching a "TBinaryProtocolKiller.py" script that  will 
> kill all C++ ThriftBinaryProtocol servers on an arbitrary IPv4 address within 
> a provided port range. The script can be used to verify the fix.   This 
> problem  does not occur in the  Python BinaryProtocol server;  I don't know 
> about other languages.  The problem is present in 0.10.0 and 0.11.0, and I 
> don't know about earlier releases. 
>  My recommended patch is to simply change the assert to a regular error 
> check, as shown below. 
> {code:java}
> Index: lib/cpp/src/thrift/server/TNonblockingServer.cpp
> ===
> --- lib/cpp/src/thrift/server/TNonblockingServer.cpp  (revision 75217)
> +++ lib/cpp/src/thrift/server/TNonblockingServer.cpp  (working copy)
> @@ -473,8 +473,13 @@
> return;
> case SOCKET_RECV:
> - // It is an error to be in this state if we already have all the data
> - assert(readBufferPos_ < readWant_);
> + if (!(readBufferPos_ < readWant_)) {
> + GlobalOutput.printf("TNonblockingServer: frame size too short from client 
> %s",
> + tSocket_->getSocketInfo().c_str());
> + close();
> + return;
> + }
> try {
> // Read from the socket{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4682) C++ TBinaryProtocol crashes on port scan

2018-12-20 Thread Michael Patrick (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4682?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16725912#comment-16725912
 ] 

Michael Patrick commented on THRIFT-4682:
-

Attached THRIFT-4682.diff with the 0.10.0  patch. 

> C++ TBinaryProtocol crashes on port scan
> 
>
> Key: THRIFT-4682
> URL: https://issues.apache.org/jira/browse/THRIFT-4682
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.10.0, 0.11.0
>Reporter: Michael Patrick
>Priority: Major
> Attachments: TBinaryProtocolKiller.py, THRIFT-4682.diff
>
>
> I'm afraid I don't have the expertise or time to submit a formal Git pull 
> request and test cases, but I feel it's important for the Thrift community to 
> be aware of a serious Denial of Service (DOS) attack vulnerability involving 
> TBinaryProtocol. 
> A commercial port scanner application crashed all C++ Thrift server processes 
> we had listening for TBinaryProcol connections. Investigation showed it was 
> due to an assert verifying the initial packet length.  Crashing the server 
> was as easy as sending an initial 4 bytes of zeroes after the client opens 
> the socket.  I'm attaching a "TBinaryProtocolKiller.py" script that  will 
> kill all C++ ThriftBinaryProtocol servers on an arbitrary IPv4 address within 
> a provided port range. The script can be used to verify the fix.   This 
> problem  does not occur in the  Python BinaryProtocol server;  I don't know 
> about other languages.  The problem is present in 0.10.0 and 0.11.0, and I 
> don't know about earlier releases. 
>  My recommended patch is to simply change the assert to a regular error 
> check, as shown below. 
> {code:java}
> Index: lib/cpp/src/thrift/server/TNonblockingServer.cpp
> ===
> --- lib/cpp/src/thrift/server/TNonblockingServer.cpp  (revision 75217)
> +++ lib/cpp/src/thrift/server/TNonblockingServer.cpp  (working copy)
> @@ -473,8 +473,13 @@
> return;
> case SOCKET_RECV:
> - // It is an error to be in this state if we already have all the data
> - assert(readBufferPos_ < readWant_);
> + if (!(readBufferPos_ < readWant_)) {
> + GlobalOutput.printf("TNonblockingServer: frame size too short from client 
> %s",
> + tSocket_->getSocketInfo().c_str());
> + close();
> + return;
> + }
> try {
> // Read from the socket{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (THRIFT-4682) C++ TBinaryProtocol crashes on port scan

2018-12-20 Thread Michael Patrick (JIRA)


 [ 
https://issues.apache.org/jira/browse/THRIFT-4682?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Patrick updated THRIFT-4682:

Attachment: THRIFT-4682.diff

> C++ TBinaryProtocol crashes on port scan
> 
>
> Key: THRIFT-4682
> URL: https://issues.apache.org/jira/browse/THRIFT-4682
> Project: Thrift
>  Issue Type: Bug
>  Components: C++ - Library
>Affects Versions: 0.10.0, 0.11.0
>Reporter: Michael Patrick
>Priority: Major
> Attachments: TBinaryProtocolKiller.py, THRIFT-4682.diff
>
>
> I'm afraid I don't have the expertise or time to submit a formal Git pull 
> request and test cases, but I feel it's important for the Thrift community to 
> be aware of a serious Denial of Service (DOS) attack vulnerability involving 
> TBinaryProtocol. 
> A commercial port scanner application crashed all C++ Thrift server processes 
> we had listening for TBinaryProcol connections. Investigation showed it was 
> due to an assert verifying the initial packet length.  Crashing the server 
> was as easy as sending an initial 4 bytes of zeroes after the client opens 
> the socket.  I'm attaching a "TBinaryProtocolKiller.py" script that  will 
> kill all C++ ThriftBinaryProtocol servers on an arbitrary IPv4 address within 
> a provided port range. The script can be used to verify the fix.   This 
> problem  does not occur in the  Python BinaryProtocol server;  I don't know 
> about other languages.  The problem is present in 0.10.0 and 0.11.0, and I 
> don't know about earlier releases. 
>  My recommended patch is to simply change the assert to a regular error 
> check, as shown below. 
> {code:java}
> Index: lib/cpp/src/thrift/server/TNonblockingServer.cpp
> ===
> --- lib/cpp/src/thrift/server/TNonblockingServer.cpp  (revision 75217)
> +++ lib/cpp/src/thrift/server/TNonblockingServer.cpp  (working copy)
> @@ -473,8 +473,13 @@
> return;
> case SOCKET_RECV:
> - // It is an error to be in this state if we already have all the data
> - assert(readBufferPos_ < readWant_);
> + if (!(readBufferPos_ < readWant_)) {
> + GlobalOutput.printf("TNonblockingServer: frame size too short from client 
> %s",
> + tSocket_->getSocketInfo().c_str());
> + close();
> + return;
> + }
> try {
> // Read from the socket{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (THRIFT-4682) C++ TBinaryProtocol crashes on port scan

2018-12-20 Thread Michael Patrick (JIRA)
Michael Patrick created THRIFT-4682:
---

 Summary: C++ TBinaryProtocol crashes on port scan
 Key: THRIFT-4682
 URL: https://issues.apache.org/jira/browse/THRIFT-4682
 Project: Thrift
  Issue Type: Bug
  Components: C++ - Library
Affects Versions: 0.11.0, 0.10.0
Reporter: Michael Patrick
 Attachments: TBinaryProtocolKiller.py

I'm afraid I don't have the expertise or time to submit a formal Git pull 
request and test cases, but I feel it's important for the Thrift community to 
be aware of a serious Denial of Service (DOS) attack vulnerability involving 
TBinaryProtocol. 

A commercial port scanner application crashed all C++ Thrift server processes 
we had listening for TBinaryProcol connections. Investigation showed it was due 
to an assert verifying the initial packet length.  Crashing the server was as 
easy as sending an initial 4 bytes of zeroes after the client opens the socket. 
 I'm attaching a "TBinaryProtocolKiller.py" script that  will kill all C++ 
ThriftBinaryProtocol servers on an arbitrary IPv4 address within a provided 
port range. The script can be used to verify the fix.   This problem  does not 
occur in the  Python BinaryProtocol server;  I don't know about other 
languages.  The problem is present in 0.10.0 and 0.11.0, and I don't know about 
earlier releases. 

 My recommended patch is to simply change the assert to a regular error check, 
as shown below. 
{code:java}
Index: lib/cpp/src/thrift/server/TNonblockingServer.cpp
===
--- lib/cpp/src/thrift/server/TNonblockingServer.cpp(revision 75217)
+++ lib/cpp/src/thrift/server/TNonblockingServer.cpp(working copy)
@@ -473,8 +473,13 @@
return;

case SOCKET_RECV:
- // It is an error to be in this state if we already have all the data
- assert(readBufferPos_ < readWant_);
+ if (!(readBufferPos_ < readWant_)) {
+ GlobalOutput.printf("TNonblockingServer: frame size too short from client %s",
+ tSocket_->getSocketInfo().c_str());
+ close();
+ return;
+ }

try {
// Read from the socket{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (THRIFT-4441) C++: support building lib without Boost

2018-12-20 Thread James E. King III (JIRA)


 [ 
https://issues.apache.org/jira/browse/THRIFT-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King III updated THRIFT-4441:
--
Labels: boost c++11  (was: )

> C++: support building lib without Boost
> ---
>
> Key: THRIFT-4441
> URL: https://issues.apache.org/jira/browse/THRIFT-4441
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0, 0.12.0
>Reporter: Francois Ferrand
>Priority: Major
>  Labels: boost, c++11
>
> It would be great to support compiling Thrift library without boost: in 
> C++11, most of the things are already integrated, and it is often not 
> practical to integrate boost, esp. in embedded projects.
> Some steps have already been done (esp. THRIFT-2221) to support building user 
> code without boost, but it would be nice to allow building completely without 
> boost.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (THRIFT-4441) C++: support building lib without Boost

2018-12-20 Thread James E. King III (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16725862#comment-16725862
 ] 

James E. King III edited comment on THRIFT-4441 at 12/20/18 1:58 PM:
-

If we allow the option to either build with or without boost, we create a 
build-time and packaging-time branch whereby packagers have to distribute two 
libraries - one that builds against boost and supports {{cpp03}}, and one that 
does not build against boost and only supports {{cpp11}} or later.  Given older 
versions of thrift support both boost and {{cpp03}}, we should consider 
dropping support for boost and {{cpp03}} at the same time.  Then the packaging 
dependencies are simplified, but more importantly there is only one C++ runtime 
library to be built (apart from the normal debug/release variants).  Folks who 
need the boost interface, or need {{cpp03}} support can always use Thrift 
0.12.0 or earlier.


was (Author: jking3):
If we allow the option to either build with or without boost, we create a 
build-time and packaging-time branch whereby packagers have to distribute two 
libraries - one that builds against boost and supports C++03, and one that does 
not build against boost and only supports C++11 or later.  Given older versions 
of thrift support both boost and C++03, we should consider dropping support for 
boost and C++03 at the same time.  Then the packaging dependencies are 
simplified, but more importantly there is only one C++ runtime library to be 
built (apart from the normal debug/release variants).  Folks who need the boost 
interface, or need C++03 support can always use Thrift 0.12.0 or earlier.

> C++: support building lib without Boost
> ---
>
> Key: THRIFT-4441
> URL: https://issues.apache.org/jira/browse/THRIFT-4441
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0, 0.12.0
>Reporter: Francois Ferrand
>Assignee: James E. King III
>Priority: Major
>  Labels: boost, c++11
>
> It would be great to support compiling Thrift library without boost: in 
> C++11, most of the things are already integrated, and it is often not 
> practical to integrate boost, esp. in embedded projects.
> Some steps have already been done (esp. THRIFT-2221) to support building user 
> code without boost, but it would be nice to allow building completely without 
> boost.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (THRIFT-4441) C++: support building lib without Boost

2018-12-20 Thread James E. King III (JIRA)


 [ 
https://issues.apache.org/jira/browse/THRIFT-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King III updated THRIFT-4441:
--
Affects Version/s: 0.12.0

> C++: support building lib without Boost
> ---
>
> Key: THRIFT-4441
> URL: https://issues.apache.org/jira/browse/THRIFT-4441
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0, 0.12.0
>Reporter: Francois Ferrand
>Priority: Major
>  Labels: boost, c++11
>
> It would be great to support compiling Thrift library without boost: in 
> C++11, most of the things are already integrated, and it is often not 
> practical to integrate boost, esp. in embedded projects.
> Some steps have already been done (esp. THRIFT-2221) to support building user 
> code without boost, but it would be nice to allow building completely without 
> boost.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4441) C++: support building lib without Boost

2018-12-20 Thread James E. King III (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16725862#comment-16725862
 ] 

James E. King III commented on THRIFT-4441:
---

If we allow the option to either build with or without boost, we create a 
build-time and packaging-time branch whereby packagers have to distribute two 
libraries - one that builds against boost and supports C++03, and one that does 
not build against boost and only supports C++11 or later.  Given older versions 
of thrift support both boost and C++03, we should consider dropping support for 
boost and C++03 at the same time.  Then the packaging dependencies are 
simplified, but more importantly there is only one C++ runtime library to be 
built (apart from the normal debug/release variants).  Folks who need the boost 
interface, or need C++03 support can always use Thrift 0.12.0 or earlier.

> C++: support building lib without Boost
> ---
>
> Key: THRIFT-4441
> URL: https://issues.apache.org/jira/browse/THRIFT-4441
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0, 0.12.0
>Reporter: Francois Ferrand
>Priority: Major
>  Labels: boost, c++11
>
> It would be great to support compiling Thrift library without boost: in 
> C++11, most of the things are already integrated, and it is often not 
> practical to integrate boost, esp. in embedded projects.
> Some steps have already been done (esp. THRIFT-2221) to support building user 
> code without boost, but it would be nice to allow building completely without 
> boost.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Assigned] (THRIFT-4441) C++: support building lib without Boost

2018-12-20 Thread James E. King III (JIRA)


 [ 
https://issues.apache.org/jira/browse/THRIFT-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King III reassigned THRIFT-4441:
-

Assignee: James E. King III

> C++: support building lib without Boost
> ---
>
> Key: THRIFT-4441
> URL: https://issues.apache.org/jira/browse/THRIFT-4441
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0, 0.12.0
>Reporter: Francois Ferrand
>Assignee: James E. King III
>Priority: Major
>  Labels: boost, c++11
>
> It would be great to support compiling Thrift library without boost: in 
> C++11, most of the things are already integrated, and it is often not 
> practical to integrate boost, esp. in embedded projects.
> Some steps have already been done (esp. THRIFT-2221) to support building user 
> code without boost, but it would be nice to allow building completely without 
> boost.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (THRIFT-4441) C++: support building lib without Boost

2018-12-20 Thread James E. King III (JIRA)


 [ 
https://issues.apache.org/jira/browse/THRIFT-4441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King III updated THRIFT-4441:
--
Component/s: C++ - Library
 C++ - Compiler

> C++: support building lib without Boost
> ---
>
> Key: THRIFT-4441
> URL: https://issues.apache.org/jira/browse/THRIFT-4441
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0, 0.12.0
>Reporter: Francois Ferrand
>Priority: Major
>  Labels: boost, c++11
>
> It would be great to support compiling Thrift library without boost: in 
> C++11, most of the things are already integrated, and it is often not 
> practical to integrate boost, esp. in embedded projects.
> Some steps have already been done (esp. THRIFT-2221) to support building user 
> code without boost, but it would be nice to allow building completely without 
> boost.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Closed] (THRIFT-4111) Can't find release notes for Thrift-0.10.0

2018-12-20 Thread James E. King III (JIRA)


 [ 
https://issues.apache.org/jira/browse/THRIFT-4111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King III closed THRIFT-4111.
-

> Can't find release notes for Thrift-0.10.0
> --
>
> Key: THRIFT-4111
> URL: https://issues.apache.org/jira/browse/THRIFT-4111
> Project: Thrift
>  Issue Type: Documentation
>  Components: Website
>Affects Versions: 0.10.0
>Reporter: Pavel Kotlyarov
>Assignee: James E. King III
>Priority: Major
> Fix For: 0.11.0
>
>
> Our company is actively used Thrift and we interested in new versions, but 
> without list of actual changes they are almost useless for us.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Resolved] (THRIFT-4111) Can't find release notes for Thrift-0.10.0

2018-12-20 Thread James E. King III (JIRA)


 [ 
https://issues.apache.org/jira/browse/THRIFT-4111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King III resolved THRIFT-4111.
---
   Resolution: Fixed
 Assignee: James E. King III
Fix Version/s: 0.11.0

> Can't find release notes for Thrift-0.10.0
> --
>
> Key: THRIFT-4111
> URL: https://issues.apache.org/jira/browse/THRIFT-4111
> Project: Thrift
>  Issue Type: Bug
>  Components: Website
>Affects Versions: 0.10.0
>Reporter: Pavel Kotlyarov
>Assignee: James E. King III
>Priority: Major
> Fix For: 0.11.0
>
>
> Our company is actively used Thrift and we interested in new versions, but 
> without list of actual changes they are almost useless for us.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Updated] (THRIFT-4111) Can't find release notes for Thrift-0.10.0

2018-12-20 Thread James E. King III (JIRA)


 [ 
https://issues.apache.org/jira/browse/THRIFT-4111?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James E. King III updated THRIFT-4111:
--
Issue Type: Documentation  (was: Bug)

> Can't find release notes for Thrift-0.10.0
> --
>
> Key: THRIFT-4111
> URL: https://issues.apache.org/jira/browse/THRIFT-4111
> Project: Thrift
>  Issue Type: Documentation
>  Components: Website
>Affects Versions: 0.10.0
>Reporter: Pavel Kotlyarov
>Assignee: James E. King III
>Priority: Major
> Fix For: 0.11.0
>
>
> Our company is actively used Thrift and we interested in new versions, but 
> without list of actual changes they are almost useless for us.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4678) add noexcept cpp generator option

2018-12-20 Thread James E. King III (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16725846#comment-16725846
 ] 

James E. King III commented on THRIFT-4678:
---

I was talking privately with someone else in the Thrift PMC ([~codesf]) and 
mentioned that I would be okay if thrift 0.12.0 was the last release of thrift 
that worked with C++03; and that the next release could have the option to use 
boost for specific things, or just use std; alternatively we could just drop 
boost all together and rely on std, but that essentially eliminates the 
possibility of rewriting the C++ transport core with boost::asio.  

Distributions that build and distribute a thrift library would have to decide 
if they want to drop the boost dependency or not, knowing it would be 
considered a breaking change for people who consume thrift.  Unfortunately 
having an "option" to use boost or not creates a build-time branch where you 
need a boost and non-boost library.  It may be easier to just say there's no 
boost and no direct pthreads support in the thrift C++ any more, and go 
straight to just using std::thread, and other std::things (unique_ptr, etc).

To answer your question: NO, there is no clear roadmap.  I will open a 
discussion on the user@ mailing list about it and gather replies from folks who 
take the time to respond, and then can put it up for a vote on the dev@ mailing 
list.

> add noexcept cpp generator option
> -
>
> Key: THRIFT-4678
> URL: https://issues.apache.org/jira/browse/THRIFT-4678
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0
>Reporter: yuanyuan chen
>Priority: Minor
>
> The C++11 standard has deprecated the usage of throw() to express 
> exceptions,so to avoid warnings from the compiler,I think this option is 
> useful.
> I have a pull request in github,this issue is created to track it.
> Some questions remain:
> 1.Should we change the runtime c++ library to use BOOST_NOEXCEPT_OR_NOTHROW?
> 2.Should we add an control option to enable all c++11 options like 
> moveable_types .etc?
> 3.Should we begin to support C+17 features? I think std::optional should be 
> used to implement optional keyword,but this is clearly an API breaking 
> change,so we need an c+17 control option.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (THRIFT-4678) add noexcept cpp generator option

2018-12-20 Thread Jens Geyer (JIRA)


[ 
https://issues.apache.org/jira/browse/THRIFT-4678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16725647#comment-16725647
 ] 

Jens Geyer commented on THRIFT-4678:


{quote}B{color:#33}y the way,there is no a new thrift release since Dec 4, 
2017{color}
{quote}
You just made my day :)

 

> add noexcept cpp generator option
> -
>
> Key: THRIFT-4678
> URL: https://issues.apache.org/jira/browse/THRIFT-4678
> Project: Thrift
>  Issue Type: Improvement
>  Components: C++ - Compiler, C++ - Library
>Affects Versions: 0.11.0
>Reporter: yuanyuan chen
>Priority: Minor
>
> The C++11 standard has deprecated the usage of throw() to express 
> exceptions,so to avoid warnings from the compiler,I think this option is 
> useful.
> I have a pull request in github,this issue is created to track it.
> Some questions remain:
> 1.Should we change the runtime c++ library to use BOOST_NOEXCEPT_OR_NOTHROW?
> 2.Should we add an control option to enable all c++11 options like 
> moveable_types .etc?
> 3.Should we begin to support C+17 features? I think std::optional should be 
> used to implement optional keyword,but this is clearly an API breaking 
> change,so we need an c+17 control option.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)