Thread overview
Pantheios 1.0.1 (beta 21) released
Jan 11, 2007
Matthew
Jan 12, 2007
Neal Becker
Jan 12, 2007
Matthew Wilson
Jan 12, 2007
Neal Becker
Jan 13, 2007
Matthew Wilson
Jan 13, 2007
Neal Becker
Jan 12, 2007
Neal Becker
Jan 13, 2007
Matthew Wilson
January 11, 2007
9th January 2007 - 1.0.1 beta 21 ==================================

Download from

http://sourceforge.net/project/showfiles.php?group_id=141831&package_id=155759&release_id=477090


Summary:
--------

 * dynamic control of severity ceiling for fe.N
 * addition of missing implicit link file (be.file)
 * added fault-tolerance to be.N, so one or more (but not all) back-ends can
fail and the application can proceed
 * added be.fail back-end that always fails (for testing be.N fault
tolerance)
Details:
--------

Makefiles:

Application Layer:

Core:

Front-ends:

 + pantheios_fe_simple_getSeverityCeiling() and
   pantheios_fe_simple_setSeverityCeiling(), to dynamically
   control the severity ceiling

Back-ends:

 ~ fix minor syntax error troubling Borland, DMC++ and GCC
 + be.file.h
 ~ formatting error in back-ends on Win32 (fixed in STLSoft
   1.9.1 beta 39; download from http://stlsoft.org/downloads.html) + be.fail
 ~ be.N now tolerates failure of one or more (but not all) back-ends that
are flagged PANTHEIOS_BE_N_F_IGNORE_INIT_FAILURE
Examples:

Samples:

Depends on:

 * STLSoft 1.9.1 beta 40 or later
   (http://stlsoft.org/downloads.html)


January 12, 2007
gcc-4.1?

I copied build/gcc40 to build/gcc41 and tried it, I got:
STLSOFT=/usr/local/src/stlsoft make -f makefile.unix
g++   -c -Wall -pedantic -Wno-long-long -Wno-unused-value -Werror  -O1   -D_REENTRANT  -D_DEBUG -UNDEBUG  -Dunix -DPANTHEIOS_NO_AUTO_INIT  -I../../include -I"/usr/local/src/stlsoft/include"    -o pantheios_appl.debug.o ../../src/pantheios_appl.cpp
/usr/local/src/stlsoft/include/stlsoft/stlsoft.h: In destructor ‘stlsoft::stlsoft_size_checker::~stlsoft_size_checker()’:
/usr/local/src/stlsoft/include/stlsoft/stlsoft.h:1394: error: ISO C++ forbids zero-size array ‘ai’
make: *** [pantheios_appl.debug.o] Error 1

January 12, 2007
Neal Becker Wrote:

> gcc-4.1?
> 
> I copied build/gcc40 to build/gcc41 and tried it, I got:
> STLSOFT=/usr/local/src/stlsoft make -f makefile.unix
> g++   -c -Wall -pedantic -Wno-long-long -Wno-unused-value -Werror  -O1   -D_REENTRANT  -D_DEBUG -UNDEBUG  -Dunix -DPANTHEIOS_NO_AUTO_INIT  -I../../include -I"/usr/local/src/stlsoft/include"    -o pantheios_appl.debug.o ../../src/pantheios_appl.cpp
> /usr/local/src/stlsoft/include/stlsoft/stlsoft.h: In destructor ‘stlsoft::stlsoft_size_checker::~stlsoft_size_checker()’:
> /usr/local/src/stlsoft/include/stlsoft/stlsoft.h:1394: error: ISO C++ forbids zero-size array ‘ai’
> make: *** [pantheios_appl.debug.o] Error 1

That's very strange.

First, are you using STLSoft 1.9.1 b40?

If so, is line 1394:

        STLSOFT_STATIC_ASSERT(sizeof(ss_int32_t)  == 4);

I'm guessing a long on your architecture is not 32-bits, which is a reasonable thing, to be sure. What architecture are you running on?

Can you run the following, and let me know the results?

#include <stdio.h>

int main()
{
  printf("sizeof(short): %d\n", int(sizeof(short)));
  printf("sizeof(int): %d\n", int(sizeof(int)));
  printf("sizeof(long): %d\n", int(sizeof(long)));
  printf("sizeof(long long): %d\n", int(sizeof(long long)));

  return 0;
}

Thanks
January 12, 2007
Matthew Wilson wrote:

> Neal Becker Wrote:
> 
>> gcc-4.1?
>> 
>> I copied build/gcc40 to build/gcc41 and tried it, I got:
>> STLSOFT=/usr/local/src/stlsoft make -f makefile.unix
>> g++   -c -Wall -pedantic -Wno-long-long -Wno-unused-value -Werror  -O1
>> -D_REENTRANT  -D_DEBUG -UNDEBUG  -Dunix -DPANTHEIOS_NO_AUTO_INIT
>> -I../../include -I"/usr/local/src/stlsoft/include"    -o
>> pantheios_appl.debug.o ../../src/pantheios_appl.cpp
>> /usr/local/src/stlsoft/include/stlsoft/stlsoft.h: In destructor
>> ‘stlsoft::stlsoft_size_checker::~stlsoft_size_checker()’:
>> /usr/local/src/stlsoft/include/stlsoft/stlsoft.h:1394: error: ISO C++
>> forbids zero-size array ‘ai’ make: *** [pantheios_appl.debug.o] Error 1
> 
> That's very strange.
> 
> First, are you using STLSoft 1.9.1 b40?

Yes.

> 
> If so, is line 1394:
> 
>         STLSOFT_STATIC_ASSERT(sizeof(ss_int32_t)  == 4);
Yes.


> 
> I'm guessing a long on your architecture is not 32-bits, which is a reasonable thing, to be sure. What architecture are you running on?

This is linux, fedora fc6 on x86_64.

> 
> Can you run the following, and let me know the results?
> 
> #include <stdio.h>
> 
> int main()
> {
>   printf("sizeof(short): %d\n", int(sizeof(short)));
>   printf("sizeof(int): %d\n", int(sizeof(int)));
>   printf("sizeof(long): %d\n", int(sizeof(long)));
>   printf("sizeof(long long): %d\n", int(sizeof(long long)));
> 
>   return 0;
> }
> 
> Thanks
./Test
sizeof(short): 2
sizeof(int): 4
sizeof(long): 8
sizeof(long long): 8
January 12, 2007
Matthew Wilson wrote:

> Neal Becker Wrote:
> 
>> gcc-4.1?
>> 
>> I copied build/gcc40 to build/gcc41 and tried it, I got:
>> STLSOFT=/usr/local/src/stlsoft make -f makefile.unix
>> g++   -c -Wall -pedantic -Wno-long-long -Wno-unused-value -Werror  -O1
>> -D_REENTRANT  -D_DEBUG -UNDEBUG  -Dunix -DPANTHEIOS_NO_AUTO_INIT
>> -I../../include -I"/usr/local/src/stlsoft/include"    -o
>> pantheios_appl.debug.o ../../src/pantheios_appl.cpp
>> /usr/local/src/stlsoft/include/stlsoft/stlsoft.h: In destructor
>> ‘stlsoft::stlsoft_size_checker::~stlsoft_size_checker()’:
>> /usr/local/src/stlsoft/include/stlsoft/stlsoft.h:1394: error: ISO C++
>> forbids zero-size array ‘ai’ make: *** [pantheios_appl.debug.o] Error 1
> 
> That's very strange.
> 
> First, are you using STLSoft 1.9.1 b40?
> 
> If so, is line 1394:
> 
>         STLSOFT_STATIC_ASSERT(sizeof(ss_int32_t)  == 4);
> 
> I'm guessing a long on your architecture is not 32-bits, which is a reasonable thing, to be sure. What architecture are you running on?
> 
> Can you run the following, and let me know the results?
> 
> #include <stdio.h>
> 
> int main()
> {
>   printf("sizeof(short): %d\n", int(sizeof(short)));
>   printf("sizeof(int): %d\n", int(sizeof(int)));
>   printf("sizeof(long): %d\n", int(sizeof(long)));
>   printf("sizeof(long long): %d\n", int(sizeof(long long)));
> 
>   return 0;
> }
> 
> Thanks

Here's what I see in preprocessed output:

Error occurs here:
        do { typedef int ai[(sizeof(ss_int32_t) == 4) ? 1 : 0]; } while(0);

What is ss_int32_t?
typedef ss_int32_pr_t_ ss_int32_t;
# 1218 "/usr/local/src/stlsoft/include/stlsoft/stlsoft.h"
 typedef long ss_int32_pr_t_;


January 13, 2007
"Neal Becker" <ndbecker2@gmail.com> wrote in message news:eo9453$1nf4$1@digitaldaemon.com...
> Matthew Wilson wrote:
>
> > Neal Becker Wrote:
> >
> >> gcc-4.1?
> >>
> >> I copied build/gcc40 to build/gcc41 and tried it, I got:
> >> STLSOFT=/usr/local/src/stlsoft make -f makefile.unix
> >> g++   -c -Wall -pedantic -Wno-long-long -Wno-unused-value -Werror  -O1
> >> -D_REENTRANT  -D_DEBUG -UNDEBUG  -Dunix -DPANTHEIOS_NO_AUTO_INIT
> >> -I../../include -I"/usr/local/src/stlsoft/include"    -o
> >> pantheios_appl.debug.o ../../src/pantheios_appl.cpp
> >> /usr/local/src/stlsoft/include/stlsoft/stlsoft.h: In destructor
> >> 'stlsoft::stlsoft_size_checker::~stlsoft_size_checker()':
> >> /usr/local/src/stlsoft/include/stlsoft/stlsoft.h:1394: error: ISO C++
> >> forbids zero-size array 'ai' make: *** [pantheios_appl.debug.o] Error 1
> >
> > That's very strange.
> >
> > First, are you using STLSoft 1.9.1 b40?
>
> Yes.
>
> >
> > If so, is line 1394:
> >
> >         STLSOFT_STATIC_ASSERT(sizeof(ss_int32_t)  == 4);
> Yes.
>
>
> >
> > I'm guessing a long on your architecture is not 32-bits, which is a reasonable thing, to be sure. What architecture are you running on?
>
> This is linux, fedora fc6 on x86_64.
>
> >
> > Can you run the following, and let me know the results?
> >
> > #include <stdio.h>
> >
> > int main()
> > {
> >   printf("sizeof(short): %d\n", int(sizeof(short)));
> >   printf("sizeof(int): %d\n", int(sizeof(int)));
> >   printf("sizeof(long): %d\n", int(sizeof(long)));
> >   printf("sizeof(long long): %d\n", int(sizeof(long long)));
> >
> >   return 0;
> > }
> >
> > Thanks
> ./Test
> sizeof(short): 2
> sizeof(int): 4
> sizeof(long): 8
> sizeof(long long): 8

Cool.

Your post has stimulated some long-put-off refactoring of the type discrimination. I've been working all morning on this, and am pretty happy that it's all to the good.

I'm now changing the underlying 32-bit types to be int wherever appropriate, to avoid the issue you've discovered.

Should be able to release b41 later today. Assuming that goes well, I'm but a hair's breadth away from releasing 1.9.1. (It's only been 16 months! <g>)

Cheers

Matthew


January 13, 2007
> Here's what I see in preprocessed output:
> 
> Error occurs here:
>         do { typedef int ai[(sizeof(ss_int32_t) == 4) ? 1 : 0]; } while(0);
> 
> What is ss_int32_t?

It's a 32-bit integer type. Equivalent to C99's int32_t.

> typedef ss_int32_pr_t_ ss_int32_t;
> # 1218 "/usr/local/src/stlsoft/include/stlsoft/stlsoft.h"
>  typedef long ss_int32_pr_t_;

This is the internal types guff. I've now refactored this significantly, as you'll see with b 41

Cheers

Matthew
January 13, 2007
Matthew Wilson wrote:

>
> 
> Should be able to release b41 later today. Assuming that goes well, I'm but a hair's breadth away from releasing 1.9.1. (It's only been 16 months! <g>)
> 
> Cheers
> 

Great, I'm looking forward to it.

BTW, how about this: http://boost.org/libs/integer/integer.htm#sized