summaryrefslogtreecommitdiffstats
path: root/INSTALL
Commit message (Collapse)AuthorAgeFilesLines
* Add test code coverage analysis.Jason Evans2013-12-071-0/+13
| | | | Add test code coverage analysis based on gcov.
* Refactor to support more varied testing.Jason Evans2013-12-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactor the test harness to support three types of tests: - unit: White box unit tests. These tests have full access to all internal jemalloc library symbols. Though in actuality all symbols are prefixed by jet_, macro-based name mangling abstracts this away from test code. - integration: Black box integration tests. These tests link with the installable shared jemalloc library, and with the exception of some utility code and configure-generated macro definitions, they have no access to jemalloc internals. - stress: Black box stress tests. These tests link with the installable shared jemalloc library, as well as with an internal allocator with symbols prefixed by jet_ (same as for unit tests) that can be used to allocate data structures that are internal to the test code. Move existing tests into test/{unit,integration}/ as appropriate. Split out internal parts of jemalloc_defs.h.in and put them in jemalloc_internal_defs.h.in. This reduces internals exposure to applications that #include <jemalloc/jemalloc.h>. Refactor jemalloc.h header generation so that a single header file results, and the prototypes can be used to generate jet_ prototypes for tests. Split jemalloc.h.in into multiple parts (jemalloc_defs.h.in, jemalloc_macros.h.in, jemalloc_protos.h.in, jemalloc_mangle.h.in) and use a shell script to generate a unified jemalloc.h at configure time. Change the default private namespace prefix from "" to "je_". Add missing private namespace mangling. Remove hard-coded private_namespace.h. Instead generate it and private_unnamespace.h from private_symbols.txt. Use similar logic for public symbols, which aids in name mangling for jet_ symbols. Add test_warn() and test_fail(). Replace existing exit(1) calls with test_fail() calls.
* Allow to enable ivsalloc independentlyMike Hommey2012-12-231-0/+6
|
* Allow to disable the zone allocator on DarwinMike Hommey2012-12-231-0/+4
|
* Allow to build without exporting symbolsMike Hommey2012-11-251-0/+5
| | | | | | When statically linking jemalloc, it may be beneficial not to export its symbols if it makes sense, which allows the compiler and the linker to do some further optimizations.
* Add the --enable-mremap option.Jason Evans2012-05-091-0/+6
| | | | | | Add the --enable-mremap option, and disable the use of mremap(2) by default, for the same reason that freeing chunks via munmap(2) is disabled by default on Linux: semi-permanent VM map fragmentation.
* Clean up documentation and formatting.Jason Evans2012-04-231-5/+1
|
* Add the --disable-munmap option.Jason Evans2012-04-171-0/+7
| | | | | | Add the --disable-munmap option, remove the configure test that attempted to detect the VM allocation quirk known to exist on Linux x86[_64], and make --disable-munmap implicit on Linux.
* Implement Valgrind support, redzones, and quarantine.Jason Evans2012-04-111-2/+6
| | | | | | | | | | | | | Implement Valgrind support, as well as the redzone and quarantine features, which help Valgrind detect memory errors. Redzones are only implemented for small objects because the changes necessary to support redzones around large and huge objects are complicated by in-place reallocation, to the point that it isn't clear that the maintenance burden is worth the incremental improvement to Valgrind support. Merge arena_salloc() and arena_salloc_demote(). Refactor i[v]salloc() to expose the 'demote' option.
* Add utrace(2)-based tracing (--enable-utrace).Jason Evans2012-04-051-0/+4
|
* Add the --disable-experimental option.Jason Evans2012-03-031-0/+3
|
* Add fine-grained build/install targets.Jason Evans2012-03-031-0/+13
|
* Add --with-mangling.Jason Evans2012-03-021-0/+13
| | | | | | | | | | Add the --with-mangling configure option, which can be used to specify name mangling on a per public symbol basis that takes precedence over --with-jemalloc-prefix. Expose the memalign() and valloc() overrides even if --with-jemalloc-prefix is specified. This change does no real harm, and simplifies the code.
* Enable support for junk/zero filling by default.Jason Evans2012-02-291-2/+2
|
* Enable the stats configuration option by default.Jason Evans2012-02-291-2/+2
|
* Remove the sysv option.Jason Evans2012-02-291-5/+0
|
* Simplify small size class infrastructure.Jason Evans2012-02-291-8/+0
| | | | | | | | | | | | Program-generate small size class tables for all valid combinations of LG_TINY_MIN, LG_QUANTUM, and PAGE_SHIFT. Use the appropriate table to generate all relevant data structures, and remove the distinction between tiny/quantum/cacheline/subpage bins. Remove --enable-dynamic-page-shift. This option didn't prove useful in practice, and it prevented optimizations. Add Tilera architecture support.
* Make 8-byte tiny size class non-optional.Jason Evans2012-02-131-7/+0
| | | | | | | | | | | When tiny size class support was first added, it was intended to support truly tiny size classes (even 2 bytes). However, this wasn't very useful in practice, so the minimum tiny size class has been limited to sizeof(void *) for a long time now. This is too small to be standards compliant, but other commonly used malloc implementations do not even bother using a 16-byte quantum on systems with vector units (SSE2+, AltiVEC, etc.). As such, it is safe in practice to support an 8-byte tiny size class on 64-bit systems that support 16-byte types.
* Do not enable lazy locking by default.Jason Evans2012-02-131-2/+2
| | | | | | | | Do not enable lazy locking by default, because: - It's fragile (applications can subvert detection of multi-threaded mode). - Thread caching amortizes locking overhead in the default configuration.
* Remove the swap feature.Jason Evans2012-02-131-5/+0
| | | | | Remove the swap feature, which enabled per application swap files. In practice this feature has not proven itself useful to users.
* Add the --with-private-namespace option.Jason Evans2011-07-301-0/+6
| | | | | Add the --with-private-namespace option to make it possible to work around library-private symbols being exposed in static libraries.
* Move repo contents in jemalloc/ to top level.Jason Evans2011-04-011-0/+251