HnxGC Alpha 1.0 released

Guo Mingnan <[email protected]> Sun, 18 Nov 2007 08:25:15 +0800 (CST)
Newsgroups gmane.comp.programming.garbage-collection.general
Message-ID <[email protected]>
A C++ library for garbage collection is now available from 
   
  http://hnxgc.harnixworld.com
   
  Features of HnxGC:
   
  Accurate - HnxGC is a fully accurate tracing garbage collector. We don't use any tricks to guess/distinguish pointers from other data. All effective references are identified. There is no leak of garbage objects uncollected and all associated native resources will be freed. 
   
  Pauseless - HnxGC come with a lock-free and block-free concurrent collector with no need to scan root-set area. We don't need to take a snapshot to determine application status, thus the normal execution of application thread will never be interrupted, suspended, blocked or forced to spin-waiting by our collector, no matter in a multi-processors or an uni-processor environment.
   
  Deterministic - HnxGC always executes the destructor of an object when application program drops the last reference to the object. In addition, application program can declare dependence rules for each object to control the destructing ordering of cyclic garbage objects. The system will figure out an ordering that satisfies all user-declared rules. Thus, application programmers have more controls on how unreachable objects are reclaimed, more compliance to RAII (Resource Acquisition Is Initialization) design pattern, such as closing file handle or network connection in the destructor routine of objects.
   
  Efficient - Even HnxGC provide deterministic reclamation feature similiar to the one in regular reference counting algorithm, we remove the cost of reference maintenance significantly. The cost of most-frequently-used reference copying, such as passing references as parameters or return values between function calls, are removed. More advanced technique, such as GlobalMemoryFence, are used to eliminate the memory ordering cost for a multi-processors platforms.
   
  Easy-to-Use and Portable - Just linking with our library, you can enjoy all of above features and the more. You can even use our library with .NET managed code in visual C++. There is no too much restriction, you can use template, union, bit-fields, multiple-inheritance, object composition, and array of objects in HnxGC as efficiency as in traditional C++. The source code is available, and the only required for your application is a standard C++ compiler, such as Visual C++ or GNU C++. No use of any special features of any specific compiler, nor any platform specific system calls. Can even run without virtual memory support. Write your garbage-collected C++ application once, and it is easy to port to a wider array of platforms, no constraint to any specific platform vendors. 
   
  - Mingnan Guo