Re: Console screen from spawn_process

2008-10-18 Thread Armin Burgmeier
On Thu, 2008-10-16 at 15:01 -0200, Paulo Flabiano Smorigo wrote:
 Hi Armin,
 
 Thanks for the fast reply!
 
 I compile the child process with the -mwindows parameter but the
 problem is that I need to communicate with the child using stdin and
 stdout by the method spawn_process_with_pipes but with -mwindows
 there is no stdin and stdout...

There still is, you just don't see it. You can use stdin and stdout for
communication even when there is no console window.

 So, there is no solution? I will have to understand the CreateProcess
 API ?

I did the same thing in Glom. Maybe it's helpful:
http://svn.gnome.org/viewvc/glom/trunk/glom/libglom/spawn_with_feedback.cc?view=markup

 Even if I have a system() call in the application this blank console
 appears... :(
 
 If the bug is WONTFIX means there will be no fix?

Most likely not.

 Thanks...
 Paulo Flabiano Smorigo

Armin

___
gtkmm-list mailing list
gtkmm-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtkmm-list


Using gtkmm with Visual C++ and _SECURE_SCL=0

2008-10-18 Thread Maik Beckmann
2008/10/18 Armin Burgmeier [EMAIL PROTECTED]:
 On Fri, 2008-10-17 at 16:05 +0200, Thomas Frank wrote:
 I searched for _SECURE_SCL in the archives but didn't get any results.
 Has this ever been a topic?

 I didn't even know this option existed. Of course, we could enable this
 for the gtkmm runtime binaries, but then people need to set the same
 flag in their applications, which is just one step more that could go
 wrong. This is why I would rather avoid it.

_SECURE_SCL=1 is similar to libstdc++ Debug Mode
 - http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html
quote
To use the libstdc++ debug mode, compile your application with the
compiler flag -D_GLIBCXX_DEBUG. Note that this flag changes the sizes
and behavior of standard class templates such as std::vector, and
therefore you can only link code compiled with debug mode and code
compiled without debug mode if no instantiation of a container is
passed between the two translation units.
/quote
which means binary incompatibility.

 We could also supply release binaries for both _SECURE_SCL=0 and
 _SECURE_SCL=1 (so we would have 6 different VC++ DLLs for each C++
 module). Again, I'm not quite happy with this considering the
 duplication it involves.

 How many applications do (need to) use the _SECURE_SCL=0 option? Is it
 kind of standard that it is used for release builds?

The VS default release build doesn't define _SECURE_SCL=0 by default,
AFAIK.  If you just compile the header files define _SECURE_SCL=1 by
default.

 If not, then I'm
 sorry, but I don't think it's reasonable to support all the different
 MSVC++ compiler settings that produce incompatible binaries. Just
 because there are too much of them.

My impressions is, that performance suffers when using std containers
and algorithm with _SECURE_SCL=1.  This might be a problem when i.e.
doing heavy duty text processing using the stl.

I for example was bitten by _SECURE_SCL=1 being the default :-).
Coding a ND-LookupTable, mingw-gcc-4.2.3 outperformed msvc-8.0 by a
factor of 2.5. A few month later I've read posting about this topic at
the boost-ML.  Rebuilding everything with _SECURE_SCL=0 made msvc
outperform gcc by a factor of 1.3.

 However, considering the rules posted on [1], I don't see an easy
 workaround for your problem without rebuilding the involved C++
 libraries.

It would be best to have generic build scripts for msvc.  Do the
autotools scripts work with CC=cl CXX=cl?

A workaround is using LoadLibrary to open _SECURE_SCL=0 compiled DSOs
containing performance critical code.

Best,
 -- Maik
___
gtkmm-list mailing list
gtkmm-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtkmm-list


Re: Using gtkmm with Visual C++ and _SECURE_SCL=0

2008-10-18 Thread Balazs Scheidler
On Sat, 2008-10-18 at 16:30 +0200, Maik Beckmann wrote:
 2008/10/18 Armin Burgmeier [EMAIL PROTECTED]:
  On Fri, 2008-10-17 at 16:05 +0200, Thomas Frank wrote:
  I searched for _SECURE_SCL in the archives but didn't get any results.
  Has this ever been a topic?
 
  I didn't even know this option existed. Of course, we could enable this
  for the gtkmm runtime binaries, but then people need to set the same
  flag in their applications, which is just one step more that could go
  wrong. This is why I would rather avoid it.
 
 _SECURE_SCL=1 is similar to libstdc++ Debug Mode
  - http://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode.html
 quote
 To use the libstdc++ debug mode, compile your application with the
 compiler flag -D_GLIBCXX_DEBUG. Note that this flag changes the sizes
 and behavior of standard class templates such as std::vector, and
 therefore you can only link code compiled with debug mode and code
 compiled without debug mode if no instantiation of a container is
 passed between the two translation units.
 /quote
 which means binary incompatibility.
 
  We could also supply release binaries for both _SECURE_SCL=0 and
  _SECURE_SCL=1 (so we would have 6 different VC++ DLLs for each C++
  module). Again, I'm not quite happy with this considering the
  duplication it involves.
 
  How many applications do (need to) use the _SECURE_SCL=0 option? Is it
  kind of standard that it is used for release builds?
 
 The VS default release build doesn't define _SECURE_SCL=0 by default,
 AFAIK.  If you just compile the header files define _SECURE_SCL=1 by
 default.
 
  If not, then I'm
  sorry, but I don't think it's reasonable to support all the different
  MSVC++ compiler settings that produce incompatible binaries. Just
  because there are too much of them.
 
 My impressions is, that performance suffers when using std containers
 and algorithm with _SECURE_SCL=1.  This might be a problem when i.e.
 doing heavy duty text processing using the stl.
 
 I for example was bitten by _SECURE_SCL=1 being the default :-).
 Coding a ND-LookupTable, mingw-gcc-4.2.3 outperformed msvc-8.0 by a
 factor of 2.5. A few month later I've read posting about this topic at
 the boost-ML.  Rebuilding everything with _SECURE_SCL=0 made msvc
 outperform gcc by a factor of 1.3.
 
  However, considering the rules posted on [1], I don't see an easy
  workaround for your problem without rebuilding the involved C++
  libraries.
 
 It would be best to have generic build scripts for msvc.  Do the
 autotools scripts work with CC=cl CXX=cl?
 
 A workaround is using LoadLibrary to open _SECURE_SCL=0 compiled DSOs
 containing performance critical code.

We're building glibmm using a wrapper script called cccl, which emulates
UNIX like cc options with the Microsoft compiler.

As far as I know it was an abandoned project, but one of my collegues
updated it somewhat to work better. As far as I know it still needs some
magic to actually produce working binaries, but that's the best option I
had so far to compile the gtkmm stack with MSVC++.

What does the binary installer use to compile gtkmm on Windows? Or you
are using mingw?

So if anyone is interested I'd be willing to publish our cccl fork,
maybe it could be cleaned up a bit. It would make it way easier to
compile Windows binaries by ourselves and in that case
binary-incompatible MSVC options would not bite that much.

-- 
Bazsi


___
gtkmm-list mailing list
gtkmm-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtkmm-list