Main > Free Download Search >

Free allocator software for linux

allocator

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 20
vtmalloc 1.2

vtmalloc 1.2


vtmalloc is a fast memory allocator for multi-threaded applications and Tcl. more>>
vtmalloc is a fast memory allocator for multi-threaded applications and Tcl. vtmalloc project provides low contention and the ability to return memory to the system.
Tcl
Replace exiting tclThreadAlloc. in the Tcl distribution and recompile with
--enable-threads option. Or use LD_PRELOAD=tclThreadAlloc.so before loading your application.
There is command Tcl_VTMallocCtlObjCmd which can be used in application to force deallocating global pages as well.
To use it in your Tcl program, link it with libvtmalloc.so and execute
extern Tcl_ObjProc Tcl_VTMallocCtlObjCmd;
Tcl_CreateObjCommand(interp, "vtmalloc_ctl", Tcl_VTMallocCtlObjCmd, NULL, NULL);
Enhancements:
- Greatly improved speed and memory usage.
<<less
Download (0.013MB)
Added: 2007-01-17 License: MPL (Mozilla Public License) Price:
1011 downloads
nedmalloc 1.04 Alpha

nedmalloc 1.04 Alpha


nedmalloc an alternative malloc implementation written in C for multiple threads without lock contention. more>>
nedmalloc an alternative malloc implementation written in C for multiple threads without lock contention based on dlmalloc v2.8.3.
It is more or less a newer implementation of ptmalloc2, the standard allocator in Linux (which is based on dlmalloc v2.7.0) but also contains a per-thread cache for maximum CPU scalability. It comes under the Boost software license which permits commercial usage.
It is more than 125 times faster than the standard Win32 memory allocator, 4-10 times faster than the standard FreeBSD memory allocator and up to twice as fast as ptmalloc2, the standard Linux memory allocator. It can sustain between 7.3m and 8.2m malloc & free pair operations per second on a 2200Mhz AMD Athlon64 machine.
It scales with extra CPUs far better than either the standard Win32 memory allocator or ptmalloc2 and can cause significantly less memory bloating than ptmalloc2. nedmalloc project avoids processor serialisation (locking) entirely when the requested memory size is in the thread cache.
Enhancements:
- This is an interim release from SVN as there have been many critical bugs fixed as nedmalloc was deployed on very high end architectures.
- Further speed ups and scalability improvements also made.
- However, this release is marked "alpha" since the usual thorough release testing has not been performed.
<<less
Download (0.069MB)
Added: 2006-10-08 License: Open Software License Price:
1112 downloads
libfactory++ 0.1.4

libfactory++ 0.1.4


