<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel about="http://blog.gmane.org/gmane.comp.programming.garbage-collection.boehmgc">
    <title>gmane.comp.programming.garbage-collection.boehmgc</title>
    <link>http://blog.gmane.org/gmane.comp.programming.garbage-collection.boehmgc</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2348"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2347"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2344"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2343"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2338"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2336"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2331"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2325"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2324"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2323"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2320"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2318"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2317"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2316"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2312"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2308"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2306"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2304"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2300"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2295"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2348">
    <title>Uninitialized GC_threads and dll_thread_table vars</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2348</link>
    <description>Hi!

Is it safe to place GC_threads (both on Unix and Win32) and dll_thread_table (on Win32) to "common" section (instead of "bss")? It seems to me that not...

Bye.
</description>
    <dc:creator>Ivan Maidanski</dc:creator>
    <dc:date>2008-10-06T20:46:58</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2347">
    <title>GC minor fix for Win32</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2347</link>
    <description>Hi!

"excpt.h" file should be included even for non-Gnu compilers on MSWIN32 in mark.c (for GetExceptionCode macro to get defined). This is required at least for Watcom C (and doesn't hurt other Win32 compilers - VC++/IntelC++, Borland, DMC).

The patch is attached.

Bye.

diff -ru bdwgc/mark.c updated/bdwgc/mark.c
--- bdwgc/mark.c2008-09-26 14:01:50.000000000 +0400
+++ updated/bdwgc/mark.c2008-10-06 23:01:56.000000000 +0400
&lt; at &gt;&lt; at &gt; -19,7 +19,7 &lt; at &gt;&lt; at &gt;
 # include &lt;stdio.h&gt;
 # include "private/gc_pmark.h"
 
-#if defined(MSWIN32) &amp;&amp; defined(__GNUC__)
+#if defined(MSWIN32)
 # include &lt;excpt.h&gt;
 #endif
 
_______________________________________________
Gc mailing list
Gc-V9/bV5choksm30D7ZfaTJw&lt; at &gt;public.gmane.org
http://www.hpl.hp.com/hosted/linux/mail-archives/gc/</description>
    <dc:creator>Ivan Maidanski</dc:creator>
    <dc:date>2008-10-06T20:06:35</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2344">
    <title>gc's embedded libatomic_ops</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2344</link>
    <description>Just noticed the embedded copy of libatomic_ops.
Any reason to *not* use a system-wide/external libatomic_ops?
Any objections to my preparing patches to do that? :)

</description>
    <dc:creator>Rex Dieter</dc:creator>
    <dc:date>2008-10-03T16:57:24</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2343">
    <title>small bug libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86_64.h</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2343</link>
    <description>While browsing the source of gc-7.1, I noticed that
libatomic_ops-1.2/src/atomic_ops/sysdeps/gcc/x86_64.h has unsigned short as the
return from AO_int_fetch_and_add_full instead of unsigned int (on line 99).

Andrew.
</description>
    <dc:creator>Andrew Agno</dc:creator>
    <dc:date>2008-10-03T15:40:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2338">
    <title>stack problem</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2338</link>
    <description>I use GC in a program which sometime call a recursive function which 
consume a large C stack.

After the use of this function, when the C stack is back to a normal 
size, GC allocations and recycles becomes a lot more slow.

To give an idea, here it is the output of a test program which reports 
the time used by  10 GC_gcollect() calls inside a recursive function:

After 0 recursions 10 GC_gcollect() time is: 0.03125
After 5000 recursions 10 GC_gcollect() time is: 0.203125
After 10000 recursions 10 GC_gcollect() time is: 0.59375
After 15000 recursions 10 GC_gcollect() time is: 1.1875
After 20000 recursions 10 GC_gcollect() time is: 2.015625
After 25000 recursions 10 GC_gcollect() time is: 3.0625

Here are some heap values after the recursive function returns:

Heap: 5505024 Free: 4296704 Used: 1208320 Collections: 61

Now i call again the recursive function:

After 0 recursions 10 GC_gcollect() time is: 2.984375
After 5000 recursions 10 GC_gcollect() time is: 3.015625
After 10000 recursions 10 GC_gcollect() time is: 3.0625
After 15000 recursions 10 GC_gcollect() time is: 3.09375
After 20000 recursions 10 GC_gcollect() time is: 3.140625
After 25000 recursions 10 GC_gcollect() time is: 3.1875

Here are some heap values after the recursive function returns

Heap: 5505024 Free: 4288512 Used: 1216512 Collections: 121

As you can see the Heap and Used memory is almost the same, but the time 
of GC_collect are very different. It seems to me that the GC looks at 
all the stack, also the not more used one.

