Request for build feedback

Discussion in 'C++' started by woodbrian77@gmail.com, Jul 26, 2013.

  1. Guest

    I have access to Linux machines and a couple of Windows 7
    machines. I'd like to know how this software

    http://webEbenezer.net/misc/direct.tar.bz2 (*)

    builds, especially on systems that I don't have like
    Solaris, HP, Windows 8, etc.

    A C++ compiler with support for the 2011 standard is
    needed. VS 11 might work. VS 12 does here.

    There's a Readme file in the archive which tells about
    the makefiles in the archive. There's a separate
    makefile for Windows. On Windows a library and one
    executable are built. On Linux the same library and
    executable are built plus a second executable is built.

    The file to download is 21,059 bytes at this time so
    downloading it shouldn't take long. On my Linux system
    the library and two programs build in 9 seconds. If
    everything goes well, the downloading, tar xf direct.tar.bz2,
    and building should take less than a minute.

    I'd like to know if it does or doesn't build on your
    system. If you prefer to send an email, that would be
    fine.

    Feel free to keep the software if you like. However, two
    of the files in the archive are from another developer
    and should only be used in conjunction with the rest of
    the software. Those files are quicklz.h and quicklz.cc.
    See http://quicklz.com for more info.

    Thank you in advance.

    Brian
    Ebenezer Enterprises - Learning how to walk on economic water.
    http://webEbenezer.net

    (*) More info here
    http://webEbenezer.net/build_integration.html
    , Jul 26, 2013
    #1
    1. Advertising

  2. Guest

    On Thursday, July 25, 2013 6:40:12 PM UTC-5, wrote:
    >
    > The file to download is 21,059 bytes at this time so
    > downloading it shouldn't take long. On my Linux system
    > the library and two programs build in 9 seconds.


    I guess it's more like 7 seconds here.

    >
    > I'd like to know if it does or doesn't build on your
    > system. If you prefer to send an email, that would be
    > fine.
    >


    woodbrian77 at gmail.com
    , Jul 26, 2013
    #2
    1. Advertising

  3. Guest

    In the thread "History of and support for std::basic_string::back()",
    Öö Tiib wrote:

    "Unfortunately C++ does not define anything of it;
    it does not even have modules yet. Do not you see we have nothing?
    Our API with environment is: parameters of 'main', 'cin', 'cout',
    'cerr', 'clog', 'system("pause")' and return value of 'main'. ;-( "

    If you agree with that thinking, please consider helping me
    with this as far as finding out how the software builds on
    other systems. If it doesn't build on a system you have,
    I'll do what I can to fix that, including possibly installing
    that system on one of my machines.
    , Aug 9, 2013
    #3
  4. Guest

    4==argc ? 55555: ::std::strtol(argv[4],nullptr,10)

    I tried writing that without the space between the colons:

    4==argc ? 55555:::std::strtol(argv[4],nullptr,10)

    But both clang and gcc don't like it.

    direct.cc:47:48: error: expected ':'
    ,4==argc ? 55555:::std::strtol(argv[4],nullptr,10)
    ^
    :
    direct.cc:47:41: note: to match this '?'
    ,4==argc ? 55555:::std::strtol(argv[4],nullptr,10)
    ^
    direct.cc:47:50: error: expected unqualified-id
    ,4==argc ? 55555:::std::strtol(argv[4],nullptr,10)
    ^
    ------------------------------------------------------------------

    I'm wondering if it is a bug with the compilers or
    if it's required to have a space in this case.


    If you have a minute or two, please let me know how the
    software described up thread builds on your machine.
    I did get a report that the software built fine on OSX 10.8.
    , Aug 26, 2013
    #4
  5. Ike Naar Guest

    On 2013-08-26, <> wrote:
    >
    > 4==argc ? 55555: ::std::strtol(argv[4],nullptr,10)
    >
    > I tried writing that without the space between the colons:
    >
    > 4==argc ? 55555:::std::strtol(argv[4],nullptr,10)
    >
    > But both clang and gcc don't like it.


    https://en.wikipedia.org/wiki/Maximal_munch

    Why do you insist using ::std instead of plain std ?
    Ike Naar, Aug 26, 2013
    #5
  6. Guest

    , Aug 26, 2013
    #6
  7. On Mon, 26 Aug 2013 12:03:48 -0700 (PDT), wrote:

    >
    >4==argc ? 55555: ::std::strtol(argv[4],nullptr,10)
    >
    >I tried writing that without the space between the colons:
    >
    >4==argc ? 55555:::std::strtol(argv[4],nullptr,10)
    >
    >But both clang and gcc don't like it.
    >
    >direct.cc:47:48: error: expected ':'
    > ,4==argc ? 55555:::std::strtol(argv[4],nullptr,10)
    > ^
    > :
    >direct.cc:47:41: note: to match this '?'
    > ,4==argc ? 55555:::std::strtol(argv[4],nullptr,10)
    > ^
    >direct.cc:47:50: error: expected unqualified-id
    > ,4==argc ? 55555:::std::strtol(argv[4],nullptr,10)
    > ^
    >------------------------------------------------------------------
    >
    >I'm wondering if it is a bug with the compilers or
    >if it's required to have a space in this case.


    When the compiler is parsing the source into tokens, it is required to
    go as far as possible (an approach called maximum munch). The
    compiler must include the next character in the current token if doing
    results in a valid token. The classic example is
    a = b+++c;
    The compiler is required to process this as
    a = b++ + c;
    and not
    a = b + ++c;

    In your case
    4 == argc ? 55555: ::std...
    is a well formed example of the conditional operator. But
    4 == argc ? 55555:::std...
    must be processed as
    4 == argc ? 55555:: :std...
    and obviously 55555:: is not a valid expression nor is :std...


    --
    Remove del for email
    Barry Schwarz, Aug 26, 2013
    #7
  8. Ike Naar Guest

    On 2013-08-26, <> wrote:
    > On Monday, August 26, 2013 3:23:59 PM UTC-5, Ike Naar wrote:
    >>
    >> https://en.wikipedia.org/wiki/Maximal_munch
    >>
    >> Why do you insist using ::std instead of plain std ?

    >
    > For clarity.


    Please elaborate.
    Ike Naar, Aug 26, 2013
    #8
  9. Guest

    On Monday, August 26, 2013 3:53:28 PM UTC-5, Ike Naar wrote:

    > Please elaborate.


    Using ::std says we are talking about top-level std
    and not another sub namespace that happens to also
    be called std.
    , Aug 26, 2013
    #9
  10. Ian Collins Guest

    wrote:
    > On Monday, August 26, 2013 3:53:28 PM UTC-5, Ike Naar wrote:
    >
    >> Please elaborate.

    >
    > Using ::std says we are talking about top-level std
    > and not another sub namespace that happens to also
    > be called std.


    There shouldn't be another namespace called std.

    --
    Ian Collins
    Ian Collins, Aug 26, 2013
    #10
  11. Guest

    On Monday, August 26, 2013 3:52:47 PM UTC-5, Barry Schwarz wrote:

    >
    > When the compiler is parsing the source into tokens, it is required to
    > go as far as possible (an approach called maximum munch). The
    > compiler must include the next character in the current token if doing
    > results in a valid token. The classic example is
    >
    > a = b+++c;
    >
    > The compiler is required to process this as
    >
    > a = b++ + c;
    >
    > and not
    >
    > a = b + ++c;
    >
    >


    What about templates and > ?
    It's not required to have a space between >'s
    in 2011 C++:

    ::std::deque<::std::deque<int>> hi;

    That seems to be an exception to maximal munching.
    , Aug 26, 2013
    #11
  12. On 8/26/2013 5:30 PM, wrote:
    > On Monday, August 26, 2013 3:52:47 PM UTC-5, Barry Schwarz wrote:
    >
    >>
    >> When the compiler is parsing the source into tokens, it is required to
    >> go as far as possible (an approach called maximum munch). The
    >> compiler must include the next character in the current token if doing
    >> results in a valid token. The classic example is
    >>
    >> a = b+++c;
    >>
    >> The compiler is required to process this as
    >>
    >> a = b++ + c;
    >>
    >> and not
    >>
    >> a = b + ++c;
    >>
    >>

    >
    > What about templates and > ?
    > It's not required to have a space between >'s
    > in 2011 C++:
    >
    > ::std::deque<::std::deque<int>> hi;
    >
    > That seems to be an exception to maximal munching.


    Why? No exception. It eats both > symbols as a single token and then
    the compilation allows using it to close two opening angle brackets at
    the same time. Of course if you had a template

    template<int i> struct myT { bool operator >(int) const; };

    you can't write

    int i;
    myT<42>> i;

    because the >> is interpreted as a double closing bracket and not as two
    separate tokens: one closing bracket and one operator greater-than sign.
    Probably. I didn't try it.

    V
    --
    I do not respond to top-posted replies, please don't ask
    Victor Bazarov, Aug 26, 2013
    #12
  13. Guest

    On Monday, August 26, 2013 4:19:04 PM UTC-5, Ian Collins wrote:
    >
    > There shouldn't be another namespace called std.
    >


    That and $5 will get you a cup of coffee.
    , Aug 26, 2013
    #13
  14. Guest

    On Monday, August 26, 2013 4:41:07 PM UTC-5, wrote:
    > On Monday, August 26, 2013 4:19:04 PM UTC-5, Ian Collins wrote:
    > >

    >
    > > There shouldn't be another namespace called std.
    > >

    >
    > That and $5 will get you a cup of coffee.


    There shouldn't be drunks driving around either. It is
    defensive programming.
    , Aug 26, 2013
    #14
  15. Ike Naar Guest

    On 2013-08-26, <> wrote:
    > On Monday, August 26, 2013 4:19:04 PM UTC-5, Ian Collins wrote:
    >>
    >> There shouldn't be another namespace called std.

    >
    > That and $5 will get you a cup of coffee.


    You are using ::std (instead of plain std) in contexts where there
    is no way that another std namespace than the global one can apply.
    Ike Naar, Aug 26, 2013
    #15
  16. Guest

    On Monday, August 26, 2013 5:03:13 PM UTC-5, Ike Naar wrote:
    >
    > You are using ::std (instead of plain std) in contexts where there
    > is no way that another std namespace than the global one can apply.


    namespace vv {
    namespace std {

    template <class T>
    class vector
    {
    int a;
    };

    }
    }

    using namespace vv; // This could be in a header somewhere.

    int main()
    {
    std::vector<int> nn;
    }


    clang++ 3.3 accepts that with no warnings. G++ 4.8.1 gives errors.
    , Aug 26, 2013
    #16
  17. Ian Collins Guest

    wrote:
    > On Monday, August 26, 2013 5:03:13 PM UTC-5, Ike Naar wrote:
    >>
    >> You are using ::std (instead of plain std) in contexts where there
    >> is no way that another std namespace than the global one can apply.

    >
    > namespace vv {
    > namespace std {
    >
    > template <class T>
    > class vector
    > {
    > int a;
    > };
    >
    > }
    > }
    >
    > using namespace vv; // This could be in a header somewhere.


    Could be, but it would be a really evil thing to do.

    > int main()
    > {
    > std::vector<int> nn;
    > }
    >
    >
    > clang++ 3.3 accepts that with no warnings. G++ 4.8.1 gives errors.


    Clang appears to be wrong, std:: is ambiguous in this context.

    --
    Ian Collins
    Ian Collins, Aug 26, 2013
    #17
  18. On 8/26/2013 6:51 PM, Ian Collins wrote:
    > wrote:
    >> On Monday, August 26, 2013 5:03:13 PM UTC-5, Ike Naar wrote:
    >>>
    >>> You are using ::std (instead of plain std) in contexts where there
    >>> is no way that another std namespace than the global one can apply.

    >>
    >> namespace vv {
    >> namespace std {
    >>
    >> template <class T>
    >> class vector
    >> {
    >> int a;
    >> };
    >>
    >> }
    >> }
    >>
    >> using namespace vv; // This could be in a header somewhere.

    >
    > Could be, but it would be a really evil thing to do.
    >
    >> int main()
    >> {
    >> std::vector<int> nn;
    >> }
    >>
    >>
    >> clang++ 3.3 accepts that with no warnings. G++ 4.8.1 gives errors.

    >
    > Clang appears to be wrong, std:: is ambiguous in this context.


    Why would it be ambiguous? There is no #include <vector> ...

    V
    --
    I do not respond to top-posted replies, please don't ask
    Victor Bazarov, Aug 27, 2013
    #18
  19. Guest

    On Monday, August 26, 2013 5:51:20 PM UTC-5, Ian Collins wrote:
    > wrote:
    >
    > > using namespace vv; // This could be in a header somewhere.

    >
    > Could be, but it would be a really evil thing to do.


    It would be evil if it was done with the hope of confusing
    others.
    , Aug 27, 2013
    #19
  20. Guest

    On Monday, August 26, 2013 8:11:19 PM UTC-5, Victor Bazarov wrote:
    >
    > > Clang appears to be wrong, std:: is ambiguous in this context.

    >
    > Why would it be ambiguous? There is no #include <vector> ...
    >


    Some of the emperors aren't wearing as much as they should be.
    , Aug 27, 2013
    #20
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Peter Ashenden
    Replies:
    5
    Views:
    590
    Peter Ashenden
    Dec 17, 2004
  2. Michael Attenborough
    Replies:
    22
    Views:
    2,252
    Mike Treseler
    Mar 13, 2006
  3. William Park
    Replies:
    0
    Views:
    261
    William Park
    Jan 25, 2004
  4. Dan Perl

    request for feedback: pyfmf

    Dan Perl, Oct 27, 2004, in forum: Python
    Replies:
    4
    Views:
    331
    Dan Perl
    Oct 27, 2004
  5. Kenneth McDonald
    Replies:
    1
    Views:
    281
    Skip Montanaro
    Jan 31, 2005
Loading...

Share This Page