[jira] [Commented] (THRIFT-4279) Wrong path in include directive in generated Thrift sources
[ https://issues.apache.org/jira/browse/THRIFT-4279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16119236#comment-16119236 ] ASF GitHub Bot commented on THRIFT-4279: Github user dhull commented on the issue: https://github.com/apache/thrift/pull/1329 It appears to me that the AppVeyor build failure is due it a problem with the build machine: ``` CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.8/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find FLEX (missing: FLEX_EXECUTABLE) ``` > Wrong path in include directive in generated Thrift sources > --- > > Key: THRIFT-4279 > URL: https://issues.apache.org/jira/browse/THRIFT-4279 > Project: Thrift > Issue Type: Bug > Components: Erlang - Compiler >Reporter: David Hull >Priority: Minor > > My code change in THRIFT-4270 introduced a bug in the path to the generated > header files in the generated Erlang code. Previously the `-include` > directives did not specify a path, but after the THRIFT-4270 change the > `-include` directive has the "gen-erl" directory as part of the path. > Example include directive before the change: > {noformat} > -include("constants_demo_types.hrl"). > {noformat} > Example include directive after the change: > {noformat} > -include("test/gen-erl/constants_demo_types.hrl"). > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] thrift issue #1329: THRIFT-4279: Fix include path in generated Erlang Thrift...
Github user dhull commented on the issue: https://github.com/apache/thrift/pull/1329 It appears to me that the AppVeyor build failure is due it a problem with the build machine: ``` CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.8/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find FLEX (missing: FLEX_EXECUTABLE) ``` --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4279) Wrong path in include directive in generated Thrift sources
[ https://issues.apache.org/jira/browse/THRIFT-4279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16119145#comment-16119145 ] ASF GitHub Bot commented on THRIFT-4279: Github user djnym commented on the issue: https://github.com/apache/thrift/pull/1329 @Jens-G this probably needs to be merged assuming it passes the checks as we don't want to generate bad code. > Wrong path in include directive in generated Thrift sources > --- > > Key: THRIFT-4279 > URL: https://issues.apache.org/jira/browse/THRIFT-4279 > Project: Thrift > Issue Type: Bug > Components: Erlang - Compiler >Reporter: David Hull >Priority: Minor > > My code change in THRIFT-4270 introduced a bug in the path to the generated > header files in the generated Erlang code. Previously the `-include` > directives did not specify a path, but after the THRIFT-4270 change the > `-include` directive has the "gen-erl" directory as part of the path. > Example include directive before the change: > {noformat} > -include("constants_demo_types.hrl"). > {noformat} > Example include directive after the change: > {noformat} > -include("test/gen-erl/constants_demo_types.hrl"). > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] thrift issue #1329: THRIFT-4279: Fix include path in generated Erlang Thrift...
Github user djnym commented on the issue: https://github.com/apache/thrift/pull/1329 @Jens-G this probably needs to be merged assuming it passes the checks as we don't want to generate bad code. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4279) Wrong path in include directive in generated Thrift sources
[ https://issues.apache.org/jira/browse/THRIFT-4279?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16119008#comment-16119008 ] ASF GitHub Bot commented on THRIFT-4279: GitHub user dhull opened a pull request: https://github.com/apache/thrift/pull/1329 THRIFT-4279: Fix include path in generated Erlang Thrift sources. The change in THRIFT-4270 inadvertantly modified the include directives in the generated Erlang sources to include the gen-erl directory in the path to the include file. This commit restores the previous behavior. Example include directive before the THRIFT-4270 change: ```erlang -include("constants_demo_types.hrl"). ``` Example include directive after the THRIFT-4270 change: ```erlang -include("test/gen-erl/constants_demo_types.hrl"). ``` You can merge this pull request into a Git repository by running: $ git pull https://github.com/dhull/thrift thrift-4279-erlang-fix-include-path Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1329.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1329 commit 4aa8fca3955ff6eb1f6cc810a8cad50a74294caa Author: David HullDate: 2017-08-08T17:42:37Z THRIFT-4279: Fix include path in generated Erlang Thrift sources. The change in THRIFT-4270 inadvertantly modified the include directives in the generated Erlang sources to include the gen-erl directory in the path to the include file. This commit restores the previous behavior. > Wrong path in include directive in generated Thrift sources > --- > > Key: THRIFT-4279 > URL: https://issues.apache.org/jira/browse/THRIFT-4279 > Project: Thrift > Issue Type: Bug > Components: Erlang - Compiler >Reporter: David Hull >Priority: Minor > > My code change in THRIFT-4270 introduced a bug in the path to the generated > header files in the generated Erlang code. Previously the `-include` > directives did not specify a path, but after the THRIFT-4270 change the > `-include` directive has the "gen-erl" directory as part of the path. > Example include directive before the change: > {noformat} > -include("constants_demo_types.hrl"). > {noformat} > Example include directive after the change: > {noformat} > -include("test/gen-erl/constants_demo_types.hrl"). > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] thrift pull request #1329: THRIFT-4279: Fix include path in generated Erlang...
GitHub user dhull opened a pull request: https://github.com/apache/thrift/pull/1329 THRIFT-4279: Fix include path in generated Erlang Thrift sources. The change in THRIFT-4270 inadvertantly modified the include directives in the generated Erlang sources to include the gen-erl directory in the path to the include file. This commit restores the previous behavior. Example include directive before the THRIFT-4270 change: ```erlang -include("constants_demo_types.hrl"). ``` Example include directive after the THRIFT-4270 change: ```erlang -include("test/gen-erl/constants_demo_types.hrl"). ``` You can merge this pull request into a Git repository by running: $ git pull https://github.com/dhull/thrift thrift-4279-erlang-fix-include-path Alternatively you can review and apply these changes as the patch at: https://github.com/apache/thrift/pull/1329.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #1329 commit 4aa8fca3955ff6eb1f6cc810a8cad50a74294caa Author: David HullDate: 2017-08-08T17:42:37Z THRIFT-4279: Fix include path in generated Erlang Thrift sources. The change in THRIFT-4270 inadvertantly modified the include directives in the generated Erlang sources to include the gen-erl directory in the path to the include file. This commit restores the previous behavior. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Updated] (THRIFT-4279) Wrong path in include directive in generated Thrift sources
[ https://issues.apache.org/jira/browse/THRIFT-4279?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] David Hull updated THRIFT-4279: --- Description: My code change in THRIFT-4270 introduced a bug in the path to the generated header files in the generated Erlang code. Previously the `-include` directives did not specify a path, but after the THRIFT-4270 change the `-include` directive has the "gen-erl" directory as part of the path. Example include directive before the change: {noformat} -include("constants_demo_types.hrl"). {noformat} Example include directive after the change: {noformat} -include("test/gen-erl/constants_demo_types.hrl"). {noformat} was:My code change in THRIFT-4270 introduced a bug in the path to the generated header files in the generated Erlang code. Previously the `-include` directives did not specify a path, but after the THRIFT-4270 change the `-include` directive has the "gen-erl" directory as part of the path. > Wrong path in include directive in generated Thrift sources > --- > > Key: THRIFT-4279 > URL: https://issues.apache.org/jira/browse/THRIFT-4279 > Project: Thrift > Issue Type: Bug > Components: Erlang - Compiler >Reporter: David Hull >Priority: Minor > > My code change in THRIFT-4270 introduced a bug in the path to the generated > header files in the generated Erlang code. Previously the `-include` > directives did not specify a path, but after the THRIFT-4270 change the > `-include` directive has the "gen-erl" directory as part of the path. > Example include directive before the change: > {noformat} > -include("constants_demo_types.hrl"). > {noformat} > Example include directive after the change: > {noformat} > -include("test/gen-erl/constants_demo_types.hrl"). > {noformat} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Created] (THRIFT-4280) Add async nonblocking ssl support in java client
Randy Abernethy created THRIFT-4280: --- Summary: Add async nonblocking ssl support in java client Key: THRIFT-4280 URL: https://issues.apache.org/jira/browse/THRIFT-4280 Project: Thrift Issue Type: Bug Components: Java - Library Affects Versions: 0.10.0 Reporter: Randy Abernethy Priority: Minor Fix For: 0.10.0 Add async nonblocking ssl support in java client -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (THRIFT-4277) Cannot get any data value using node.js
[ https://issues.apache.org/jira/browse/THRIFT-4277?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jens Geyer updated THRIFT-4277: --- Description: When using Thift to generate js code, all property value are `undefined`, because of an extra `.value`. This bug makes Node.js cannot use Thrift anymore. generated code: {{this.groupId = input.readString().value // got undefined}} should be {{this.groupId = input.readString() // works fine}} was: When using Thift to generate js code, all property value are `undefined`, because of an extra `.value`. This bug makes Node.js cannot use Thrift anymore. generated code: this.groupId = input.readString().value // got undefined should be this.groupId = input.readString() // works fine > Cannot get any data value using node.js > --- > > Key: THRIFT-4277 > URL: https://issues.apache.org/jira/browse/THRIFT-4277 > Project: Thrift > Issue Type: Bug > Components: Node.js - Compiler >Affects Versions: 0.10.0 >Reporter: TianYI Wen > > When using Thift to generate js code, all property value are `undefined`, > because of an extra `.value`. This bug makes Node.js cannot use Thrift > anymore. > generated code: > {{this.groupId = input.readString().value // got undefined}} > should be > {{this.groupId = input.readString() // works fine}} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (THRIFT-4277) Cannot get any data value using node.js
[ https://issues.apache.org/jira/browse/THRIFT-4277?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16118949#comment-16118949 ] Jens Geyer commented on THRIFT-4277: Are you able to [provide a patch or pull request|http://thrift.apache.org/docs/HowToContribute]? > Cannot get any data value using node.js > --- > > Key: THRIFT-4277 > URL: https://issues.apache.org/jira/browse/THRIFT-4277 > Project: Thrift > Issue Type: Bug > Components: Node.js - Compiler >Affects Versions: 0.10.0 >Reporter: TianYI Wen > > When using Thift to generate js code, all property value are `undefined`, > because of an extra `.value`. This bug makes Node.js cannot use Thrift > anymore. > generated code: > {{this.groupId = input.readString().value // got undefined}} > should be > {{this.groupId = input.readString() // works fine}} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (THRIFT-4278) Thrift Node.js library crashes app
[ https://issues.apache.org/jira/browse/THRIFT-4278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jens Geyer updated THRIFT-4278: --- Description: Create TBufferedTransport by using its receiver funciton. and using TCompactProtocol to communicate. But this object lack of `rstack` and `rpos`. It make app crash. details: {code title:thrift file} struct CliRoomData { 10: i32 roomId 20: string roomName 30: i32 masterUserId 40: mapmapUserData // key: user id value: CliRoomUserData 50: map mapLevelData // key: level idvalue: CliRoomLevelData 60: optional string groupId } {code} generated code which crashes the app: {code} // input haven't property `rstack` and `rpos` if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) { input.rstack.pop(); } {code} code about the crash {code} const entity = new Protocols[className]() // create the thrift object to read from protocol return new Promise((resolve, reject) => { const receiver = thrift.TBufferedTransport.receiver((reader) => { // create buffered using library const protocol = new thrift.TCompactProtocol(reader) entity.read(protocol) // crash the app resolve(entity) }) receiver(payload) }) {code} was: Create TBufferedTransport by using its receiver funciton. and using TCompactProtocol to communicate. But this object lack of `rstack` and `rpos`. It make app crash. Is thrift library tested before release? details: thrift file struct CliRoomData { 10: i32 roomId 20: string roomName 30: i32 masterUserId 40: map mapUserData // key: user id value: CliRoomUserData 50: map mapLevelData // key: level idvalue: CliRoomLevelData 60: optional string groupId } generated code which crashes the app: // input haven't property `rstack` and `rpos` if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) { input.rstack.pop(); } code about the crash const entity = new Protocols[className]() // create the thrift object to read from protocol return new Promise((resolve, reject) => { const receiver = thrift.TBufferedTransport.receiver((reader) => { // create buffered using library const protocol = new thrift.TCompactProtocol(reader) entity.read(protocol) // crash the app resolve(entity) }) receiver(payload) }) > Thrift Node.js library crashes app > -- > > Key: THRIFT-4278 > URL: https://issues.apache.org/jira/browse/THRIFT-4278 > Project: Thrift > Issue Type: Bug > Components: Node.js - Library >Affects Versions: 0.10.0 >Reporter: TianYI Wen > > Create TBufferedTransport by using its receiver funciton. and using > TCompactProtocol to communicate. But this object lack of `rstack` and `rpos`. > It make app crash. > details: > {code title:thrift file} > struct CliRoomData > { > 10: i32 roomId > 20: string roomName > 30: i32 masterUserId > 40: map mapUserData // key: > user id value: CliRoomUserData > 50: map mapLevelData // key: > level idvalue: CliRoomLevelData > 60: optional string groupId > } > {code} > generated code which crashes the app: > {code} > // input haven't property `rstack` and `rpos` > if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) { > input.rstack.pop(); > } > {code} > code about the crash > {code} > const entity = new Protocols[className]() // create the thrift object to > read from protocol > return new Promise((resolve, reject) => { > const receiver = thrift.TBufferedTransport.receiver((reader) => { // > create buffered using library > const protocol = new thrift.TCompactProtocol(reader) > entity.read(protocol) // crash the app > resolve(entity) > }) > receiver(payload) > }) > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Updated] (THRIFT-4278) Thrift Node.js library crashes app
[ https://issues.apache.org/jira/browse/THRIFT-4278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jens Geyer updated THRIFT-4278: --- Description: Create TBufferedTransport by using its receiver funciton. and using TCompactProtocol to communicate. But this object lack of `rstack` and `rpos`. It make app crash. details: {code} struct CliRoomData { 10: i32 roomId 20: string roomName 30: i32 masterUserId 40: mapmapUserData // key: user id value: CliRoomUserData 50: map mapLevelData // key: level idvalue: CliRoomLevelData 60: optional string groupId } {code} generated code which crashes the app: {code} // input haven't property `rstack` and `rpos` if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) { input.rstack.pop(); } {code} code about the crash {code} const entity = new Protocols[className]() // create the thrift object to read from protocol return new Promise((resolve, reject) => { const receiver = thrift.TBufferedTransport.receiver((reader) => { // create buffered using library const protocol = new thrift.TCompactProtocol(reader) entity.read(protocol) // crash the app resolve(entity) }) receiver(payload) }) {code} was: Create TBufferedTransport by using its receiver funciton. and using TCompactProtocol to communicate. But this object lack of `rstack` and `rpos`. It make app crash. details: {code title:thrift file} struct CliRoomData { 10: i32 roomId 20: string roomName 30: i32 masterUserId 40: map mapUserData // key: user id value: CliRoomUserData 50: map mapLevelData // key: level idvalue: CliRoomLevelData 60: optional string groupId } {code} generated code which crashes the app: {code} // input haven't property `rstack` and `rpos` if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) { input.rstack.pop(); } {code} code about the crash {code} const entity = new Protocols[className]() // create the thrift object to read from protocol return new Promise((resolve, reject) => { const receiver = thrift.TBufferedTransport.receiver((reader) => { // create buffered using library const protocol = new thrift.TCompactProtocol(reader) entity.read(protocol) // crash the app resolve(entity) }) receiver(payload) }) {code} > Thrift Node.js library crashes app > -- > > Key: THRIFT-4278 > URL: https://issues.apache.org/jira/browse/THRIFT-4278 > Project: Thrift > Issue Type: Bug > Components: Node.js - Library >Affects Versions: 0.10.0 >Reporter: TianYI Wen > > Create TBufferedTransport by using its receiver funciton. and using > TCompactProtocol to communicate. But this object lack of `rstack` and `rpos`. > It make app crash. > details: > {code} > struct CliRoomData > { > 10: i32 roomId > 20: string roomName > 30: i32 masterUserId > 40: map mapUserData // key: > user id value: CliRoomUserData > 50: map mapLevelData // key: > level idvalue: CliRoomLevelData > 60: optional string groupId > } > {code} > generated code which crashes the app: > {code} > // input haven't property `rstack` and `rpos` > if (input.rstack.length > input.rpos[input.rpos.length -1] + 1) { > input.rstack.pop(); > } > {code} > code about the crash > {code} > const entity = new Protocols[className]() // create the thrift object to > read from protocol > return new Promise((resolve, reject) => { > const receiver = thrift.TBufferedTransport.receiver((reader) => { // > create buffered using library > const protocol = new thrift.TCompactProtocol(reader) > entity.read(protocol) // crash the app > resolve(entity) > }) > receiver(payload) > }) > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (THRIFT-2221) Generate c++ code with std::shared_ptr instead of boost::shared_ptr.
[ https://issues.apache.org/jira/browse/THRIFT-2221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16118943#comment-16118943 ] ASF GitHub Bot commented on THRIFT-2221: Github user jeking3 commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r132017398 --- Diff: lib/cpp/README.md --- @@ -55,15 +54,22 @@ you are using libthriftnb you will also need libevent. ## Dependencies -boost shared pointers -http://www.boost.org/libs/smart_ptr/smart_ptr.htm +If your C++ environment implements C++11 or later, boost will automatically use --- End diff -- Fixed. > Generate c++ code with std::shared_ptr instead of boost::shared_ptr. > > > Key: THRIFT-2221 > URL: https://issues.apache.org/jira/browse/THRIFT-2221 > Project: Thrift > Issue Type: Improvement > Components: C++ - Compiler >Affects Versions: 0.9.1 > Environment: C++11 compilers with std::shared_ptr support >Reporter: Chris Stylianou >Assignee: James E. King, III > Labels: c++11, compiler, thrift > > Most modern compilers now have full support for std::shared_ptr when enable > with c++11 flags. It would be nice to have the option to generate code that > uses this instead of boost::shared_ptr. This would enable us to remove > another boost dependency, on the road to a dependency-free thrift library :) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] thrift pull request #1328: THRIFT-2221: detect C++11 and use std namespace f...
Github user jeking3 commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r132017398 --- Diff: lib/cpp/README.md --- @@ -55,15 +54,22 @@ you are using libthriftnb you will also need libevent. ## Dependencies -boost shared pointers -http://www.boost.org/libs/smart_ptr/smart_ptr.htm +If your C++ environment implements C++11 or later, boost will automatically use --- End diff -- Fixed. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-2221) Generate c++ code with std::shared_ptr instead of boost::shared_ptr.
[ https://issues.apache.org/jira/browse/THRIFT-2221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16118931#comment-16118931 ] ASF GitHub Bot commented on THRIFT-2221: Github user jeking3 commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r132013793 --- Diff: lib/cpp/src/thrift/stdcxx.h --- @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef _THRIFT_STDCXX_H_ +#define _THRIFT_STDCXX_H_ 1 + +#include + +/// +// +// functional (function, bind) +// +/// + +#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _MSC_VER == 1600 +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _THRIFT_FUNCTIONAL_TR1_ + + namespace apache { namespace thrift { namespace stdcxx { + +using ::std::tr1::bind; +using ::std::tr1::function; + +namespace placeholders { + using ::std::tr1::placeholders::_1; + using ::std::tr1::placeholders::_2; + using ::std::tr1::placeholders::_3; + using ::std::tr1::placeholders::_4; + using ::std::tr1::placeholders::_5; + using ::std::tr1::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#else + + #include + + namespace apache { namespace thrift { namespace stdcxx { +using ::std::bind; +using ::std::function; + +namespace placeholders { + using ::std::placeholders::_1; + using ::std::placeholders::_2; + using ::std::placeholders::_3; + using ::std::placeholders::_4; + using ::std::placeholders::_5; + using ::std::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#endif + +/// +// +// Smart Pointers +// +/// + +// +// This is for debugging build issues in CI: +// +#if 0 +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#pragma message(STRING(__clang__)) +#pragma message(STRING(__clang_version__)) +#pragma message(STRING(__cplusplus)) +#pragma message(STRING(__GNUC__)) +#pragma message(STRING(__GNUC_MINOR__)) +#pragma message(STRING(__GNUC_PATCHLEVEL__)) +#pragma message(STRING(__cpp_alias_templates)) +#endif + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) +#include +#else +#include + #if __cplusplus < 201103L +#include + #endif +#endif + +namespace apache { namespace thrift { namespace stdcxx { + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) + + using ::boost::const_pointer_cast; + using ::boost::dynamic_pointer_cast; + using ::boost::enable_shared_from_this; + using ::boost::make_shared; + using ::boost::scoped_ptr; + using ::boost::shared_ptr; + using ::boost::static_pointer_cast; + using ::boost::weak_ptr; + +#else + + using ::std::const_pointer_cast; + using ::std::dynamic_pointer_cast; + using ::std::enable_shared_from_this; + using ::std::make_shared; + // yes, they renamed in in std:: for some reason... --- End diff -- I removed it in the last PR. > Generate c++ code with std::shared_ptr instead of boost::shared_ptr. > > > Key: THRIFT-2221 > URL: https://issues.apache.org/jira/browse/THRIFT-2221 > Project: Thrift > Issue Type: Improvement > Components: C++ -
[jira] [Commented] (THRIFT-2221) Generate c++ code with std::shared_ptr instead of boost::shared_ptr.
[ https://issues.apache.org/jira/browse/THRIFT-2221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16118932#comment-16118932 ] ASF GitHub Bot commented on THRIFT-2221: Github user jeking3 commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r132013921 --- Diff: lib/cpp/src/thrift/stdcxx.h --- @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef _THRIFT_STDCXX_H_ +#define _THRIFT_STDCXX_H_ 1 + +#include + +/// +// +// functional (function, bind) +// +/// + +#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _MSC_VER == 1600 +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _THRIFT_FUNCTIONAL_TR1_ + + namespace apache { namespace thrift { namespace stdcxx { + +using ::std::tr1::bind; +using ::std::tr1::function; + +namespace placeholders { + using ::std::tr1::placeholders::_1; + using ::std::tr1::placeholders::_2; + using ::std::tr1::placeholders::_3; + using ::std::tr1::placeholders::_4; + using ::std::tr1::placeholders::_5; + using ::std::tr1::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#else + + #include + + namespace apache { namespace thrift { namespace stdcxx { +using ::std::bind; +using ::std::function; + +namespace placeholders { + using ::std::placeholders::_1; + using ::std::placeholders::_2; + using ::std::placeholders::_3; + using ::std::placeholders::_4; + using ::std::placeholders::_5; + using ::std::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#endif + +/// +// +// Smart Pointers +// +/// + +// +// This is for debugging build issues in CI: +// +#if 0 +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#pragma message(STRING(__clang__)) +#pragma message(STRING(__clang_version__)) +#pragma message(STRING(__cplusplus)) +#pragma message(STRING(__GNUC__)) +#pragma message(STRING(__GNUC_MINOR__)) +#pragma message(STRING(__GNUC_PATCHLEVEL__)) +#pragma message(STRING(__cpp_alias_templates)) +#endif + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) +#include +#else +#include + #if __cplusplus < 201103L --- End diff -- Cleaned up in the last push. > Generate c++ code with std::shared_ptr instead of boost::shared_ptr. > > > Key: THRIFT-2221 > URL: https://issues.apache.org/jira/browse/THRIFT-2221 > Project: Thrift > Issue Type: Improvement > Components: C++ - Compiler >Affects Versions: 0.9.1 > Environment: C++11 compilers with std::shared_ptr support >Reporter: Chris Stylianou >Assignee: James E. King, III > Labels: c++11, compiler, thrift > > Most modern compilers now have full support for std::shared_ptr when enable > with c++11 flags. It would be nice to have the option to generate code that > uses this instead of boost::shared_ptr. This would enable us to remove > another boost dependency, on the road to a dependency-free thrift library :) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] thrift pull request #1328: THRIFT-2221: detect C++11 and use std namespace f...
Github user jeking3 commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r132013921 --- Diff: lib/cpp/src/thrift/stdcxx.h --- @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef _THRIFT_STDCXX_H_ +#define _THRIFT_STDCXX_H_ 1 + +#include + +/// +// +// functional (function, bind) +// +/// + +#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _MSC_VER == 1600 +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _THRIFT_FUNCTIONAL_TR1_ + + namespace apache { namespace thrift { namespace stdcxx { + +using ::std::tr1::bind; +using ::std::tr1::function; + +namespace placeholders { + using ::std::tr1::placeholders::_1; + using ::std::tr1::placeholders::_2; + using ::std::tr1::placeholders::_3; + using ::std::tr1::placeholders::_4; + using ::std::tr1::placeholders::_5; + using ::std::tr1::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#else + + #include + + namespace apache { namespace thrift { namespace stdcxx { +using ::std::bind; +using ::std::function; + +namespace placeholders { + using ::std::placeholders::_1; + using ::std::placeholders::_2; + using ::std::placeholders::_3; + using ::std::placeholders::_4; + using ::std::placeholders::_5; + using ::std::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#endif + +/// +// +// Smart Pointers +// +/// + +// +// This is for debugging build issues in CI: +// +#if 0 +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#pragma message(STRING(__clang__)) +#pragma message(STRING(__clang_version__)) +#pragma message(STRING(__cplusplus)) +#pragma message(STRING(__GNUC__)) +#pragma message(STRING(__GNUC_MINOR__)) +#pragma message(STRING(__GNUC_PATCHLEVEL__)) +#pragma message(STRING(__cpp_alias_templates)) +#endif + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) +#include +#else +#include + #if __cplusplus < 201103L --- End diff -- Cleaned up in the last push. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] thrift pull request #1328: THRIFT-2221: detect C++11 and use std namespace f...
Github user jeking3 commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r132013793 --- Diff: lib/cpp/src/thrift/stdcxx.h --- @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef _THRIFT_STDCXX_H_ +#define _THRIFT_STDCXX_H_ 1 + +#include + +/// +// +// functional (function, bind) +// +/// + +#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _MSC_VER == 1600 +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _THRIFT_FUNCTIONAL_TR1_ + + namespace apache { namespace thrift { namespace stdcxx { + +using ::std::tr1::bind; +using ::std::tr1::function; + +namespace placeholders { + using ::std::tr1::placeholders::_1; + using ::std::tr1::placeholders::_2; + using ::std::tr1::placeholders::_3; + using ::std::tr1::placeholders::_4; + using ::std::tr1::placeholders::_5; + using ::std::tr1::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#else + + #include + + namespace apache { namespace thrift { namespace stdcxx { +using ::std::bind; +using ::std::function; + +namespace placeholders { + using ::std::placeholders::_1; + using ::std::placeholders::_2; + using ::std::placeholders::_3; + using ::std::placeholders::_4; + using ::std::placeholders::_5; + using ::std::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#endif + +/// +// +// Smart Pointers +// +/// + +// +// This is for debugging build issues in CI: +// +#if 0 +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#pragma message(STRING(__clang__)) +#pragma message(STRING(__clang_version__)) +#pragma message(STRING(__cplusplus)) +#pragma message(STRING(__GNUC__)) +#pragma message(STRING(__GNUC_MINOR__)) +#pragma message(STRING(__GNUC_PATCHLEVEL__)) +#pragma message(STRING(__cpp_alias_templates)) +#endif + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) +#include +#else +#include + #if __cplusplus < 201103L +#include + #endif +#endif + +namespace apache { namespace thrift { namespace stdcxx { + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) + + using ::boost::const_pointer_cast; + using ::boost::dynamic_pointer_cast; + using ::boost::enable_shared_from_this; + using ::boost::make_shared; + using ::boost::scoped_ptr; + using ::boost::shared_ptr; + using ::boost::static_pointer_cast; + using ::boost::weak_ptr; + +#else + + using ::std::const_pointer_cast; + using ::std::dynamic_pointer_cast; + using ::std::enable_shared_from_this; + using ::std::make_shared; + // yes, they renamed in in std:: for some reason... --- End diff -- I removed it in the last PR. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] thrift pull request #1328: THRIFT-2221: detect C++11 and use std namespace f...
Github user jeking3 commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r132013676 --- Diff: lib/cpp/README.md --- @@ -55,15 +54,22 @@ you are using libthriftnb you will also need libevent. ## Dependencies -boost shared pointers -http://www.boost.org/libs/smart_ptr/smart_ptr.htm +If your C++ environment implements C++11 or later, boost will automatically use --- End diff -- Got it, I can correct this. I'm still dealing with aligning the stars on this one. Lots of namespace and using cleanup, and we will no longer work with Visual Studio 2010 and 2012 in C++0x/C++11 mode; 2013 will be required for C++11 because the solution requires template aliases. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-2221) Generate c++ code with std::shared_ptr instead of boost::shared_ptr.
[ https://issues.apache.org/jira/browse/THRIFT-2221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16118758#comment-16118758 ] ASF GitHub Bot commented on THRIFT-2221: Github user octopus-prime commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r131985807 --- Diff: lib/cpp/src/thrift/stdcxx.h --- @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef _THRIFT_STDCXX_H_ +#define _THRIFT_STDCXX_H_ 1 + +#include + +/// +// +// functional (function, bind) +// +/// + +#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _MSC_VER == 1600 +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _THRIFT_FUNCTIONAL_TR1_ + + namespace apache { namespace thrift { namespace stdcxx { + +using ::std::tr1::bind; +using ::std::tr1::function; + +namespace placeholders { + using ::std::tr1::placeholders::_1; + using ::std::tr1::placeholders::_2; + using ::std::tr1::placeholders::_3; + using ::std::tr1::placeholders::_4; + using ::std::tr1::placeholders::_5; + using ::std::tr1::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#else + + #include + + namespace apache { namespace thrift { namespace stdcxx { +using ::std::bind; +using ::std::function; + +namespace placeholders { + using ::std::placeholders::_1; + using ::std::placeholders::_2; + using ::std::placeholders::_3; + using ::std::placeholders::_4; + using ::std::placeholders::_5; + using ::std::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#endif + +/// +// +// Smart Pointers +// +/// + +// +// This is for debugging build issues in CI: +// +#if 0 +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#pragma message(STRING(__clang__)) +#pragma message(STRING(__clang_version__)) +#pragma message(STRING(__cplusplus)) +#pragma message(STRING(__GNUC__)) +#pragma message(STRING(__GNUC_MINOR__)) +#pragma message(STRING(__GNUC_PATCHLEVEL__)) +#pragma message(STRING(__cpp_alias_templates)) +#endif + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) +#include +#else +#include + #if __cplusplus < 201103L --- End diff -- What is this test/include for? BOOST_NO_CXX11_SMART_PTR told us above that c++11 smart pointers are available. > Generate c++ code with std::shared_ptr instead of boost::shared_ptr. > > > Key: THRIFT-2221 > URL: https://issues.apache.org/jira/browse/THRIFT-2221 > Project: Thrift > Issue Type: Improvement > Components: C++ - Compiler >Affects Versions: 0.9.1 > Environment: C++11 compilers with std::shared_ptr support >Reporter: Chris Stylianou >Assignee: James E. King, III > Labels: c++11, compiler, thrift > > Most modern compilers now have full support for std::shared_ptr when enable > with c++11 flags. It would be nice to have the option to generate code that > uses this instead of boost::shared_ptr. This would enable us to remove > another boost dependency, on the road to a dependency-free thrift library :) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] thrift pull request #1328: THRIFT-2221: detect C++11 and use std namespace f...
Github user octopus-prime commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r131985807 --- Diff: lib/cpp/src/thrift/stdcxx.h --- @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef _THRIFT_STDCXX_H_ +#define _THRIFT_STDCXX_H_ 1 + +#include + +/// +// +// functional (function, bind) +// +/// + +#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _MSC_VER == 1600 +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _THRIFT_FUNCTIONAL_TR1_ + + namespace apache { namespace thrift { namespace stdcxx { + +using ::std::tr1::bind; +using ::std::tr1::function; + +namespace placeholders { + using ::std::tr1::placeholders::_1; + using ::std::tr1::placeholders::_2; + using ::std::tr1::placeholders::_3; + using ::std::tr1::placeholders::_4; + using ::std::tr1::placeholders::_5; + using ::std::tr1::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#else + + #include + + namespace apache { namespace thrift { namespace stdcxx { +using ::std::bind; +using ::std::function; + +namespace placeholders { + using ::std::placeholders::_1; + using ::std::placeholders::_2; + using ::std::placeholders::_3; + using ::std::placeholders::_4; + using ::std::placeholders::_5; + using ::std::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#endif + +/// +// +// Smart Pointers +// +/// + +// +// This is for debugging build issues in CI: +// +#if 0 +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#pragma message(STRING(__clang__)) +#pragma message(STRING(__clang_version__)) +#pragma message(STRING(__cplusplus)) +#pragma message(STRING(__GNUC__)) +#pragma message(STRING(__GNUC_MINOR__)) +#pragma message(STRING(__GNUC_PATCHLEVEL__)) +#pragma message(STRING(__cpp_alias_templates)) +#endif + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) +#include +#else +#include + #if __cplusplus < 201103L --- End diff -- What is this test/include for? BOOST_NO_CXX11_SMART_PTR told us above that c++11 smart pointers are available. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-2221) Generate c++ code with std::shared_ptr instead of boost::shared_ptr.
[ https://issues.apache.org/jira/browse/THRIFT-2221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16118751#comment-16118751 ] ASF GitHub Bot commented on THRIFT-2221: Github user octopus-prime commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r131985042 --- Diff: lib/cpp/src/thrift/stdcxx.h --- @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef _THRIFT_STDCXX_H_ +#define _THRIFT_STDCXX_H_ 1 + +#include + +/// +// +// functional (function, bind) +// +/// + +#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _MSC_VER == 1600 +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _THRIFT_FUNCTIONAL_TR1_ + + namespace apache { namespace thrift { namespace stdcxx { + +using ::std::tr1::bind; +using ::std::tr1::function; + +namespace placeholders { + using ::std::tr1::placeholders::_1; + using ::std::tr1::placeholders::_2; + using ::std::tr1::placeholders::_3; + using ::std::tr1::placeholders::_4; + using ::std::tr1::placeholders::_5; + using ::std::tr1::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#else + + #include + + namespace apache { namespace thrift { namespace stdcxx { +using ::std::bind; +using ::std::function; + +namespace placeholders { + using ::std::placeholders::_1; + using ::std::placeholders::_2; + using ::std::placeholders::_3; + using ::std::placeholders::_4; + using ::std::placeholders::_5; + using ::std::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#endif + +/// +// +// Smart Pointers +// +/// + +// +// This is for debugging build issues in CI: +// +#if 0 +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#pragma message(STRING(__clang__)) +#pragma message(STRING(__clang_version__)) +#pragma message(STRING(__cplusplus)) +#pragma message(STRING(__GNUC__)) +#pragma message(STRING(__GNUC_MINOR__)) +#pragma message(STRING(__GNUC_PATCHLEVEL__)) +#pragma message(STRING(__cpp_alias_templates)) +#endif + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) +#include +#else +#include + #if __cplusplus < 201103L --- End diff -- What is this test for? BOOST_NO_CXX11_SMART_PTR told us above that c++11 samart pointers are available. > Generate c++ code with std::shared_ptr instead of boost::shared_ptr. > > > Key: THRIFT-2221 > URL: https://issues.apache.org/jira/browse/THRIFT-2221 > Project: Thrift > Issue Type: Improvement > Components: C++ - Compiler >Affects Versions: 0.9.1 > Environment: C++11 compilers with std::shared_ptr support >Reporter: Chris Stylianou >Assignee: James E. King, III > Labels: c++11, compiler, thrift > > Most modern compilers now have full support for std::shared_ptr when enable > with c++11 flags. It would be nice to have the option to generate code that > uses this instead of boost::shared_ptr. This would enable us to remove > another boost dependency, on the road to a dependency-free thrift library :) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] thrift pull request #1328: THRIFT-2221: detect C++11 and use std namespace f...
Github user octopus-prime commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r131985042 --- Diff: lib/cpp/src/thrift/stdcxx.h --- @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef _THRIFT_STDCXX_H_ +#define _THRIFT_STDCXX_H_ 1 + +#include + +/// +// +// functional (function, bind) +// +/// + +#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _MSC_VER == 1600 +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _THRIFT_FUNCTIONAL_TR1_ + + namespace apache { namespace thrift { namespace stdcxx { + +using ::std::tr1::bind; +using ::std::tr1::function; + +namespace placeholders { + using ::std::tr1::placeholders::_1; + using ::std::tr1::placeholders::_2; + using ::std::tr1::placeholders::_3; + using ::std::tr1::placeholders::_4; + using ::std::tr1::placeholders::_5; + using ::std::tr1::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#else + + #include + + namespace apache { namespace thrift { namespace stdcxx { +using ::std::bind; +using ::std::function; + +namespace placeholders { + using ::std::placeholders::_1; + using ::std::placeholders::_2; + using ::std::placeholders::_3; + using ::std::placeholders::_4; + using ::std::placeholders::_5; + using ::std::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#endif + +/// +// +// Smart Pointers +// +/// + +// +// This is for debugging build issues in CI: +// +#if 0 +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#pragma message(STRING(__clang__)) +#pragma message(STRING(__clang_version__)) +#pragma message(STRING(__cplusplus)) +#pragma message(STRING(__GNUC__)) +#pragma message(STRING(__GNUC_MINOR__)) +#pragma message(STRING(__GNUC_PATCHLEVEL__)) +#pragma message(STRING(__cpp_alias_templates)) +#endif + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) +#include +#else +#include + #if __cplusplus < 201103L --- End diff -- What is this test for? BOOST_NO_CXX11_SMART_PTR told us above that c++11 samart pointers are available. --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Created] (THRIFT-4279) Wrong path in include directive in generated Thrift sources
David Hull created THRIFT-4279: -- Summary: Wrong path in include directive in generated Thrift sources Key: THRIFT-4279 URL: https://issues.apache.org/jira/browse/THRIFT-4279 Project: Thrift Issue Type: Bug Components: Erlang - Compiler Reporter: David Hull Priority: Minor My code change in THRIFT-4270 introduced a bug in the path to the generated header files in the generated Erlang code. Previously the `-include` directives did not specify a path, but after the THRIFT-4270 change the `-include` directive has the "gen-erl" directory as part of the path. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (THRIFT-2221) Generate c++ code with std::shared_ptr instead of boost::shared_ptr.
[ https://issues.apache.org/jira/browse/THRIFT-2221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16118619#comment-16118619 ] ASF GitHub Bot commented on THRIFT-2221: Github user hcorg commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r131968863 --- Diff: lib/cpp/src/thrift/stdcxx.h --- @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef _THRIFT_STDCXX_H_ +#define _THRIFT_STDCXX_H_ 1 + +#include + +/// +// +// functional (function, bind) +// +/// + +#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _MSC_VER == 1600 +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _THRIFT_FUNCTIONAL_TR1_ + + namespace apache { namespace thrift { namespace stdcxx { + +using ::std::tr1::bind; +using ::std::tr1::function; + +namespace placeholders { + using ::std::tr1::placeholders::_1; + using ::std::tr1::placeholders::_2; + using ::std::tr1::placeholders::_3; + using ::std::tr1::placeholders::_4; + using ::std::tr1::placeholders::_5; + using ::std::tr1::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#else + + #include + + namespace apache { namespace thrift { namespace stdcxx { +using ::std::bind; +using ::std::function; + +namespace placeholders { + using ::std::placeholders::_1; + using ::std::placeholders::_2; + using ::std::placeholders::_3; + using ::std::placeholders::_4; + using ::std::placeholders::_5; + using ::std::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#endif + +/// +// +// Smart Pointers +// +/// + +// +// This is for debugging build issues in CI: +// +#if 0 +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#pragma message(STRING(__clang__)) +#pragma message(STRING(__clang_version__)) +#pragma message(STRING(__cplusplus)) +#pragma message(STRING(__GNUC__)) +#pragma message(STRING(__GNUC_MINOR__)) +#pragma message(STRING(__GNUC_PATCHLEVEL__)) +#pragma message(STRING(__cpp_alias_templates)) +#endif + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) +#include +#else +#include + #if __cplusplus < 201103L +#include + #endif +#endif + +namespace apache { namespace thrift { namespace stdcxx { + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) + + using ::boost::const_pointer_cast; + using ::boost::dynamic_pointer_cast; + using ::boost::enable_shared_from_this; + using ::boost::make_shared; + using ::boost::scoped_ptr; + using ::boost::shared_ptr; + using ::boost::static_pointer_cast; + using ::boost::weak_ptr; + +#else + + using ::std::const_pointer_cast; + using ::std::dynamic_pointer_cast; + using ::std::enable_shared_from_this; + using ::std::make_shared; + // yes, they renamed in in std:: for some reason... --- End diff -- unnecessary comment - `scoped_ptr` and `unique_ptr` are quite different (`scoped_ptr` can't be moved) so it's not like standard committee did something wrong ;) (at least with naming it `unique_ptr`) > Generate c++ code with std::shared_ptr instead of boost::shared_ptr. > > > Key: THRIFT-2221
[GitHub] thrift pull request #1328: THRIFT-2221: detect C++11 and use std namespace f...
Github user hcorg commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r131968863 --- Diff: lib/cpp/src/thrift/stdcxx.h --- @@ -0,0 +1,137 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifndef _THRIFT_STDCXX_H_ +#define _THRIFT_STDCXX_H_ 1 + +#include + +/// +// +// functional (function, bind) +// +/// + +#if defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _MSC_VER == 1600 +#include +#define _THRIFT_FUNCTIONAL_TR1_ 1 +#endif + +#if _THRIFT_FUNCTIONAL_TR1_ + + namespace apache { namespace thrift { namespace stdcxx { + +using ::std::tr1::bind; +using ::std::tr1::function; + +namespace placeholders { + using ::std::tr1::placeholders::_1; + using ::std::tr1::placeholders::_2; + using ::std::tr1::placeholders::_3; + using ::std::tr1::placeholders::_4; + using ::std::tr1::placeholders::_5; + using ::std::tr1::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#else + + #include + + namespace apache { namespace thrift { namespace stdcxx { +using ::std::bind; +using ::std::function; + +namespace placeholders { + using ::std::placeholders::_1; + using ::std::placeholders::_2; + using ::std::placeholders::_3; + using ::std::placeholders::_4; + using ::std::placeholders::_5; + using ::std::placeholders::_6; +} // apache::thrift::stdcxx::placeholders + }}} // apache::thrift::stdcxx + +#endif + +/// +// +// Smart Pointers +// +/// + +// +// This is for debugging build issues in CI: +// +#if 0 +#define STRING2(x) #x +#define STRING(x) STRING2(x) +#pragma message(STRING(__clang__)) +#pragma message(STRING(__clang_version__)) +#pragma message(STRING(__cplusplus)) +#pragma message(STRING(__GNUC__)) +#pragma message(STRING(__GNUC_MINOR__)) +#pragma message(STRING(__GNUC_PATCHLEVEL__)) +#pragma message(STRING(__cpp_alias_templates)) +#endif + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) +#include +#else +#include + #if __cplusplus < 201103L +#include + #endif +#endif + +namespace apache { namespace thrift { namespace stdcxx { + +#if defined(BOOST_NO_CXX11_SMART_PTR) || defined(FORCE_BOOST_SMART_PTR) + + using ::boost::const_pointer_cast; + using ::boost::dynamic_pointer_cast; + using ::boost::enable_shared_from_this; + using ::boost::make_shared; + using ::boost::scoped_ptr; + using ::boost::shared_ptr; + using ::boost::static_pointer_cast; + using ::boost::weak_ptr; + +#else + + using ::std::const_pointer_cast; + using ::std::dynamic_pointer_cast; + using ::std::enable_shared_from_this; + using ::std::make_shared; + // yes, they renamed in in std:: for some reason... --- End diff -- unnecessary comment - `scoped_ptr` and `unique_ptr` are quite different (`scoped_ptr` can't be moved) so it's not like standard committee did something wrong ;) (at least with naming it `unique_ptr`) --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-2221) Generate c++ code with std::shared_ptr instead of boost::shared_ptr.
[ https://issues.apache.org/jira/browse/THRIFT-2221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16118614#comment-16118614 ] ASF GitHub Bot commented on THRIFT-2221: Github user hcorg commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r131968203 --- Diff: lib/cpp/README.md --- @@ -55,15 +54,22 @@ you are using libthriftnb you will also need libevent. ## Dependencies -boost shared pointers -http://www.boost.org/libs/smart_ptr/smart_ptr.htm +If your C++ environment implements C++11 or later, boost will automatically use --- End diff -- Even if boost itself provides mapping to `std::` pointers, next sentence suggests that boost is not needed. Some little clean up could help confused users ;) (this is also first place in README.md where boost is mentioned, hence the potential confusion) > Generate c++ code with std::shared_ptr instead of boost::shared_ptr. > > > Key: THRIFT-2221 > URL: https://issues.apache.org/jira/browse/THRIFT-2221 > Project: Thrift > Issue Type: Improvement > Components: C++ - Compiler >Affects Versions: 0.9.1 > Environment: C++11 compilers with std::shared_ptr support >Reporter: Chris Stylianou >Assignee: James E. King, III > Labels: c++11, compiler, thrift > > Most modern compilers now have full support for std::shared_ptr when enable > with c++11 flags. It would be nice to have the option to generate code that > uses this instead of boost::shared_ptr. This would enable us to remove > another boost dependency, on the road to a dependency-free thrift library :) -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] thrift pull request #1328: THRIFT-2221: detect C++11 and use std namespace f...
Github user hcorg commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r131968203 --- Diff: lib/cpp/README.md --- @@ -55,15 +54,22 @@ you are using libthriftnb you will also need libevent. ## Dependencies -boost shared pointers -http://www.boost.org/libs/smart_ptr/smart_ptr.htm +If your C++ environment implements C++11 or later, boost will automatically use --- End diff -- Even if boost itself provides mapping to `std::` pointers, next sentence suggests that boost is not needed. Some little clean up could help confused users ;) (this is also first place in README.md where boost is mentioned, hence the potential confusion) --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[GitHub] thrift pull request #1328: THRIFT-2221: detect C++11 and use std namespace f...
Github user hcorg commented on a diff in the pull request: https://github.com/apache/thrift/pull/1328#discussion_r131966861 --- Diff: lib/cpp/README.md --- @@ -55,15 +54,22 @@ you are using libthriftnb you will also need libevent. ## Dependencies -boost shared pointers -http://www.boost.org/libs/smart_ptr/smart_ptr.htm +If your C++ environment implements C++11 or later, boost will automatically use --- End diff -- `If your C++ environment implements C++11 or later, boost will automatically use` - boost or Thrift? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---
[jira] [Commented] (THRIFT-4233) Make THsHaServer.invoker available (get method only) in inherited classes
[ https://issues.apache.org/jira/browse/THRIFT-4233?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16118577#comment-16118577 ] ASF GitHub Bot commented on THRIFT-4233: Github user dmvolod commented on the issue: https://github.com/apache/thrift/pull/1294 Is there any chance to review this changes? > Make THsHaServer.invoker available (get method only) in inherited classes > - > > Key: THRIFT-4233 > URL: https://issues.apache.org/jira/browse/THRIFT-4233 > Project: Thrift > Issue Type: Improvement > Components: Java - Library >Affects Versions: 0.10.0 >Reporter: Dmitry Volodin > > In some cases (for example in Apache Camel component for Thrift) there is a > requirement, when it is necessary not only to transfer executorService from > the external system through the Args in THsHaServer , but to organize control > them from outside. In this case, it's possible to create a class which is > inherited from THsHaServer, but not possible to access invoker in overloaded > gracefullyShutdownInvokerPool(). As workaround the TNonblockingServer must be > extended but requires to create several methods from scratch. > It's necessary to add code below to THsHaServer > {code:java} > protected ExecutorService getInvoker() { > return invoker; > } > {code} > I'm ready to add this code as PR. -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[GitHub] thrift issue #1294: THRIFT-4233 Make THsHaServer.invoker available (get meth...
Github user dmvolod commented on the issue: https://github.com/apache/thrift/pull/1294 Is there any chance to review this changes? --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---