I do not know if this is a bug, but there is a way to tell GC to scan 
only the used stack?

I use version 70a with thread_local_alloc and UNMAP under XP. Tests are 
done with only the main thread running.


Romano Paolo Tenca
</description>
    <dc:creator>Romano Tenca</dc:creator>
    <dc:date>2008-09-29T12:21:13</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2336">
    <title>"Leaked composite object at",but the object was never allocated</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2336</link>
    <description>-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

In my ongoing project attempting to use Boehm GC in Mozilla, I wanted to
make sure that Boehm was scanning our memory correctly and that we weren't
hiding any pointers unintentionally: so I hooked up Boehm in leak-detector mode.

Fairly early in startup, I think during the first GC, Boehm reports a bunch
of leaked objects of size 32. I tried turning on GC_DEBUG stack traces, but
this object didn't have any debugging information (allocation stacktrace)
recorded. So I went through and tried to find the allocation site using a
debugger...

Leaked composite object at 0x808c020
Leaked composite object at 0x808c040
Leaked composite object at 0x808c060
Leaked composite object at 0x808c080
... all the way to 0x808c220

I tried breakpoing GC_allocobj, GC_generic_malloc_inner and several other
functions, but none of these functions ever return an allocation at
0x808c020. In fact, the very first allocation returned is at 0x808dfe0.

I'm worried that Boehm is reporting a leak for an object that never seems to
have been allocated in the first place. So I went back and found where this
address space was being first used, by breakpointing GC_add_to_heap. Address
808c020 is being mapped at the following stack:

#0  GC_add_to_heap (p=0x808c000, bytes=131072) at
../../../src/memory/boehmgc/alloc.c:801
#1  0xf7fcbd68 in GC_expand_hp_inner (n=16) at
../../../src/memory/boehmgc/alloc.c:956
#2  0xf7fd8f85 in GC_init_inner () at ../../../src/memory/boehmgc/misc.c:706
#3  0xf7fd2e95 in GC_generic_malloc_inner (lb=351, k=2) at
../../../src/memory/boehmgc/malloc.c:112
#4  0xf7fd2f6a in GC_generic_malloc (lb=351, k=2) at
../../../src/memory/boehmgc/malloc.c:160
#5  0xf7fd3adf in GC_malloc_uncollectable (lb=351) at
../../../src/memory/boehmgc/mallocx.c:469
#6  0xf7fd2a3d in malloc (lb=352) at ../../../src/memory/boehmgc/malloc.c:320
#7  0x002d4cef in __fopen_internal () from /lib/libc.so.6
#8  0x002d72cc in fopen64 () from /lib/libc.so.6
#9  0x0069b234 in ?? () from /lib/libselinux.so.1
#10 0x0069d136 in ?? () from /lib/libselinux.so.1
#11 0x00278fc0 in ?? () from /lib/ld-linux.so.2
#12 0xf7bb69e0 in ?? ()
#13 0xffc1d708 in ?? ()
#14 0x0068d2b1 in _init () from /lib/libselinux.so.1

The address is consistent in my program, so I tried setting a debugger
watchpoint on it. This block of memory is not written-to until after the GC
reports it as leaked and calls GC_free on it.

Any clues? Perhaps I can watch the header block associated with this
allocation to find out when it's being set up?

- --BDS
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFI26RsSSwGp5sTYNkRAhKPAJ4oGyKfrSM8KlGUkNvqnJLSOlhxNgCaA7CH
kXl/4AeE7YcvRNqrEoD4xXA=
=ofGA
-----END PGP SIGNATURE-----
</description>
    <dc:creator>Benjamin Smedberg</dc:creator>
    <dc:date>2008-09-25T14:47:08</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2331">
    <title>Per-type displacement</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2331</link>
    <description>Hi,

Guile's `struct' objects are such that they can have N extra words that
are hidden from the application roughly as follows:

  void *
  make_struct (size_t n_extra, size_t user_size)
  {
    char *p = GC_MALLOC (n_extra + user_size);

    return p + n_extra;
  }

Registering a displacement globally for each value of N_EXTRA may lead
to excess memory retention, especially since most other Guile objects
("cells") are 2 or 4 word long.

Ideally, I'd create a `GC_desc' and somehow specify valid displacements
that apply specifically to this type, which the `gc_typed.h' API
currently doesn't allow.

Does that seem like a reasonable approach?  Can it be approximated using
the current API?  Is it just that this allocation paradigm (returning a
pointer in the middle of the object) is questionable?  :-)

Thanks,
Ludo'.
</description>
    <dc:creator>Ludovic Courtès</dc:creator>
    <dc:date>2008-09-19T12:14:24</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2325">
    <title>interior pointers to large allocations</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2325</link>
    <description>-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Dear GC list:

I have a problem with interior pointers that doesn't seem to be covered by
the docs.

I have pre-existing code which allocates a structure

struct nsStringBuffer {
  bool mShared;
  size_t mLength;
  char mBuffer[1]; // arbitrary length
};

The code then stores a pointer to mBuffer, instead of a pointer to the root
allocation. I figured this would be ok, since interior pointers are being
scanned. But I was having heap corruption and starting sprinkling calls to
GC_is_valid_displacement into my code.

I found that if the allocated size is larger than a hblk,
GC_is_valid_displacement rejects all interior pointers, due to this line:
http://hg.mozilla.org/users/bsmedberg_mozilla.com/gcmonkey/file/96af1e84dbaa/memory/boehmgc/ptr_chck.c#l143

* Am I misusing GC_is_valid_displacement?
* Is this a bug in GC_is_valid_displacement
* or are interior pointers to large allocations actually not recognized?

- --BDS
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFI0BzrSSwGp5sTYNkRAlgYAJ0dwq7GFxxa2TeCug+V47QCnyvwiACgi4qS
gbI0OVXsp5776hsbIDYH8VM=
=UKCR
-----END PGP SIGNATURE-----
</description>
    <dc:creator>Benjamin Smedberg</dc:creator>
    <dc:date>2008-09-16T20:54:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2324">
    <title>Using `MANUAL_VDB' and stubborns</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2324</link>
    <description>Hi,

By default, GC 7.1 uses `MPROTECT_VDB' on GNU/Linux (i386), in which
case "stubborns" are ignored.

I tried to compile GC with `MANUAL_VDB' but without success: since
there's no `configure' option, I tried the attached patch, but "make
check" then fails with an undefined reference to
`async_set_pht_entry_from_index'---and indeed, that function isn't
defined in `MANUAL_VDB'.

Is this an indication that `MANUAL_VDB' is not recommended?  :-)

In the case of Guile (Scheme interpreter), a number of objects are
immutable, and it's easy to instrument the interpreter to use
`GC_malloc_stubborn ()' in these cases.  Thus, it seems more appealing
than the heavyweight mprotect/SIGSEGV machinery.  What do you think?

Thanks,
Ludovic.

_______________________________________________
Gc mailing list
Gc-V9/bV5choksm30D7ZfaTJw&lt; at &gt;public.gmane.org
http://www.hpl.hp.com/hosted/linux/mail-archives/gc/</description>
    <dc:creator>Ludovic Courtès</dc:creator>
    <dc:date>2008-09-16T20:06:04</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2323">
    <title>[announce] GC documentation in Texinfo format</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2323</link>
    <description>A  new version  of  GC documentation  in  Texinfo format  is
available:

&lt;http://sites.google.com/site/mrcmgg/doc/boehm-demers-weiser-gc.texi.gz?attredirects=0&gt;
&lt;http://sites.google.com/site/mrcmgg/doc/boehm-demers-weiser-gc.info.gz?attredirects=0&gt;
&lt;http://sites.google.com/site/mrcmgg/doc/boehm-demers-weiser-gc.html.gz?attredirects=0&gt;

Details for Tue Sep 16, 2008
----------------------------

* Renamed "bohem" to "boehm" (damn! sorry HB).

</description>
    <dc:creator>Marco Maggi</dc:creator>
    <dc:date>2008-09-16T10:19:02</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2320">
    <title>Rv: Begginer, Windows, c++</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2320</link>
    <description>


      Yahoo! Cocina
Recetas prácticas y comida saludable
http://ar.mujer.yahoo.com/cocina/
</description>
    <dc:creator>Daniel C</dc:creator>
    <dc:date>2008-09-15T20:16:22</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2318">
    <title>Unregistering the main thread</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2318</link>
    <description>Hello,

Guile has an API that allows a program to specify that a given thread is
not going to cooperate for GC for some time.  This is useful, e.g., when
a thread enters a blocking system call and doesn't want to prevent other
threads from allocating memory or collecting garbage while it's blocked:

  scm_without_guile (the_function_that_blocks, NULL);

On the port of Guile to BDW-GC, I implement it using
`GC_unregister_my_thread ()' and `GC_register_my_thread ()'.  However,
it appears that the main thread cannot be unregistered.

What is the main thread supposed to do when it enters, say, a blocking
system call and may not be able to cooperate for GC for a while?

Thanks,
Ludovic.
</description>
    <dc:creator>Ludovic Courtès</dc:creator>
    <dc:date>2008-09-15T19:09:57</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2317">
    <title>Begginer, Windows, c++</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2317</link>
    <description>
Hello, I am very exited about this GC, so far (what I have red) it looks goods and have good support.
I am planning to use it in several proyect with several requeriments so this are my questiosn:

1)Is there some kind of benchmark about difference in performance with no using it.
I know it is gonna loss som performance, but I would like to know how.

2)I have made some simple test:
______________________
int main(){
    GC_INIT();
    unsigned long  i = 0;
    
    while (1){
        i++;
            //comment    
            char* aChar = new char[1024];        
   
         
          //  GC_gcollect();
        
    }

return 0;
}
_______________________________

Should'n this work ok?
I am having a total memory leak.
If I set the GC_gcollet(); (uncommented) then it gets better but memory anyway increase (a low rate, but increase).

Thanks in advance.







      ____________________________________________________________________________________
¡Buscá desde tu celular!

Yahoo! oneSEARCH ahora está en Claro

http://ar.mobile.yahoo.com/onesearch
</description>
    <dc:creator>Daniel C</dc:creator>
    <dc:date>2008-09-15T18:05:26</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2316">
    <title>Begginer, Windows, c++</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2316</link>
    <description>_______________________________________________
Gc mailing list
Gc-V9/bV5choksm30D7ZfaTJw&lt; at &gt;public.gmane.org
http://www.hpl.hp.com/hosted/linux/mail-archives/gc/</description>
    <dc:creator>Daniel C</dc:creator>
    <dc:date>2008-09-15T15:52:54</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2312">
    <title>`USE_COMPILER_TLS' on GNU/Linux</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2312</link>
    <description>Hi,

Is there a reason why `USE_COMPILER_TLS' doesn't get defined on
GNU/Linux platforms with GC 7.1?

