thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jens Geyer (Jira)" <j...@apache.org>
Subject [jira] [Updated] (THRIFT-4941) thrift compiler will not auto update gen-cpp directory
Date Tue, 27 Aug 2019 21:57:00 GMT

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

Jens Geyer updated THRIFT-4941:
-------------------------------
    Description: 
    thrift compiler will not auto update the files in the gen-cpp directory.

     when we call  t_generator::generate_program() and init_generator() in compiler\cpp\src\thrift\generate\t_generator.cc
,  

     'MKDIR' macro will ignore EEXIST, and throw on any other error, this will not give any
reponse print on terminal. we used to  update and generate the .h .cpp files in the whole
directory.

     1. delete the old folder and create new one, generate the file again.

     2. throw errno directly and exit the terminal.  
   
     what`s your opinion about this?
     
    code details:

{code:java}
// ignore EEXIST, throw on any other error
#ifdef _WIN32
#define MKDIR(x) { int r = _mkdir(x); if (r == -1 && errno != EEXIST) { throw (std::string(x)
+ ": ") + strerror(errno); } }
#else
#define MKDIR(x) { int r = mkdir(x, S_IRWXU | S_IRWXG | S_IRWXO); if (r == -1 && errno
!= EEXIST) { throw (std::string(x) + ": ") + strerror(errno); } }
#endif
{code}


Thanks.
Zhouhu.

  was:
hi ,Jens:

    thrift compiler will not auto update the files in the gen-cpp directory.

     when we call  t_generator::generate_program() and init_generator() in compiler\cpp\src\thrift\generate\t_generator.cc
,  

     'MKDIR' macro will ignore EEXIST, and throw on any other error, this will not give any
reponse print on terminal. we used to  update and generate the .h .cpp files in the whole
directory.

     1. delete the old folder and create new one, generate the file again.

     2. throw errno directly and exit the terminal.  
   
     what`s your opinion about this?
     
    code details:

{code:java}
// ignore EEXIST, throw on any other error
#ifdef _WIN32
#define MKDIR(x) { int r = _mkdir(x); if (r == -1 && errno != EEXIST) { throw (std::string(x)
+ ": ") + strerror(errno); } }
#else
#define MKDIR(x) { int r = mkdir(x, S_IRWXU | S_IRWXG | S_IRWXO); if (r == -1 && errno
!= EEXIST) { throw (std::string(x) + ": ") + strerror(errno); } }
#endif
{code}


Thanks.
Zhouhu.


> thrift compiler will not auto update gen-cpp directory
> ------------------------------------------------------
>
>                 Key: THRIFT-4941
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4941
>             Project: Thrift
>          Issue Type: Bug
>          Components: C++ - Compiler
>    Affects Versions: 0.13.0
>         Environment: 
>            Reporter: pengzhouhu
>            Priority: Major
>             Fix For: 0.13.0
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
>     thrift compiler will not auto update the files in the gen-cpp directory.
>      when we call  t_generator::generate_program() and init_generator() in compiler\cpp\src\thrift\generate\t_generator.cc
,  
>      'MKDIR' macro will ignore EEXIST, and throw on any other error, this will not give
any reponse print on terminal. we used to  update and generate the .h .cpp files in the whole
directory.
>      1. delete the old folder and create new one, generate the file again.
>      2. throw errno directly and exit the terminal.  
>    
>      what`s your opinion about this?
>      
>     code details:
> {code:java}
> // ignore EEXIST, throw on any other error
> #ifdef _WIN32
> #define MKDIR(x) { int r = _mkdir(x); if (r == -1 && errno != EEXIST) { throw
(std::string(x) + ": ") + strerror(errno); } }
> #else
> #define MKDIR(x) { int r = mkdir(x, S_IRWXU | S_IRWXG | S_IRWXO); if (r == -1 &&
errno != EEXIST) { throw (std::string(x) + ": ") + strerror(errno); } }
> #endif
> {code}
> Thanks.
> Zhouhu.



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

Mime
View raw message