Menu

Code Commit Log


Commit Date  
[r560] by obarthel

*** empty log message ***

2016-12-04 10:17:43 Tree
[r559] by --none--

This commit was manufactured by cvs2svn to create tag 'V1_213'.

2016-12-04 10:16:51 Tree
[r558] by obarthel

c.lib 1.213 (4.12.2016)

- Added the __decay_unused_slabs() function which brings all currently
empty slabs which are still protected from reuse closer to getting
reused or released.

- The slab-test program now exercises the memory allocation functions
to a greater degree. Memory is allocated in random chunk sizes,
the allocations are resized (to other random chunk sizes),
33% of all allocations are randomly freed, empty slabs readied for
reuse then discarded. The output in JSON format now shows a bit
more information as to what is being done.

- Rewrote __get_slab_stats() to use setjmp() and longjmp() in the
print() callback invocation.

- __get_slab_stats() now reports how many times a slab was reused
after having stuck around in the "empty slab" list.

- Changing the slab size through an environment variable is now
a feature of the debug build.

- Small changes to allow the library to be built with SAS/C again.
This includes adding code to disable/re-enable profiling,
fixing "stdlib_profile.h" and updating the smakefiles.

- Still not sure what it does, but _CXV45 now sits along with _CX25
and _CX35 in "sas_cxv.asm". "sas_cxv54.asm" is not needed any
more.

- Found the last use of MEMF_PRIVATE which should have been compiled
only for the OS4 version.

2016-12-04 10:16:50 Tree
[r557] by --none--

This commit was manufactured by cvs2svn to create tag 'V2_212'.

2016-11-27 14:56:47 Tree
[r556] by obarthel

c.lib 1.212 (27.11.2016)

- Unused slabs which get recycled are no longer reinitialized from
scratch if their chunk size matches what the allocator needed.
If the chunk size matches, the list of available chunks is
left unchanged, and just the various counters are reset.

- Added __get_slab_stats() function.

- Added support for global __slab_purge_threshold tuning variable.

2016-11-27 14:56:46 Tree
[r555] by obarthel

- malloc-test was linked against the wrong object file. Fixed.

- Added a short test program for the slab allocator.

2016-11-27 14:55:40 Tree
[r554] by obarthel

- These were accidentally omitted from version 1.211

2016-11-24 09:04:57 Tree
[r553] by --none--

This commit was manufactured by cvs2svn to create tag 'V1_211'.

2016-11-23 17:09:30 Tree
[r552] by obarthel

c.lib 1.211 (23.11.2016)

- Added more consistency checking to the slab allocator, which is
built if DEBUG is defined in "stdlib_slab.c".

- Memory allocations are no longer guaranteed to be aligned to
64 bit word boundaries. In fact, this has not even worked
reliably in the past 10 years.

- Memory allocation request sizes are now rounded to multiples of
32 bit words (the size of an address pointer) instead to the
size of a 64 bit word.

- Reduced the memory footprint of the memory allocation management
data structures by reusing the most significant bit of the
memory allocation size. This allows many more allocations to fit
into the 32 byte chunk slabs, but limits the maximum memory
allocation size to a little less than 2 GBytes.

- Added integer overflow checks to the memory management code.

- Reduced the memory management overhead further. This cuts an
additional 8 bytes per allocation, unless neither the slab
allocator nor memory pools are available. With this reduction
the slab allocator is able to use 16 byte chunks, which cover
memory allocation requests of 1..8 bytes.

- Fixed a bug caused by returning an allocation back to a slab
which passed the wrong pointer.

2016-11-23 17:09:29 Tree
[r551] by --none--

This commit was manufactured by cvs2svn to create tag 'V1_210'.

2016-11-22 17:24:55 Tree
Older >
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.