libfactory++ is a C++ template framework for run-time dynamic type instantiation. more>>
libfactory++ is a C++ template framework for run-time dynamic type instantiation. You can register single classes or whole hierarchies, and then tell libfactory++ to instantiate objects using the registration key.
libfactory++ differs from other factory approaches mainly in its flexibility. First, it can use any constructor a type supports, and allows you to choose (and configure) the constructor to use for each call to create().
Second, it supports custom allocators, allowing you to use, e.g., a memory pool rather than continuous invocations of new.
Installation:
The `configure shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile in each directory of the package.
It may also create one or more `.h files containing system-dependent definitions.
Finally, it creates a shell script `config.status that you can run in the future to recreate the current configuration, and a file `config.log containing compiler output (useful mainly for debugging `configure).
It can also use an optional file (typically called `config.cache and enabled with `--cache-file=config.cache or simply `-C) that saves the results of its tests to speed up reconfiguring. (Caching is disabled by default to prevent problems with accidental use of stale cache files.)
If you need to do unusual things to compile the package, please try to figure out how `configure could check whether to do them, and mail diffs or instructions to the address given in the `README so they can be considered for the next release.
If you are using the cache, and at some point `config.cache contains results you dont want to keep, you may remove or edit it.
The file `configure.ac (or `configure.in) is used to create `configure by a program called `autoconf. You only need `configure.ac if you want to change it or regenerate `configure using a newer version of `autoconf.
The simplest way to compile this package is:
1. `cd to the directory containing the packages source code and type `./configure to configure the package for your system. If youre using `csh on an old version of System V, you might need to type `sh ./configure instead to prevent `csh from trying to execute
`configure itself.
Running `configure takes awhile. While running, it prints some messages telling which features it is checking for.
2. Type `make to compile the package.
3. Optionally, type `make check to run any self-tests that come with the package.
4. Type `make install to install the programs and any data files and documentation.
5. You can remove the program binaries and object files from the source code directory by typing `make clean. To also remove the files that `configure created (so you can compile the package for a different kind of computer), type `make distclean.
There is also a `make maintainer-clean target, but that is intended mainly for the packages developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution.
Enhancements:
- Fixed a small bug in the registration macros, causing compilation errors in projects which contain a class Factory in another namespace.
<<less
Download (0.074MB)
Added: 2005-09-29 License: GPL (GNU General Public License) Price:
1487 downloads
AdaControl 1.6r8

AdaControl 1.6r8


AdaControl is a free tool that detects the use of various kinds of constructs in Ada programs. more>>
AdaControl is a free (GMGPL) tool that detects the use of various kinds of constructs in Ada programs. AdaControls first goal is to control proper usage of style or programming rules, but it can also be used as a powerful tool to search for use (or non-use) of various forms of programming styles or design patterns. Searched elements range from very simple, like the occurrence of certaine entities, declarations, or statements, to very sophisticated, like verifying that certain programming patterns are being obeyed..
Which elements or constructs are searched is defined by a set of rules; the following table gives a short summary of rules currently checked by AdaControl. The number in parentheses after the rule name gives the number of subrules, if any. Considering all possible rules and subrules, this makes 216 tests that can be performed currently by AdaControl!
- Abnormal_Function_Return Controls a design pattern that ensures that a function always returns a result .
- Allocators Controls ocurrences of allocators, either all of them, or those targeting specified types.
- Array_Declarations (x2) Controls several metrics in array declarations.
- Barrier_Expressions Controls elements allowed in the expression of protected entries barriers
- Case_Statement (x4) Controls several metrics in case statements.
- Control_Characters Controls occurrences of control characters (like tabs) in the source.
- Declarations (x75) Controls occurrences of certain Ada declarations.
- Default_Parameter Controls subprogram calls and generic instantiations that use (or not) the default value for a given parameter.
- Directly_Accessed_Globals Controls a design pattern that ensures that all global variables are accessed only through dedicated subprograms.
- Entities Controls occurrences of any Ada entity.
- Entity_Inside_Exception Controls occurrences of entities inside exception handlers.
- Exception_Propagation (x4) Controls that certain subprograms (or tasks) cannot propagate exceptions, or that no elaboration can propagate exceptions.
- Expressions (x9) Controls usage of certain forms of expressions
- Global_References Controls unsynchronized accesses to global variables.
- Header_Comments (x2) Controls the presence of comments at the start of each module.
- If_For_Case Controls if statements that could be replaced by case statements.
- Instantiations Controls generic instantiations, either all of them, or those that use specified entities.
- Insufficient_Parameters Controls the use of positional parameters in calls where the value does not provide sufficient information.
- Local_Hiding Controls occurrences of local identifiers that hide an identical outer one.
- Local_Instantiation Controls instantiations in local scopes.
- Max_Blank_Lines Controls the occurrence of more than a specified number of consecutive empty lines.
- Max_Call_Depth Controls the maximum depth of subprogram calls.
- Max_Line_Length Controls maximal length of source lines.
- Max_Nesting Controls scopes nested more deeply than a given limit.
- Max_Parameters (x6) Controls the maximum numbers of parameters in callable entities (procedures, functions and entries)
- Max_Statement_Nesting (x5) Controls composite statements nested more deeply than a given limit.
- Movable_Accept_Statements Controls statements that could be moved outside an accept statement.
- Naming_Convention Controls the form of allowed (or forbidden) names in declarations.
- No_Safe_Initialization Controls a design pattern that ensures that any variable is initialized before being used.
- Non_Static (x3) Controls non static expressions in index or discriminant constraints, or in instantiations.
- Not_Elaboration_Calls Controls subprogram calls performed from places outside package elaboration code.
- Other_Dependencies Controls semantic dependencies to other units than those indicated
- Parameter_Aliasing Controls subprograms and entry calls where a variable is provided to more than one [in] out parameter.
- Potentially_Blocking_Operations Controls the use of potentially blocking operations from within protected operations.
- Pragmas Controls the use of specific pragmas.
- Real_Operators Controls occurrences of = or /= operators on real types.
- Reduceable_Scope Controls declarations that could be move to more deeply nested scopes.
- Representation_Clauses Controls occurrences of representation clauses.
- Return_Type Controls the use of certain kinds of types as return types of functions.
- Side_Effect_Parameters Controls subprogram calls and generic instantiations that call functions with side effect, thus creating a dependance to the order of evaluation.
- Silent_Exceptions Controls exception handlers that do not reraise exceptions nor call indicated subprograms.
- Simplifiable_Expressions (x4) Controls occurrences of various forms of expressions that could be simplified.
- Special_Comments Controls the presence of certain string patterns in comments.
- Statements (x42) Controls occurrences of Ada statements.
- Style (x12) Controls various forms of constructs generally recommended in style rules.
- Terminating_Tasks Controls a design pattern that ensures that tasks never terminate.
- Uncheckable (x3) Controls constructs that are not statically checkable by other rules
- Unnecessary_Use_Clause Controls use clauses on packages, where no element of the package is referred to within the scope of the use clause.
- Unsafe_Paired_Calls Controls a design pattern that ensures that certain calls are allways paired (like P/V procedures).
- Unsafe_Unchecked_Conversion Controls instantiations of Unchecked_Conversion between types of different or unspecified sizes.
- Usage (x5) Controls usage of objects under certain conditions (in package specifications, read, written modified...).
- Use_Clauses Controls occurrences of use clauses, except for indicated packages.
- With_Clauses (x3) Controls proper usage of with clauses.
Enhancements:
- This release adds rules to check that header comments match a given pattern.
- It has indication of possible false positives and false negatives due to non-statically analyzable constructs.
- There is a fine definition of constructs allowed in entry barriers (including the one of the Ravenscar profile).
- There is better integration into GPS, and much more.
<<less
Download (1.0MB)
Added: 2006-12-08 License: GMGPL (GNAT Modified GPL) Price:
1050 downloads
libarena 0.3.4

libarena 0.3.4


libarena is a custom memory allocator interface and implementation. more>>
libarena library is a custom memory allocator interface and implementation. Three allocators are provided: flat "LIFO" arena allocator, object pool allocator and a malloc(3) wrapper. These can be used directly, or through their exported prototype interfaces.
libarena is meant to provide a baseline interface so allocators can be stacked, and to provide a well defined interface for libraries and applications. It is not meant to restrict or confine what custom allocators can actually accomplish. For instance, the included pool and arena allocators include a suite of string utilities which arent available in the generic exportable interface. However, they are built upon the generic interface (see util.h).
Almost no malloc(3) library "replacements" support a context pointer argument. Theyre useless for many or most of the tasks where the ability to specify an alternate malloc(3) could actually be useful, e.g. one shot dealloction of a task structure and all associated allocations. For network daemons especially this feature is useful; all allocations for a particular session can be freed simply by closing the lowest-level allocator object.
The arena allocator behaves similarly to GNU obstacks. If allocations are freed in reverse order than the underlying buffers will be freed accordingly; out-of-order deallocations will lead to fragmentation. The arena allocator also supports position marking. The state at any given instance can be stored and the allocator later reset to that state. All allocations which occured after, in time, the saved state will behave as-if they were explicitly deallocated.
The pool allocator keeps a pool of sets of fixed sized buffers. Each buffer size can be arbitrary. Allocations which cannot be met from the existing buckets will result in the creation of a new bucket. Memory returned to the pool will be reused. Currently the pool will never shrink, only grow.
Upon closing of the arena or pool allocator objects all memory used will be released back to their underlying allocator (either the one passed on instantiation, or by default `ARENA_STDLIB, the standard library wrapper.
Enhancements:
- The makefiles are no longer recursive, so this should build and install using either GNU Make or BSD pmake.
<<less
Download (0.020MB)
Added: 2007-06-06 License: MIT/X Consortium License Price:
872 downloads
libkdtree++ 0.2.1

libkdtree++ 0.2.1


libkdtree++ is a C++ template container implementation of k-dimensional space sorting, using a kd-tree. more>>
libkdtree++ is a C++ template container implementation of k-dimensional space sorting, using a kd-tree.
Usage:
A simple example program is provided in the ./examples directory
(/usr/share/doc/libkdtree++-dev/examples on Debian).
The library supports pkg-config. Thus, to compile with the library,
include < kdtree++/kdtree.hpp >
and append the output of `pkg-config libkdtree++ --cflags` to your $CPPFLAGS.
Each call to erase() and insert() unbalances the tree. It is possible that nodes will not be found while the tree is unbalanced.
You rebalance the tree by calling optimize(), and you should call it before you need to search the tree (this includes erase(value) calls, which search the tree).
It is ok to call insert(value) many times and optimize() at the end, but every erase() call should be followed with optimize().
Main features:
- sports an unlimited number of dimensions (in theory)
- can store any data structure, provided the data structure provides operator[0 - k-1] to access the individual dimensional components (arrays, std::vector already do) and a std::less implementation for the type of dimensional components
- has support for custom allocators
- implements iterators
- provides standard find as well as range queries
- has amortised O(lg n) time (O(n lg n) worst case) on most operations (insert/erase/find optimised) and worst-case O(n) space.
- provides a means to rebalance and thus optimise the tree.
- exists in its own namespace
- uses STL coding style, basing a lot of the code on stl_tree.h
<<less
Download (0.072MB)
Added: 2005-09-27 License: Artistic License Price:
1491 downloads
libexo 0.3.1.10 RC1

libexo 0.3.1.10 RC1


libexo is the extension library to Xfce developed by os-cillation. more>>
libexo is the extension library to Xfce developed by os-cillation. While Xfce ships with quite a few libraries that are primarly targeted at desktop development, libexo is targeted at application development, with a focus on applications for Xfce.
libexo library is already used by three Xfce applications - Terminal, Xfmedia and Thunar - and is expected to be used by other Xfce applications as well, once more application developers start to write applications for and with Xfce.
libexo contains a bunch of additional widgets (e.g. an icon bar and widgets that can automatically ellipsize text), provides a framework for editable toolbars (an improved version of the framework present in GNOME), light-weight session management support, functions to automatically synchronize object properties (based on GObject Binding Properties) and several miscelleanous utility and helper functions for application developers.
Installation:
Before we go into the details of how to install libexo from source, we should mention that binary packages prebuilt for your operating system will be available, either from your operating system vendor or from independent sources. Check the download locations mentioned above to see whether binary packages are available for your operating system.
The source package is distributed as bzip2ed tarball (.tar.bz2) and as a gziped tarball (.tar.gz). It is highly recommended to install libexo to the same location that you installed Xfce to. For example, if you installed Xfce into /usr/local, you would perform the following steps to build and install libexo:
# bunzip2 exo-X.Y.Z.tar.bz2
# tar xf exo-X.Y.Z.tar
# cd exo-X.Y.Z
# export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
# ./configure --prefix=/usr/local
# make
# make install
Replace X.Y.Z in the above lines with the version of the tarball you downloaded (e.g. 0.2.0).
Enhancements:
- This release adds a new ExoIconChooserDialog widget to pick an icon from either the current icon theme or an image file.
- It adds exo_gtk_file_chooser_add_thumbnail_preview(), which adds a thumbnail preview widget to a GtkFileChooser.
- It adds ExoCellRendererIcon as the default icon renderer for the ExoIconView.
- ExoTreeView has been updated to add support for rubberband selection.
- A layout problem in ExoIconView where the appearance of a scrollbar caused the icons to be laid out again and again has been fixed.
- The GSlice allocator is used where possible to further reduce memory overhead.
<<less
Download (0.91MB)
Added: 2006-09-03 License: LGPL (GNU Lesser General Public License) Price:
1147 downloads
Apache Portable Runtime 1.2.8

Apache Portable Runtime 1.2.8


The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries. more>>
Apache Portable Runtime (APR) project mission is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations.
The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.
Main features:
- Atomic operations
- Dynamic Shared Object loading
- File I/O
- Locks (mutexes, condition variables, etc)
- Memory management (high performance allocators)
- Memory-mapped files
- Multicast Sockets
- Network I/O
- Shared memory
- Thread and Process management
- Various data structures (tables, hashes, priority queues, etc)
Enhancements:
- Various bugs were fixed.
- The API compatible with version 1.2.7.
<<less
Download (1.0MB)
Added: 2007-06-21 License: The Apache License 2.0 Price:
870 downloads
dlib C++ Library 15.6

dlib C++ Library 15.6


dlib C++ Library is a modern C++ library with a focus on portability and program correctness. more>>
dlib C++ Library is a modern C++ library with a focus on portability and program correctness. The library is open source software and is licensed under the Boost Software License.
Main features:
- Everything is Design by Contract all the time. This means there is complete and precise documentation for every class and function. There are also debugging modes that check the preconditions for functions. When this is enabled it will catch the vast majority of bugs caused by calling functions incorrectly or using objects in an incorrect manner.
- Abstraction layers on top of operating system APIs. Specifically: directory navigation, TCP sockets, threading and graphical user interfaces.
- Very portable
- All non ISO C++ code is located in the OS abstraction layers which are as small as possible (about 9% of the library). The rest of the objects in the library are either layered on top of the OS abstraction layer or are pure ISO C++.
- Big/little endian agnostic.
- No assumptions are made about structure byte packing.
- No other packages are required to use the library. Only APIs that are provided by an out of the box OS are used.
- Many container classes. What makes these containers different from what can be found in the STL is how they move objects into and out of themselves. Rather than copying things around everything is moved around by swapping. This allows you to do things like have containers of containers of containers. They also have simpler interfaces. Additionally:
- There are many versions of each container with different performance characteristics so you have great flexibility in choosing exactly what you want.
- Many of the containers perform all their allocations through the memory_manger object and unlike the STL there is no requirement that different instances of the memory manager/allocator be able to free objects allocated from each other. This allows for much more interesting memory manager implementations.
- All containers are serializable.
- A command line parser with the ability to parse and validate command lines with various types of arguments and options.
- Various abstracted objects representing parts of data compression algorithms. Many forms of the PPM algorithm are included.
- A big integer object
- A thread safe logger object styled after the popular Java logger log4j.
- All new threads are pulled from a dynamically sized thread pool. So calls to create_new_thread() are fast.
- A fast matrix object implemented using the expression templates technique.
- A modular testing framework.
- A simple HTTP server object you can use to embed a web server into your applications
Enhancements:
- This release primarily includes updates to the matrix object, which now supports runtime sizing in addition to its previous compile-time dimensioning capabilities.
- Some more helper functions have also been added and minor bugs were fixed.
<<less
Download (0.81MB)
Added: 2007-08-20 License: Freely Distributable Price:
798 downloads
libmba 0.8.10

libmba 0.8.10


libmba is a library of generic C modules. more>>
The libmba package is a collection of mostly independent C modules potentially useful to any project. There are the usual ADTs including a linkedlist, hashmap, pool, stack, and varray, a flexible memory allocator, CSV parser, path canonicalization routine, I18N text abstraction, configuration file module, portable semaphores, condition variables and more.

The code is designed so that individual modules can be integrated into existing codebases rather than requiring the user to commit to the entire library. The code has no typedefs, few comments, and extensive man pages and HTML documentation.
<<less
Download (0.25MB)
Added: 2005-04-14 License: MIT/X Consortium License Price:
1653 downloads
libyama 0.4-b

libyama 0.4-b


libyama is a malloc implementation that bundles leak tracking by auditing allocations. more>>
libyama is a malloc implementation that bundles leak tracking by auditing allocations, array bound write detection, detection of access to freed memory, free/realloc on invalid pointers. It grew out of an attempt to build array bound overwrite detection into LeakTrac, a leak tracker I wrote earlier.
Since LeakTrac performed only book keeping and not any allocation, it was not possible to make LeakTrac detect array bound write, hence an allocator that does; and also tracks leaks.
You can think of it as merging LeakTrac and code that was inspired by ElectricFence.
If you only want to track leaks, then LeakTrac is just what you need. If you want an allocator that lets you debug also, then YaMa is the one for you. Sure, there are other similar things on the block - which is why this is Yet another Memory allocator.
Main features:
- provides malloc, calloc, realloc and free
- tracks and reports leaks
- detects accesses beyond allocated memory
- detects accesses to freed memory
- detects free on non-malloced pointers, NULL pointers
- detects realloc on non-malloced pointers
Installation:
Currently YaMa is written for Linux x86. Youll need a kernel that provides mmap etc, and gcc that can build ELF shared libraries. You also need to install binutils, if you havent already (very unlikely) And youll need the /proc filesystem.
To install YaMa
Unpack the archive
Edit Makefile; the only things you need to change are INSTALLDIR and BT.
make lib to make
make install to install. Youll need write permission on INSTALLDIR.
You may need to run ldconfig
Usage:
YaMa contains libyama.so, a shared library installed into INSTALLDIR by make install. The library provides malloc, calloc, realloc and free which can be used as replacements to their libc implementations.
A program can be linked against libyama on the command line (-lyama). A more interesting way to use libyama would be to preload it using LD_PRELOAD. The command line
LD_PRELOAD=libyama.so
would cause all calls to malloc, calloc, realloc and free originating from the program being run to be handled by the YaMa implementation. If libyama.so doesnt show up on ldconfig -p or it is not on your LD_LIBRARY_PATH, you need to specify the full path length.
When the program errs by accessing memory across an array bound, i.e, beyond the memory allocated using malloc/calloc/realloc, it receives a SIGSEGV. An access to freed memory also results in a SIGSEGV. If youve compiled your program using -g, you can locate the offending statement using any debugger on the core file. Note that overwrites on statically allocated arrays are not detected by YaMa.
If the program peforms an invalid free or realloc, an "Alert!" message is written to stderr, along with the call chain till the free/realloc. The call fails.
Upon normal program termination, either thro exit or return from main, a summary of leaks is printed on stderr. The size of each chunk of memory that remains un-freed at the end of the program is reported, along with the call chain till the allocation.
The behaviour of YaMa on malloc (0) (or calloc (x, 0)) is controlled by the environment variable ALLOWMALLOCZERO. If this variable is set to values = 2, YaMa returns a valid pointer and no warning is printed. Writes to this pointer, too, will fail. If ALLOWMALLOCZERO is not set, the behaviour is identical to ALLOWMALLOCZERO = 0.
Enhancements:
- Fixed a bug in the stack backtrace code which would crash libyama. Compile time control of backtracing (Ive found it useful at times not to have tracing).
<<less
Download (0.012MB)
Added: 2006-03-17 License: Freely Distributable Price:
1318 downloads
lispreader 0.5

lispreader 0.5


lispreader is a small library for reading expressions in Lisp syntax. more>>
lispreader is a small library for reading expressions in Lisp syntax. It has originally been written to facilitate simple exchange of structured data between processes but its main purpose is now to provide a framework for reading configuration files.
To simplify interpretation of the data read, lispreader also provides functions for simple matching of expressions against patterns.
lispreader is also used in at least one application to read and write data files. Lisp syntax is very suitable for doing this, especially if the data is organized hierachically.
Version restrictions:
lispreader is not a Lisp system in that it cannot, by itself, interpret Lisp expressions. It only provides a subset of the features of libraries like Guile of librep (namely the reading of expressions) and does thus not compete directly with those.
If all you need is a simple way to read Lisp expressions without interpreting them with Lisp semantics, you will probably be satisfied with lispreader.
Enhancements:
- #?(number) pattern
- lisp_free can handly arbitrarily nested lists without recursion.
- Memory allocation can now be controlled with the allocator interface.
- An allocator is included which is very fast and low-overhead, but only allows freeing all data at once.
- A new memory mapping Lisp stream type is implemented, which about doubles parsing speed.
<<less
Download (0.035MB)
Added: 2005-10-04 License: GPL (GNU General Public License) Price:
1480 downloads
Cache colouring task_struct and kernel stack 2.5.0-0.5

Cache colouring task_struct and kernel stack 2.5.0-0.5


This helps cache-colours both task_struct and kernel stack using a slab allocator for task_struct and initial stack pointer jittering for kernel stack. more>>

Cache colouring task_struct and kernel stack 2.5.0-0.5 is really useful for it is designed to cache-colours both task_struct and kernel stack.

This patch cache-colours both task_struct and kernel stack using a slab allocator for task_struct and initial stack pointer jittering for kernel stack. An extra structure is defined for task_struct allocations as long as a new init task structure.

By using three stack color bits, eight colors will be used for initial stack frame pointer jittering that should be enough for most cache architectures. Care has to be taken in increasing too much STACK_COLOUR_BITS because this can lead to kernel stack overflows, e.g. a STACK_COLOUR_BITS set to 4 with a cache line size of 128 bytes like P4 will result in a maximum jitter of 2048 bytes by leaving only 6 Kb for the kernel stack.

<<less
Added: 2008-04-08 License: GPL Price: FREE
1 downloads
deimos 1.3

deimos 1.3


deimos project consists of some platform independent libraries. more>>
deimos project consists of some platform independent libraries.

The deimos project provides some platform independent libraries which contain a reference memory allocator (garbage collector planned), virtual filesystem (Unix sockets, HTTP, etc), configfile management, and a clean build system (easy makefiles).

These libs are used by DDS (Digital Disco System - mp3 player), vmOberon (oberon virtual machine), and ODMS (open document management system).

deimos has some simpl programming principles:

- dont make the packages not too big. one package for each job.

- simplicity. clear interfaces. each package has an front- and an back-interface. better think twice before starting to program anything.

- high abstraction. i.e the core libs are the one and only stuff which has to care about system specifics.

currently these packages are available:

- core:

current implementations: linux + glibc (may work on other unices too, but not tested)

provides:
* simple and clear build system (have a look the makefiles)
* Memory Manager (reference counting, type checking, ...)
* Virtual Filesystem (currently supports: local unix, http)
* ConfigFile (manages config files, goes over the VFS)

- template

an very simple template for writing applications with the deimos make system.

- examples

some applications demonstrating how to use the deimos (mostly core).

- oberon

the oberon subsystem. provides an virtual machine an kernel modules

<<less
Download (MB)
Added: 2007-04-17 License: LGPL (GNU Lesser General Public License) Price:
924 downloads
SDCC 2.6.0

SDCC 2.6.0


SDCC is a freeware, retargettable, optimizing ANSI-C compiler. more>>
SDCC is a freeware, retargettable, optimizing ANSI-C compiler. The current version targets Intel 8051-based MCUs, the Zilog Z80, and the DS390. Targets for the Microchip PIC and Amtel AVR series are under development, and the compiler can be retargeted for other 8 bit MCUs or PICs.
The entire source code for the compiler is distributed under GPL. SDCC uses ASXXXX and ASLINK, a freeware, retargettable assembler & linker. SDCC has extensive MCU (8051)-specific language extensions, which lets it utilize the underlying hardware effectively.
SDCC includes a source-level debugger/simulator and can generate debug info for the NoICE debugger.
Main features:
- ASXXXX and ASLINK, a Freeware, retargettable assembler and linker.
- extensive MCU specific language extensions, allowing effective use of the underlying hardware.
- a host of standard optimizations such as global sub expression elimination, loop optimizations (loop invariant, strength reduction of induction variables and loop reversing ), constant folding and propagation, copy propagation, dead code elimination and jump tables for switch statements.
- MCU specific optimisations, including a global register allocator.
- adaptable MCU specific backend that should be well suited for other 8 bit MCUs
- independent rule based peep hole optimizer.
- a full range of data types: char (8 bits, 1 byte), short (16 bits, 2 bytes), int (16 bits, 2 bytes), long (32 bit, 4 bytes) and float (4 byte IEEE).
- the ability to add inline assembler code anywhere in a function.
- the ability to report on the complexity of a function to help decide what should be re-written in assembler.
- a good selection of automated regression tests.
Enhancements:
- This release improves the compilers conformance to the C standard.
- Significant progress was also made on the PIC (both 14- and 16-bit) backends.
- For the 8051, SDCC has seen the addition of a new memory model, code banking, and bit variables.
- Numerous feature requests and bugfixes are included as well.
<<less
Download (4.0MB)
Added: 2006-09-07 License: GPL (GNU General Public License) Price:
1161 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 2
  • 1
  • 2