Gtkmm-forge Digest, Vol 29, Issue 2



Send Gtkmm-forge mailing list submissions to
	gtkmm-forge lists sourceforge net

To subscribe or unsubscribe via the World Wide Web, visit
	https://lists.sourceforge.net/lists/listinfo/gtkmm-forge
or, via email, send a message with subject or body 'help' to
	gtkmm-forge-request lists sourceforge net

You can reach the person managing the list at
	gtkmm-forge-owner lists sourceforge net

When replying, please edit your Subject line so it is more specific
than "Re: Contents of Gtkmm-forge digest..."


gtkmm-forge is the mailing list that receives gtkmm bug reports from bugzilla.  A daily digest is sent to gtkmm-main, to encourage people to help fixing the bugs. Do not try to unsubscribe gtkmm-forge from gtkmm-list.


Today's Topics:

   1. [Bug 529496] Gio::Error::HOST_NOT_FOUND clashes	with a
      netdb.h #define (glibmm (bugzilla.gnome.org))
   2. [Bug 554018] New: Inefficient implementation of
      InputStream::read_async (glibmm (bugzilla.gnome.org))
   3. [Bug 554018] Inefficient implementation of
      InputStream::read_async (glibmm (bugzilla.gnome.org))
   4. [Bug 529496] Gio::Error::HOST_NOT_FOUND clashes	with a
      netdb.h #define (glibmm (bugzilla.gnome.org))
   5. [Bug 529496] Gio::Error::HOST_NOT_FOUND clashes	with a
      netdb.h #define (glibmm (bugzilla.gnome.org))
   6. [Bug 537319] EntryCompletion not emitting
      signal_match_selected () (gtkmm (bugzilla.gnome.org))
   7. [Bug 554484] Patch to silence an 'unused	parameter' warning
      (gnomemm (bugzilla.gnome.org))


----------------------------------------------------------------------

Message: 1
Date: Fri, 26 Sep 2008 12:24:42 +0000 (UTC)
From: "glibmm (bugzilla.gnome.org)"
	<bugzilla-daemon bugzilla gnome org>
Subject: [gtkmm bugzilla] [Bug 529496] Gio::Error::HOST_NOT_FOUND
	clashes	with a netdb.h #define
To: gtkmm-forge lists sourceforge net
Message-ID: <20080926122442 52F1523F512 label gnome org>
Content-Type: text/plain; charset=utf-8

If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=529496

  glibmm | io | Ver: 2.16.x

Szil?rd Pfeiffer changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |szilard pfeiffer gmail com




------- Comment #5 from Szil?rd Pfeiffer  2008-09-26 12:24 UTC -------
> I don't think we can just remove HOST_NOT_FOUND before deprecating it for at
> least one version.
> 

I see, but you cannot compile the following code:

#include <netdb.h>
#include <giomm/file.h>

int
main()
{
  Gio::File::create_for_path("");
  return 0;
}

compilation command:

g++ `pkg-config --cflags --libs giomm-2.4` test.cc -o test

error message:

/usr/include/giomm-2.4/giomm/error.h:72: error: expected identifier before
numeric constant
/usr/include/giomm-2.4/giomm/error.h:72: error: expected `}' before numeric
constant
/usr/include/giomm-2.4/giomm/error.h:72: error: expected unqualified-id before
numeric constant
/usr/include/giomm-2.4/giomm/error.h:77: error: expected `)' before
?error_code?
/usr/include/giomm-2.4/giomm/error.h:78: error: expected `)' before ?*?
token
/usr/include/giomm-2.4/giomm/error.h:79: error: ?Code? does not name a type
/usr/include/giomm-2.4/giomm/error.h:82: error: expected unqualified-id before
?private?
/usr/include/giomm-2.4/giomm/error.h:85: error: ?friend? used outside of
class
/usr/include/giomm-2.4/giomm/error.h:96: error: expected declaration before
?}? token

Please consider, that an application which uses the stable version (2.18.x) of
glibmm cannot be compiled.


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=529496.



------------------------------

Message: 2
Date: Fri, 26 Sep 2008 21:18:38 +0000 (UTC)
From: "glibmm (bugzilla.gnome.org)"
	<bugzilla-daemon bugzilla gnome org>
Subject: [gtkmm bugzilla] [Bug 554018] New: Inefficient implementation
	of	InputStream::read_async
To: gtkmm-forge lists sourceforge net
Message-ID: <bug-554018-5595 http bugzilla gnome org/>
Content-Type: text/plain; charset=utf-8

If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=554018

  glibmm | giomm | Ver: unspecified
           Summary: Inefficient implementation of InputStream::read_async
           Product: glibmm
           Version: unspecified
          Platform: Other
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: Normal
         Component: giomm
        AssignedTo: gtkmm-forge lists sourceforge net
        ReportedBy: carlo alinoe com
         QAContact: gtkmm-forge lists sourceforge net
     GNOME version: Unspecified
   GNOME milestone: Unspecified


I wrote a benchmark program to measure the speed at which I could read data, as
function of used buffersize (the size that 'read(2)' would be called with) and
the used software API. It turned out that any implementation I could think of
was equally fast, even with buffer sizes as small as 4096 byte, they would read
at the maximum speed (110 MB/s for my RAID)... with the exception of one
implementation: where I used Gio::FileInputStream.

After a few hours of testing, profiling and debugging, I found the problem:

Inside InputStream::read_async, the call back slot is copied (which is a deep
copy, causing another call to new) "because it is deleted again in the
callback",
Gio::SignalProxy_async_callback.

These two calls to new (and their destruction) are expensive in a tight loop
that reads from disk. Surely it is possible to not copy the slot, and not
delete it in Gio::SignalProxy_async_callback? Both seem to be totally
unnecessary and I cannot think of a disadvantage to just remove the copy and
the delete.


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=554018.



------------------------------

Message: 3
Date: Sat, 27 Sep 2008 03:37:28 +0000 (UTC)
From: "glibmm (bugzilla.gnome.org)"
	<bugzilla-daemon bugzilla gnome org>
Subject: [gtkmm bugzilla] [Bug 554018] Inefficient implementation of
	InputStream::read_async
To: gtkmm-forge lists sourceforge net
Message-ID: <20080927033728 6067823F510 label gnome org>
Content-Type: text/plain; charset=utf-8

If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=554018

  glibmm | giomm | Ver: unspecified




------- Comment #3 from Carlo Wood  2008-09-27 03:37 UTC -------
Ok, it was false alarm... I waste 24 hours, but I finally really found what
caused the difference: a bug in my benchmark program :/.
In order to be able to read 1 GB repeatedly from disk, the program clears
the disk cache by writing "1" to /proc/sys/vm/drop_caches. Since that also
drops all disk caches of the shared libraries, it then continue with a
"warm up" by calling the benchmark function with some small file to read,
and subsequently even sleeps 1 second to let other applications that are
running to load their stuff into RAM again if needed... Now due to this
async callback stuff, I was confused about were to start the timer; and
in the case of InputStream::read_async the timer wasn't started at all,
which means it was running since the beginning of the warm-up! So... the
delay that I've been looking for existed mainly of that sleep(1)! lol

Sorry to have waste some of your time in the process as well!


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=554018.



------------------------------

Message: 4
Date: Mon, 29 Sep 2008 00:37:22 +0000 (UTC)
From: "glibmm (bugzilla.gnome.org)"
	<bugzilla-daemon bugzilla gnome org>
Subject: [gtkmm bugzilla] [Bug 529496] Gio::Error::HOST_NOT_FOUND
	clashes	with a netdb.h #define
To: gtkmm-forge lists sourceforge net
Message-ID: <20080929003722 B60B523F52F label gnome org>
Content-Type: text/plain; charset=utf-8

If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=529496

  glibmm | io | Ver: 2.16.x

Jonathon Jongsma (jonner) changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jonathon quotidian org




------- Comment #8 from Jonathon Jongsma (jonner)  2008-09-29 00:37 UTC -------
well, I don't personally think that it's a good idea to apply that patch as-is
since that makes us responsible for keeping the value of netdb.h's
HOST_NOT_FOUND value up-to-date if they ever change it from 1 to some other
value...

I suppose we could work around that by doing something like:

#ifdef  _NETDB_H
#define NETDB_HOST_NOT_FOUND HOST_NOT_FOUND
#undef HOST_NOT_FOUND
#endif

...

#ifdef  _NETDB_H
#define HOST_NOT_FOUND NETDB_HOST_NOT_FOUND
#undef NETDB_HOST_NOT_FOUND
#endif


This would allow the simple example above to compile since it doesn't actually
use the HOST_NOT_FOUND enum value.  But any code that does attempt to use this
value would still be broken.  The user would need to explicitly #undef that
value.  Perhaps we could provide a gentle reminder to the user if they include
a header that already defines HOST_NOT_FOUND like:

#ifdef HOST_NOT_FOUND
#warning HOST_NOT_FOUND is already defined by another header, your code may not
work unless you #undef HOST_NOT_FOUND
#endif

That also makes me think that in Szil?rd's patch above, we probably don't want
to be keying off of the netdb.h header include guards in case those change for
some reason.  We should probably use:

#ifdef HOST_NOT_FOUND

instead of 

#ifdef  _NETDB_H

Thoughts?


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=529496.



------------------------------

Message: 5
Date: Mon, 29 Sep 2008 09:38:26 +0000 (UTC)
From: "glibmm (bugzilla.gnome.org)"
	<bugzilla-daemon bugzilla gnome org>
Subject: [gtkmm bugzilla] [Bug 529496] Gio::Error::HOST_NOT_FOUND
	clashes	with a netdb.h #define
To: gtkmm-forge lists sourceforge net
Message-ID: <20080929093826 7438023F52F label gnome org>
Content-Type: text/plain; charset=utf-8

If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=529496

  glibmm | io | Ver: 2.16.x




------- Comment #9 from Murray Cumming  2008-09-29 09:38 UTC -------
Yes, of course. I was not reading the patch in enough detail.


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=529496.



------------------------------

Message: 6
Date: Tue, 30 Sep 2008 15:06:24 +0000 (UTC)
From: "gtkmm (bugzilla.gnome.org)"
	<bugzilla-daemon bugzilla gnome org>
Subject: [gtkmm bugzilla] [Bug 537319] EntryCompletion not emitting
	signal_match_selected ()
To: gtkmm-forge lists sourceforge net
Message-ID: <20080930150624 9622B23F58E label gnome org>
Content-Type: text/plain; charset=utf-8

If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=537319

  gtkmm | general | Ver: 2.13.x

Marko Anastasov changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |FIXED




------- Comment #9 from Marko Anastasov  2008-09-30 15:06 UTC -------
Committed, with an explanation in the doc.


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=537319.



------------------------------

Message: 7
Date: Tue, 30 Sep 2008 19:00:53 +0000 (UTC)
From: "gnomemm (bugzilla.gnome.org)"
	<bugzilla-daemon bugzilla gnome org>
Subject: [gtkmm bugzilla] [Bug 554484] Patch to silence an 'unused
	parameter' warning
To: gtkmm-forge lists sourceforge net
Message-ID: <20080930190053 CD54A23F5A0 label gnome org>
Content-Type: text/plain; charset=utf-8

If you have any questions why you received this email, please see the text at
the end of this email. Replies to this email are NOT read, please see the text
at the end of this email. You can add comments to this bug at:
  http://bugzilla.gnome.org/show_bug.cgi?id=554484

  gnomemm | libgdamm | Ver: unspecified




------- Comment #1 from Deng Xiyue  2008-09-30 18:57 UTC -------
Created an attachment (id=119671)
 --> (http://bugzilla.gnome.org/attachment.cgi?id=119671&action=view)
libgdamm_unused_parameter_warning.patch

Proposed patch with ChangeLog modification.


-- 
See http://bugzilla.gnome.org/page.cgi?id=email.html for more info about why you received
this email, why you can't respond via email, how to stop receiving
emails (or reduce the number you receive), and how to contact someone
if you are having problems with the system.

You can add comments to this bug at http://bugzilla.gnome.org/show_bug.cgi?id=554484.



------------------------------

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/

------------------------------

_______________________________________________
Gtkmm-forge mailing list
Gtkmm-forge lists sourceforge net
https://lists.sourceforge.net/lists/listinfo/gtkmm-forge


End of Gtkmm-forge Digest, Vol 29, Issue 2
******************************************


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]