⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.changes

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 CHANGES
📖 第 1 页 / 共 5 页
字号:
   Dan Sullivan.) - Fixed a typo in GC_double_descr in typd_mlc.c.   This probably could result in objects described by array descriptors not   getting traced correctly.  (Thanks to Ben Hutchings for pointing this out.) - The block nearly full tests in reclaim.c were not correct for 64 bit   environments.  This could result in unnecessary heap growth under unlikely   conditions.Since 5.1 - dyn_load.c declared GC_scratch_last_end_ptr as an extern even if it   was defined as a macro.  This prevented the collector from building on   Irix. - We quietly assumed that indirect mark descriptors were never 0.   Our own typed allocation interface violated that.  This could result   in segmentation faults in the marker with typed allocation. - Fixed a _DUSE_MUNMAP bug in the heap block allocation code.   (Thanks to Ben Hutchings for the patch.) - Taught the collector about VC++ handling array operator new.   (Thanks again to Ben Hutchings for the patch.) - The two copies of gc_hdrs.h had diverged.  Made one a link to the other   again.Since 5.2  (A few 5.2 patches are not in 6.0alpha1) - Fixed _end declaration for OSF1. - There were lots of spurious leak reports in leak detection mode, caused   by the fact that some pages were not being swept, and hence unmarked   objects weren't making it onto free lists.  (This bug dated back to 5.0.) - Fixed a typo in the liblinuxgc.so Makefile rule. - Added the GetExitCodeThread to Win32 GC_stop_world to (mostly) work   around a Windows 95 GetOpenFileName problem.  (Thanks to Jacob Navia.)Since 5.3 - Fixed a typo that prevented compilation with -DUSE_3DNOW_PREFETCH.   (Thanks to Shawn Wagner for actually testing this.) - Fixed GC_is_thread_stack in solaris_threads.c.  It forgot to return a value   in the common case.  I wonder why nobody noticed? - Fixed another silly syntax problem in GC_double_descr.  (Thanks to   Fergus Henderson for finding it.) - Fixed a GC_gcj_malloc bug: It tended to release the allocator lock twice.Since 5.4  (A few 5.3 patches are not in 6.0alpha2) - Added HP/PA prefetch support. - Added -DDBG_HDRS_ALL and -DSHORT_DBG_HDRS to reduce the cost and improve   the reliability of generating pointer backtrace information, e.g. in   the Bigloo environment. - Added parallel marking support (-DPARALLEL_MARK).  This currently   works only under IA32 and IA64 Linux, but it shouldn't be hard to adapt   to other platforms.  This is intended to be a lighter-weight (less   new code, probably not as scalable) solution than the work by Toshio Endo   et al, at the University of Tokyo.  A number of their ideas were   reused, though the code wasn't, and the underlying data structure   is significantly different.  In particular, we keep the global mark   stack as a single shared data structure, but most of the work is done   on smaller thread-local mark stacks. - Changed GC_malloc_many to be cheaper, and to require less mutual exclusion   with -DPARALLEL_MARK. - Added full support for thread local allocation under Linux   (-DTHREAD_LOCAL_ALLOC).  This is a thin veneer on GC_malloc_many, and   should be easily portable to other platforms, especially those that   support pthreads. - CLEAR_DOUBLE was not always getting invoked when it should have been. - GC_gcj_malloc and friends used different out of memory handling than   everything else, probably because I forgot about one when I implemented   the other.  They now both call GC_oom_fn(), not GC_oom_action(). - Integrated Jakub Jelinek's fixes for Linux/SPARC. - Moved GC_objfreelist, GC_aobjfreelist, and GC_words_allocd out of   GC_arrays, and separately registered the first two as excluded roots.   This makes code compiled with gc_inl.h less dependent on the   collector version.  (It would be nice to remove the inclusion of   gc_priv.h by gc_inl.h completely, but we're not there yet.  The   locking definitions in gc_priv.h are still referenced.)   This change was later coniditoned on SEPARATE_GLOBALS, which   is not defined by default, since it involves a performance hit. - Register GC_obj_kinds separately as an excluded root region.  The   attempt to register it with GC_arrays was usually failing.  (This wasn't   serious, but seemed to generate some confusion.)  - Moved backptr.h to gc_backptr.h.Since 6.0alpha1 - Added USE_MARK_BYTES to reduce the need for compare-and-swap on platforms   for which that's expensive. - Fixed a locking bug ib GC_gcj_malloc and some locking assertion problems. - Added a missing volatile to OR_WORD and renamed the parameter to   GC_compare_and_swap so it's not a C++ reserved word.  (Thanks to   Toshio Endo for pointing out both of those.) - Changed Linux dynamic library registration code to look at /proc/self/maps   instead of the rld data structures when REDIRECT_MALLOC is defined.   Otherwise some of the rld data data structures may be prematurely garbage   collected.  (Thanks to Eric Benson for helping to track this down.) - Fixed USE_LD_WRAP a bit more, so it should now work without threads. - Renamed XXX_THREADS macros to GC_XXX_THREADS for namespace correctness.   Tomporarily added some backward compatibility definitions.  Renamed   USE_LD_WRAP to GC_USE_LD_WRAP. - Many MACOSX POWERPC changes, some additions to the gctest output, and   a few minor generic bug fixes.  (Thanks to Dietmar Planitzer.)Since 6.0 alpha2 - Fixed the /proc/self/maps code to not seek, since that apparently is not   reliable across all interesting kernels. - Fixed some compilation problems in the absence of PARALLEL_MARK   (introduced in alpha2). - Fixed an algorithmic problem with PARALLEL_MARK.  If work needs to   be given back to the main mark "stack", the BOTTOM entries of the local   stack should be given away, not the top ones.  This has substantial   performance impact, especially for > 2 processors, from what I can tell. - Extracted gc_lock.h from gc_priv.h.  This should eventually make it a   bit easier to avoid including gc_priv.h in clients. - Moved all include files to include/ and removed duplicate links to the   same file.  The old scheme was a bad idea because it was too easy to get the   copies out of sync, and many systems don't support hard links.   Unfortunately, it's likely that I broke some of the non-Unix Makefiles in   the process, although I tried to update them appropriately. - Removed the partial support for a copied nursery.  It's not clear that   this would be a tremendous win, since we don't consistently lose to   generational copying collectors.  And it would significantly complicate   many things.  May be reintroduced if/when it really turns out to win. - Removed references to IRIX_JDK_THREADS, since I believe there never   were and never will be any clients. - Added some code to linux_threads.c to possibly support HPUX threads   using the Linux code.  Unfortunately, it doesn't work yet, and is   currently disabled. - Added support under Linux/X86 for saving the call chain, both in (debug)   objects for client debugging, and in GC_arrays._last_stack for GC   debugging.  This was previously supported only under Solaris.  It is   not enabled by default under X86, since it requires that code be compiled   to explicitly dave frame pointers on the call stack.  (With gcc this   currently happens by default, but is often turned off explicitly.)   To turn it on, define SAVE_CALL_CHAIN. Since 6.0 alpha3 - Moved up the detection of mostly full blocks to the initiatiation of the   sweep phase.  This eliminates some lock conention in the PARALLEL_MARK case,   as multiple threads try to look at mostly full blocks concurrently. - Restored the code in GC_malloc_many that grabs a prefix of the global   free list.  This avoids the case in which every GC_malloc_many call   tries and fails to allocate a new heap block, and the returns a single   object from the global free list. - Some minor fixes in new_hblk.c.  (Attempted to build free lists in order   of increasing addresses instead of decreasing addresses for cache performance   reasons.  But this seems to be only a very minor gain with -DEAGER_SWEEP,   and a loss in other cases.  So the change was backed out.) - Fixed some of the documentation.  (Thanks in large part to Fergus   Henderson.) - Fixed the Linux USE_PROC_FOR_LIBRARIES code to deal with apps that perform   large numbers of mmaps.  (Thanks to Eric Benson.)  Also fixed that code to   deal with short reads. - Added GC_get_total_bytes().  - Fixed leak detection mode to avoid spurious messages under linuxthreads.   (This should also now be easy for the other supported threads packages.   But the code is tricky enough that I'm hesitant to do it without being able   to test.  Everything allocated in the GC thread support itself should be   explicitly deallocated.) - Made it possible (with luck) to redirect malloc to GC_local_malloc.Since 6.0 alpha4 - Changed the definition of GC_pause in linux_threads.c to use a volatile   asm.  Some versions of gcc apparently optimize away writes to local volatile   variables.  This caused poor locking behaviour starting at about   4 processors. - Added GC_start_blocking(), GC_end_blocking() calls and wrapper for sleep   to linux_threads.c.   The first two calls could be used to generally avoid sending GC signals to   blocked threads, avoiding both premature wakeups and unnecessary overhead. - Fixed a serious bug in thread-local allocation.  At thread termination,   GC_free could get called on small integers.  Changed the code for thread   termination to more efficiently return left-over free-lists. - Integrated Kjetil Matheussen's BeOS support. - Rearranged the directory structure to create the doc and tests   subdirectories. - Sort of integrated Eric Benson's patch for OSF1.  This provided basic   OSF1 thread support by suitably extending hpux_irix_threads.c.  Based   on earlier email conversations with David Butenhof, I suspect that it   will be more reliable in the long run to base this on linux_threads.c   instead.  Thus I attempted to patch up linux_threads.c based on Eric's code.   The result is almost certainly broken, but hopefully close enough that   someone with access to a machine can pick it up. - Integrated lots of minor changes from the NetBSD distribution.  (These   were supplied by David Brownlee.  I'm not sure about the original   authors.) - Hacked a bit more on the HP/UX thread-support in linux_threads.c.  It   now appears to work in the absence of incremental collection.  Renamed   hpux_irix_threads.c back to irix_threads.c, and removed the attempt to   support HPUX there. - Changed gc.h to define _REENTRANT in cases in which it should already   have been defined. It is still safer to also define it on the command   line. Since 6.0alpha5: - Changed the definition of DATASTART on ALPHA and IA64, where data_start   and __data_start are not defined by earlier versions of glibc.  This might   need to be fixed on other platforms as well. - Changed the way the stack base and backing store base are found on IA64.   This should now remain reliable on future kernels.  But since it relies   on /proc, it will no longer work in the simulated NUE environment. - Made the call to random() in dbg_mlc.c with -DKEEP_BACK_PTRS dependent   on the OS.  On non-Unix systems, rand() should be used instead.  Handled   small RAND_MAX.  (Thanks to Peter Ross for pointing this out.) - Fixed the cord make rules to create the cord subdirectory, if necessary.   (Thanks to Doug Moen.) - Changed fo_object_size calculation in finalize.c.  Turned finalization   of nonheap object into a no-op.  Removed anachronism from GC_size()   implementation. - Changed GC_push_dirty call in solaris_threads.c to GC_push_selected.   It was missed in a previous renaming. (Thanks to Vladimir Tsichevski   for pointing this out.) - Arranged to not not mask SIGABRT in linux_threads.c.  (Thanks to Bryce   McKinlay.)  - Added GC_no_dls hook for applications that want to register their own   roots. - Integrated Kjetil Matheussen's Amiga changes. - Added FREEBSD_STACKBOTTOM.  Changed the X86/FreeBSD port to use it.   (Thanks to Matthew Flatt.) - Added pthread_detach interception for platforms supported by linux_threads.c   and irix_threads.c.  Should also be added for Solaris? - Changed the USE_MMAP code to check for the case in which we got the   high end of the address space, i.e. mem_ptr + mem_sz == 0.  It appears   that this can happen under Solaris 7.  It seems to be allowed by what   I would claim is an oversight in the mmap specification.  (Thanks to Toshio   Endo for pointing out the problem.) - Cleanup of linux_threads.c.  Some code was originally cloned from   irix_threads.c and now unnecessary.  Some comments were obviously wrong. - (Mostly) fixed a longstanding problem with setting of dirty bits from   a signal handler.  In the presence of threads, dirty bits could get lost,   since the etting of a bit in the bit vector was not atomic with respect   to other updates.  The fix is 100% correct only for platforms for which   GC_test_and_set is defined.  The goal is to make that all platforms with   thread support.  Matters only if incremental GC and threads are both   enabled. - made GC_all_interior_pointers (a.k.a. ALL_INTERIOR_POINTERS) an   initialization time, instead of build-time option.  This is a    nontrivial, high risk change.  It should slow down the code measurably   only if MERGE_SIZES is not defined, which is a very nonstandard   configuration.    - Added doc/README.environment, and implemented what it describes.  This   allows a number of additional configuration options to be set through   the environment.  It documents a few previously undocumented options. - Integrated Eric Benson's leak testing improvements. - Removed the option to throw away the beginning of each page (DISCARD_WORDS).   This became less and less useful as processors enforce stricter alignment.   And it hadn't been tested in ages, and was thus probably broken anyway.Since 6.0alpha6: - Added GC_finalizer_notifier.  Fixed GC_finalize_on_demand.  (The variable   actually wasn't being tested at the right points.  The build-time flag   was.) - Added Tom Tromey's S390 Linux patch. - Add

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -