www.digitalmars.com         C & C++   DMDScript  

c++.announce - Pantheios 1.0.1 (beta 21) released

reply "Matthew" <matthew hat.stlsoft.dot.org> writes:
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)
Jan 11 2007
parent reply Neal Becker <ndbecker2 gmail.com> writes:
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
Jan 12 2007
parent reply Matthew Wilson <no-one nowhere.nohow> writes:
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
Jan 12 2007
next sibling parent reply Neal Becker <ndbecker2 gmail.com> writes:
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);

 
 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

sizeof(short): 2 sizeof(int): 4 sizeof(long): 8 sizeof(long long): 8
Jan 12 2007
parent reply "Matthew Wilson" <matthew hat.stlsoft.dot.org> writes:
"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);

 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

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
Jan 12 2007
parent Neal Becker <ndbecker2 gmail.com> writes:
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
Jan 13 2007
prev sibling parent reply Neal Becker <ndbecker2 gmail.com> writes:
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_;
Jan 12 2007
parent Matthew Wilson <no-one nowhere.nohow> writes:
 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
Jan 12 2007