Strangely, `configure.ac' only defines it for GNU/kFreeBSD.

Thanks,
Ludovic.
</description>
    <dc:creator>Ludovic Courtès</dc:creator>
    <dc:date>2008-09-14T20:48:23</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2308">
    <title>I/O issues</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2308</link>
    <description>Hello,

Sorry for the multiple messages recently, we could fix a lot of things 
thanks to the help of the people on the list.

We are still experiencing one last issue, which is related to I/O functions.

In some rare cases, two of our threads get blocked in a I/O function 
(either recv() , fread() , or __read_nocancel()). The two threads are 
usually unrelated - one can be a MYSQL response beeing read while the 
other is reading a file - but they get blocked at the same time. Seems 
like a deadlock to me.

I wonder is there are some issues with multithreading + linux IO + gc 
signals. Even if the EINTR return values would not be handled 
everywhere, I guess it should still cause an error and not cause the 
threads to block.

Any advice would be appreciated.

Best,
Nicolas
</description>
    <dc:creator>Nicolas Cannasse</dc:creator>
    <dc:date>2008-09-08T09:40:41</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2306">
    <title>setjmp/longjmp and pthreads</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2306</link>
    <description>Hello,

We have a multithreaded application server that use the Boehm GC and the 
NekoVM, but we are still experiencing some strange things.

Neko is using setjmp/longjmp for exceptions handling. Is there any 
possibility that it might cause some trouble, for instance if a thread 
is interrupted by a GC signal during a longjmp ?

Best,
Nicolas
</description>
    <dc:creator>Nicolas Cannasse</dc:creator>
    <dc:date>2008-09-03T14:58:47</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2304">
    <title>[announce] GC documentation in Texinfo format</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2304</link>
    <description>A  new version  of  GC documentation  in  Texinfo format  is
available:

&lt;http://sites.google.com/site/mrcmgg/doc/bohem-demers-weiser-gc.texi.gz?attredirects=0&gt;
&lt;http://sites.google.com/site/mrcmgg/doc/bohem-demers-weiser-gc.info.gz?attredirects=0&gt;
&lt;http://sites.google.com/site/mrcmgg/doc/bohem-demers-weiser-gc.html.gz?attredirects=0&gt;


Details for Fri Aug 29, 2008
----------------------------

* Changed  the  license to  an  adapted  version  of the  GC
  license:  the   words  "program"  and   "code"  have  been
  substituted with "document".

* Moved  all   the  copyright  notices   in  the  "&lt; at &gt;copying"
  environment so that the "&lt; at &gt;insertcopying" directive is used
  to include the material in the text.

* Added the detailed node listing to the master menu.

</description>
    <dc:creator>Marco Maggi</dc:creator>
    <dc:date>2008-08-29T19:11:50</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2300">
    <title>[announce] GC documentation in Texinfo format</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2300</link>
    <description>Due  to personal  learning  problems I  have converted  some
available GC  documentation into Texinfo format.   It is far
from being a good documentation file.  

* not all the  text has been corrected to  use "we" to refer
  to the readers of the document, rather than to the authors
  of GC;

* parts of  the API defined  in header files  different from
  "gc.h" are not documented;

* things  that were confused  in the  original documentation
  are still confused in this document;

* there are errors here and there.

  HB can you  validate the copyright notices and  tell me if
it is a problem for you that I am is distributing this under
the GNU Free Documentation License?   I have added a line of
copyright  for me  as  part  of making  clear  that this  is
unofficial documentation.  Everything can be changed on your
request.

  I  hope that  the  file can  be  used as  a trampoline  to
distribute better GC documentation.

&lt;http://sites.google.com/site/mrcmgg/doc/bohem-demers-weiser-gc.texi.gz?attredirects=0&gt;
&lt;http://sites.google.com/site/mrcmgg/doc/bohem-demers-weiser-gc.info.gz?attredirects=0&gt;
&lt;http://sites.google.com/site/mrcmgg/doc/bohem-demers-weiser-gc.html.gz?attredirects=0&gt;


</description>
    <dc:creator>Marco Maggi</dc:creator>
    <dc:date>2008-08-27T09:54:31</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2295">
    <title>[beginner] triggering collection of an object</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2295</link>
    <description>Ciao,

is there a way to force collection upon an object?
I want to do it in a test program only to see how
GC behaves and to verify if I am correctly using
the interface.

TIA
</description>
    <dc:creator>Marco Maggi</dc:creator>
    <dc:date>2008-08-26T06:30:43</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2294">
    <title>small bugs</title>
    <link>http://comments.gmane.org/gmane.comp.programming.garbage-collection.boehmgc/2294</link>
    <description>Ciao,

I am using GC 7.1 released tarball.

* In "gc.h" the definitions:

| #   define GC_PRE_INCR3(x, n, type_of_result) \
|          ((type_of_result)GC_pre_incr(&amp;(x), (n)*sizeof(*x))
| #   define GC_POST_INCR2(x, type_of_result) \
|          ((type_of_result)GC_post_incr(&amp;(x), sizeof(*x))

lack the ending ")".

* In "gc.h" the definitions:

| #ifdef GC_DEBUG
| #   define GC_POST_INCR2(x, type_of_result) \
| ((type_of_result)GC_post_incr(&amp;(x), sizeof(*x)))
| #   ifdef __GNUC__
| #       define GC_POST_INCR(x, n) \
|     GC_POST_INCR3(x, typeof(x))
| #   endif
| #else/* !GC_DEBUG */
| #   define GC_POST_INCR2(x, n, type_of_result) ((x)++)
| #   define GC_POST_INCR(x, n) ((x)++)
| #endif

are  not correct: both  GC_POST_INCR2 and  GC_POST_INCR3 are
mentioned; GC_POST_INCR makes no use of "n".

I would do:

| #ifdef GC_DEBUG
| #   define GC_POST_INCR3(x, n, type_of_result) \
| ((type_of_result)GC_post_incr(&amp;(x), (n)*sizeof(*x)))
| #   ifdef __GNUC__
| #       define GC_POST_INCR(x, n) \
|     GC_POST_INCR3(x, n, typeof(x))
| #   endif
| #else/* !GC_DEBUG */
| #   define GC_POST_INCR3(x, n, type_of_result) \
|        ((x) += (n), (x) - (n))
| #   define GC_POST_INCR(x, n) ((x) += (n), (x) - (n))
| #endif

By the  way, IMHO "type_of_result" should be  used even when
"GC_DEBUG" is undefined.

* In "gc.h":

| void * GC_malloc_many(size_t lb);

and  some other  functions are  missing a  GC_API qualifier,
does this mean that they are not for public use?

* The  tutorial  on the  web  mentions a  "gc_local_alloc.h"
  header file  that I  do not see  in GC  7.1 (I only  see a
  "include/private/thread_local_alloc.h").

* The tutorial  on the web  mentions a "--enable-full_debug"
  configuration option,  but I see  only "--enable-gc-debug"
  in the output of "configure --help".

</description>
    <dc:creator>Marco Maggi</dc:creator>
    <dc:date>2008-08-26T06:07:51</dc:date>
  </item>
  <textinput about="http://search.gmane.org/?group=$group=gmane.comp.programming.garbage-collection.boehmgc">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.programming.garbage-collection.boehmgc</link>
  </textinput>
</rdf:RDF>
