Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 32.392.023 Times

Smieciuch++ 0.6.4 RC3

  Date Added: October 02, 2010  |  Visits: 598

Smieciuch++ 0.6.4

Report Broken Link
Printer Friendly Version

Product Homepage
Download (72 downloads)

Smieciuch library is a precise (in case of C++) or nearly precise (in case of plain C) tracing garbage collector. Tracing means that GC scans memory for active pointers and traces all paths (consisting of possibly multiple pointer indirections) from so called memory roots (static global data and execution stack(s)) to any reachable allocated heap block. If there are not paths from memory roots into some block then such block is recognised as dead (unreachable) so it might be freed. Being precise means that it is impossible to mess managed pointer (aka managed reference) with any other kind of program data. Oposite term is conservative - in such case collector (aka memory manager) does not know for sure if particular data is managed pointer or not and thus anything what might be pointer (that usually means anything whichs value might be interpreted as pointer into one of allocated heap areas) is treated as a live pointer to some memory area and thus protects that (allocated) area from being freed. So conservative garbage collector might (an in real life often does) recognise some dead memory objects as still alive (thus wasting memory). In real life such problems get more and more pronounced when percentage of total address space used by application increases. And those are often the cases where memory usage is an important problem. C++ Smieciuch is precise so there are no such issues, but more explanations are needed for C variants near precission... C Smieciuch is fully precise for everything but stack located managed references. If there is right (or rather wrong) set of conditions some non managed pointer data could for the eyes of collector impersonate some managed pointer used by some earlier invoked procedure. There must be three bads in line: GC didnt notice that one procedure is finished and another one is now using stack area previusly used by finished one, and miss the fact that nonstatic variables used by previous procedure are now dead; Place on stack previously (during finished procedure execution) occupied by managed pointer is now (at least partly) occupied by some other type of variable; Value stored into that new variable causes that place on stack to form a valid address to one of allocated heap objects. As one can see this problem is well localised. Im thinking about techniques to reduce it even further, but I have no idea how to get rid of it completely. Mind you, this is only the case of C code, as in C++ managed pointers are encapsulated by apropriate smart pointer classes and destructors take care of informing GC that particular managed pointer is no longer live. Whats New in This Release: Bugs fixed... - Fixed critical flaw corrupting memory when new(GC) was called inside constructor called by athother new(GC). - Fixes for MSVC 6.0 compilation problems reported by Vincent Rivière. Enhancements... - New method for dynamically determining when to collect garbage. This brings better performance without finetuning. - Initial collection threshold incresased from 256KB do 4MB of allocated data. - Added assertions for smart pointer validity for debug builds. - Cleaned up source and makefiles a bit.. Smieciuch Garbage Collector for C and C++

Requirements: No special requirements
Platforms: Linux
Keyword: Case Gc In Case In Case Of Libraries Managed Memory Pointer Precise Programming Smieciuch Used By
Users rating: 0/10

License: Freeware
More Reviews or Write Review

Graphics Editors  -  Taprats 1.0
Taprats is a Java applet that implements an islamic tiling technique based on the work of Hankin in the early part of the twentieth century, and on more recent papers by A.J. Lee and Craig S. Kaplan. By Craig S. Kaplan and Pierre Baillargeon.
527.83 KB  
Games  -  Harvesting - Apple Collector 1.0.0
Collect the apple crop. Using the bracket for the direction of apples in the basket. Office of the mouse. Rods can be dragged and rotated by building one way to apples. The levels are challenging puzzles ! Requirements: iOS 4.3 or later....
14.9 MB  
Programming  -  kin 0.0.2
kin is a set of libraries and tools supporting meta-programming for engineering and technical computing applications. This JVM version of kin has been superseded by the stand-alone version being developed at
477.44 KB  
Modules  -  XRDS-Simple 1.0
XRDS-Simple is a profile of XRDS, a service discovery protocol which is used by the OpenID authentication specification as well as OAuth.InstallationUnpack and upload it to the /wp-content/plugins/ directory.Activate the plugin through the...
Libraries  -  libband 0.01
LibBand is a simple library wrapper written in assembly and C (but I plan to rewrite everything in C) useful if you want to limit the bandwidth used by a program. It simply overrides some libc functions, using the LD_PRELOAD environment...
22.53 KB  
Utilities  -  OpenPList for Mac OS 1.0.4
A contextual menu item for opening, revealing, trashing or deleting the property list of an application, if it can find one in the Preferences folder of your Home directory. It can also be used to open the 'Info.plist' file inside the applications...
215.04 KB  
Action Games  -  Sparticle v - YummyWorks 2
Sparticles v2 is only the first step in the increasing complexity of YummyWorks VICs. As more quantum information is collected by Professor Y for the Sparticles, there will be continued enhanced interactivity and lots more customizable features!...
18.54 MB  
Libraries  -  B::JVM::Jasmin::CompileState 0.02
B::JVM::Jasmin::CompileState is an internal package used by B::JVM::Jasmin to keep state of compilation. SYNOPSIS use B::JVM::Jasmin::CompileState; my $state = new B::JVM::Jasmin::CompileState([HASHREF]); This class is used to store the...
44.03 KB  
Libraries  -  Java::Import::Design 0.03
Java::Import::Design is the design of the Java::Import Module. MOTIVATIONS The original motivation for writing this module came out of a project I was working on during my previous employment. We had built a system in which a major part was...
28.67 KB  
Modules  -  Case Tracker Comment Driven 6.x-1.0-alpha1
casetracker_comment_driven (CTCD for short) allows for CCK fields to be added to Case Tracker and tracked in the comments in a manner identical to how standard cases are tracked. This is achieved by using the Comment Driven module to track changes...
10 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB  
Libraries  -  wolfSSL 3.15.3
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
3.88 MB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB