Blame ChangeLog

Packit 95bb47
Fri Oct 26 2018 Marcin Ślusarz <marcin.slusarz@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.5
Packit 95bb47
Packit 95bb47
	This release has had two major focus areas - performance and RAS
Packit 95bb47
	(Reliability, Availability and Serviceability). Beyond that, it introduces
Packit 95bb47
	new APIs, new tools and many other improvements. As a side effect
Packit 95bb47
	of performance optimizations, the libpmemobj on-media layout had to be
Packit 95bb47
	changed, which means that old pools have to be converted using pmdk-convert.
Packit 95bb47
	libpmemcto experiment has been finished and removed from the tree.
Packit 95bb47
Packit 95bb47
	For more details, please see http://pmem.io/2018/10/22/release-1-5.html.
Packit 95bb47
Packit 95bb47
	New features:
Packit 95bb47
	- common: unsafe shutdown detection (SDS)
Packit 95bb47
	- common: detection and repair of uncorrectable memory errors (bad blocks)
Packit 95bb47
	- pool: new "feature" subcommand for enabling and disabling detection of
Packit 95bb47
	  unsafe shutdown and uncorrectable memory errors
Packit 95bb47
	- common: auto flush detection on Windows (on Linux since 1.4)
Packit 95bb47
	- pmreorder: new tool for verification of persistent memory algorithms
Packit 95bb47
	- obj: new on media layout
Packit 95bb47
	- pmem/obj: new flexible memcpy|memmove|memset API
Packit 95bb47
	- obj: new flushing APIs: pmemobj_xpersist, pmemobj_xflush (PMEMOBJ_F_RELAXED)
Packit 95bb47
	- rpmem: new flag RPMEM_PERSIST_RELAXED for rpmem_persist
Packit 95bb47
	- obj: lazily initialized volatile variables (pmemobj_volatile) (EXPERIMENTAL)
Packit 95bb47
	- obj: allocation classes with alignment
Packit 95bb47
	- obj: new action APIs: pmemobj_defer_free, POBJ_XRESERVE_NEW,
Packit 95bb47
	  POBJ_XRESERVE_ALLOC
Packit 95bb47
	- blk/log: new "ctl" API
Packit 95bb47
Packit 95bb47
	Optimizations:
Packit 95bb47
	- obj: major performance improvements for AEP NVDIMMs
Packit 95bb47
	- obj: better space utilization for small allocations
Packit 95bb47
	- common: call msync only on one page for deep drain
Packit 95bb47
Packit 95bb47
	Other changes:
Packit 95bb47
	- cto: removed
Packit 95bb47
	- obj: remove actions limit
Packit 95bb47
	- common: new dependency on libndctl on Linux
Packit 95bb47
	- pmempool: "convert" subcommand is now a wrapper around pmdk-convert
Packit 95bb47
	  (please see https://github.com/pmem/pmdk-convert)
Packit 95bb47
	- obj: C++ bindings have been moved to a new repository
Packit 95bb47
	  (please see https://github.com/pmem/libpmemobj-cpp)
Packit 95bb47
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- obj: fix type numbers for pmemobj_list_insert_new
Packit 95bb47
	- pmem: fix inconsistency in pmem_is_pmem
Packit 95bb47
	- common: fix windows mmap destruction
Packit 95bb47
	- daxio: fix checking and adjusting length
Packit 95bb47
	- common: fix long paths support on Windows
Packit 95bb47
Packit 95bb47
Thu Aug 16 2018 Marcin Ślusarz <marcin.slusarz@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.4.2
Packit 95bb47
Packit 95bb47
	This release fixes the way PMDK reports its version via
Packit 95bb47
	pkg-config files.
Packit 95bb47
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- common: fix reported version
Packit 95bb47
	- doc: use single "-" in NAME section (pmem/issues#914)
Packit 95bb47
Packit 95bb47
Fri Jun 29 2018 Marcin Ślusarz <marcin.slusarz@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.4.1
Packit 95bb47
Packit 95bb47
	In 1.4 development cycle, we created new daxio utility
Packit 95bb47
	(command line tool for performing I/O on Device-DAX), but due
Packit 95bb47
	to some complications we had to disable it just before
Packit 95bb47
	the 1.4 release.
Packit 95bb47
	In 1.4.1 we finally enable it. Daxio depends on ndctl v60.1.
Packit 95bb47
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- pmem: fix clflush bit position
Packit 95bb47
	- obj: fix invalid OOMs when zones are fully packed
Packit 95bb47
	- obj: don't register undo logs twice in memcheck
Packit 95bb47
	- pool: fix bash completion script
Packit 95bb47
	- pool: fix incorrect errno after transform
Packit 95bb47
	- obj: fix clang-7 compilation
Packit 95bb47
	- obj: test for msync failures in non-pmem path
Packit 95bb47
	- doc: add missing field to alloc class entry point
Packit 95bb47
	- common: (win) fix timed locks
Packit 95bb47
	- common: provide src version in GitHub tarballs
Packit 95bb47
	- common: fix free function in tls
Packit 95bb47
	- common: fix double close
Packit 95bb47
	- test: allow testing installed libraries
Packit 95bb47
	- test: fix Valgrind vs stripped libraries issue
Packit 95bb47
	- test: fix dependencies between tests and tools
Packit 95bb47
	- test: fix races on make pcheck -jN
Packit 95bb47
	- test: use libvmmalloc.so.1
Packit 95bb47
	- test: fix incorrect number of required dax devices
Packit 95bb47
	- test: add suppression for leak in ld.so
Packit 95bb47
	- test: fail if memcheck detects overlapping chunks
Packit 95bb47
	- test: simplify time measurements in obj_sync
Packit 95bb47
	- benchmark: check lseek() return value
Packit 95bb47
	- examples: catch exceptions in map_cli
Packit 95bb47
Packit 95bb47
Thu Mar 29 2018 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.4
Packit 95bb47
	This is the first release of PMDK under a new name.
Packit 95bb47
	The NVML project has been renamed to PMDK (Persistent Memory
Packit 95bb47
	Development Kit).  This is only the project/repo name change
Packit 95bb47
	and it does not affect the names of the PMDK packages.
Packit 95bb47
	See this blog article for more details on the reasons and
Packit 95bb47
	impact of the name change:
Packit 95bb47
	http://pmem.io/2017/12/11/NVML-is-now-PMDK.html
Packit 95bb47
Packit 95bb47
	New features:
Packit 95bb47
	- common: support for concatenated Device-DAX devices
Packit 95bb47
	  with 2M/1G alignment
Packit 95bb47
	- common: add support for MAP_SYNC flag
Packit 95bb47
	- common: always enable Valgrind instrumentation (#292)
Packit 95bb47
	- common: pool set options / headerless pools
Packit 95bb47
	- pmem: add support for "deep flush" operation
Packit 95bb47
	- rpmem: add rpmem_deep_persist
Packit 95bb47
	- doc: split man pages and add per-function aliases (#385)
Packit 95bb47
Packit 95bb47
	Optimizations:
Packit 95bb47
	- pmem: skip CPU cache flushing when eADR is available
Packit 95bb47
	  (no Windows support yet)
Packit 95bb47
	- pmem: add AVX512F support in pmem_memcpy/memset (#656)
Packit 95bb47
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- common: fix library dependencies (#767, RHBZ #1539564)
Packit 95bb47
	- common: use rpm-config CFLAGS/LDFLAGS when building packages
Packit 95bb47
	  (#768, RHBZ #1539564)
Packit 95bb47
	- common: do not unload librpmem on close (#776)
Packit 95bb47
	- common: fix NULL check in os_fopen (#813)
Packit 95bb47
	- common: fix missing version in .pc files
Packit 95bb47
	- obj: fix cancel of huge allocations (#726)
Packit 95bb47
	- obj: fix error handling in pmemobj_open (#750)
Packit 95bb47
	- obj: validate pe_offset in pmemobj_list_* APIs (#772)
Packit 95bb47
	- obj: fix add_range with size == 0 (#781)
Packit 95bb47
	- log: add check for negative iovcnt (#690)
Packit 95bb47
	- rpmem: limit maximum number of lanes (#609)
Packit 95bb47
	- rpmem: change order of memory registration (#655)
Packit 95bb47
	- rpmem: fix removing remote pools (#721)
Packit 95bb47
	- pool: fix error handling (#643)
Packit 95bb47
	- pool: fix sync with switched parts (#730)
Packit 95bb47
	- pool: fix sync with missing replica (#731)
Packit 95bb47
	- pool: fix detection of Device DAX size (#805)
Packit 95bb47
	- pool: fail pmempool_sync if there are no replicas (#816)
Packit 95bb47
	- benchmark: fix calculating standard deviation (#318)
Packit 95bb47
	- doc: clarify pmem_is_pmem behavior (#719)
Packit 95bb47
	- doc: clarify pmemobj_root behavior (#733)
Packit 95bb47
Packit 95bb47
	Experimental features:
Packit 95bb47
	- common: port PMDK to FreeBSD
Packit 95bb47
	- common: add experimental support for aarch64
Packit 95bb47
	- obj: introduce allocation classes
Packit 95bb47
	- obj: introduce two-phase heap ops (reserve/publish) (#380, #415)
Packit 95bb47
	- obj: provide basic heap statistics (#676)
Packit 95bb47
	- obj: implement run-time pool extending (#382)
Packit 95bb47
	- cto: add close-to-open persistence library (#192)
Packit 95bb47
Packit 95bb47
	The following features are disabled by default, until
Packit 95bb47
	ndctl v60.0 is available:
Packit 95bb47
	- daxio: add utility to perform I/O on Device-DAX
Packit 95bb47
	- RAS: unsafe shutdown detection/handling
Packit 95bb47
Packit 95bb47
Wed Dec 20 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.3.1
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- rpmem: fix issues reported by Coverity
Packit 95bb47
	- rpmem: fix read error handling
Packit 95bb47
	- rpmem: add fip monitor (#597)
Packit 95bb47
	- test: add rpmemd termination handling test
Packit 95bb47
	- cpp: fix pop.persist function in obj_cpp_ptr
Packit 95bb47
	- rpmem: return failure for a failed allocation
Packit 95bb47
	- rpmem: fix potential memory leak
Packit 95bb47
	- common: fix available rm options msg (#651)
Packit 95bb47
	- pool: fix pmempool_get_max_size
Packit 95bb47
	- obj: fix potential deadlock during realloc (#635, #636, #637)
Packit 95bb47
	- obj: initialize TLS data
Packit 95bb47
	- rpmem: fix cleanup if fork() failed (#634)
Packit 95bb47
	- obj: fix bogus OOM after exhausting first zone
Packit 95bb47
Packit 95bb47
Thu Jul 13 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.3
Packit 95bb47
	This release introduces some useful features and optimizations
Packit 95bb47
	in libpmemobj.  Most of them are experimental and controlled by
Packit 95bb47
	the new pmemobj_ctl APIs.  For details, please check the feature
Packit 95bb47
	requests identified by the issue numbers listed next to the items below.
Packit 95bb47
Packit 95bb47
	Other important changes are related to performance tuning and
Packit 95bb47
	stabilization of librpmem library, which is used by libpmemobj to get
Packit 95bb47
	remote access to persistent memory and to provide basic data replication
Packit 95bb47
	over RDMA.  The librpmem is still considered experimental.
Packit 95bb47
Packit 95bb47
	NVML for Windows is feature complete (except for libvmmalloc).
Packit 95bb47
	This release includes the support for Unicode, long paths and
Packit 95bb47
	the NVML installer.
Packit 95bb47
Packit 95bb47
	New features:
Packit 95bb47
	- common: add support for concatenated DAX Devices
Packit 95bb47
	- common: add Unicode support on Windows
Packit 95bb47
	- common: add long path support on Windows
Packit 95bb47
	- common: add NVML installer for Windows
Packit 95bb47
	- pmem: make pmem_is_pmem() true for Device DAX only
Packit 95bb47
	- obj: add pmemobj_wcsdup()/pmemobj_tx_wcsdup() APIs
Packit 95bb47
	- obj: export non-inlined pmemobj_direct()
Packit 95bb47
	- obj: add PMEMOBJ_NLANES env variable
Packit 95bb47
	- cpp: introduce the allocator
Packit 95bb47
	- cpp: add wstring version of C++ entry points
Packit 95bb47
	- vmem: add vmem_wcsdup() API entry
Packit 95bb47
	- pool: add pmempool_rm() function (#307)
Packit 95bb47
	- pool: add --force flag for create command (#529)
Packit 95bb47
	- benchmark: add a minimal execution time option
Packit 95bb47
	- benchmark: add thread affinity option
Packit 95bb47
	- benchmark: print 99% and 99.9% percentiles
Packit 95bb47
	- doc: separate Linux/Windows version of web-based man pages
Packit 95bb47
Packit 95bb47
	Optimizations:
Packit 95bb47
	- obj: cache _pobj_cached_pool in pmemobj_direct()
Packit 95bb47
	- obj: optimize thread utilization of buckets
Packit 95bb47
	- obj: stop grabbing a lock when querying pool ptr
Packit 95bb47
	- rpmem: use multiple endpoints
Packit 95bb47
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- common: fix issues reported by static code analyzers
Packit 95bb47
	- pmem: fix mmap() implementation on Windows
Packit 95bb47
	- pmem: fix mapping addr/length alignment on Windows
Packit 95bb47
	- pmem: fix PMEM_MMAP_HINT implementation on Windows
Packit 95bb47
	- pmem: fix pmem_is_pmem() on invalid memory ranges
Packit 95bb47
	- pmem: fix wrong is_pmem returned by pmem_map_file()
Packit 95bb47
	- pmem: fix mprotect() for private mappings on Windows
Packit 95bb47
	- pmem: modify pmem_is_pmem() behavior for len==0
Packit 95bb47
	- obj: add failsafe to prevent allocs in constructor
Packit 95bb47
	- cpp: fix swap implementation
Packit 95bb47
	- cpp: fix sync primitives' constructors
Packit 95bb47
	- cpp: fix wrong pointer type in the allocator
Packit 95bb47
	- cpp: return persistent_ptr::swap to being public
Packit 95bb47
	- pool: treat invalid answer as 'n'
Packit 95bb47
	- pool: unify flags value for dry run
Packit 95bb47
	- pool: transform for remote replicas
Packit 95bb47
	- rpmem: persistency method detection
Packit 95bb47
	- benchmark: fix time measurement
Packit 95bb47
Packit 95bb47
	Experimental features/optimizations:
Packit 95bb47
	- obj: pmemobjctl - statistics and control submodule (#194, #211)
Packit 95bb47
	- obj: zero-overhead allocations - customizable alloc header (#347)
Packit 95bb47
	- obj: flexible run size index (#377)
Packit 95bb47
	- obj: dynamic range cache (#378)
Packit 95bb47
	- obj: asynchronous post-commit (#381)
Packit 95bb47
	- obj: configurable object cache (#515)
Packit 95bb47
	- obj: add cache size and threshold tx params
Packit 95bb47
	- obj: add CTL var for suppressing expensive checks
Packit 95bb47
	- rpmem: add rpmem_set_attr() API entry
Packit 95bb47
	- rpmem: switch to libfabric v1.4.2
Packit 95bb47
Packit 95bb47
Thu May 18 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.2.3
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- test: extend timeout for selected tests
Packit 95bb47
	- test: reduce number of operations in obj_tx_mt
Packit 95bb47
	- test: define cfree() as free() in vmmalloc_calloc
Packit 95bb47
Packit 95bb47
	Other changes:
Packit 95bb47
	- common: move Docker images to new repo
Packit 95bb47
Packit 95bb47
Sat Apr 15 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.2.2
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- pmempool: fix mapping type in pool_params_parse
Packit 95bb47
	- test: limit number of arenas in vmem_stats
Packit 95bb47
	- test: do not run pool_lock test as root
Packit 95bb47
	- common: fix pkg-config files
Packit 95bb47
	- common: fix building packages for Debian
Packit 95bb47
Packit 95bb47
Tue Feb 21 2017 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.2.1
Packit 95bb47
	This NVML release changes the behavior of pmem_is_pmem() on Linux.
Packit 95bb47
	The pmem_is_pmem() function will now return true only if the entire
Packit 95bb47
	range is mapped directly from Device DAX (/dev/daxX.Y) without an
Packit 95bb47
	intervening file system, and only if the corresponding file mapping
Packit 95bb47
	was created with pmem_map_file().  See libpmem(3) for details.
Packit 95bb47
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- jemalloc: fix test compilation on Fedora 26 (rawhide)
Packit 95bb47
	- test: fix cpp test compilation on Fedora 26 (rawhide)
Packit 95bb47
	- common: use same queue.h on linux and windows
Packit 95bb47
	- common: queue.h clang static analyzer fix
Packit 95bb47
	- common: fix path handling in build-dpkg.sh
Packit 95bb47
	- test: fix match files in pmempool_transform/TEST8
Packit 95bb47
Packit 95bb47
Fri Dec 30 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.2 - Windows Technical Preview #1
Packit 95bb47
	This is the first Technical Preview release of NVML for Windows.
Packit 95bb47
	It is based on NVML 1.2 version, but not all the 1.2 features
Packit 95bb47
	are ported to Windows. In particular, Device DAX and remote access
Packit 95bb47
	to persistent memory (librpmem) are not supported by design.
Packit 95bb47
Packit 95bb47
	NOTE: This release has not gone through the full validation cycle,
Packit 95bb47
	but only through some basic tests on Travis and AppVeyor.
Packit 95bb47
	Thus, it cannot be assumed "Production quality" and should not
Packit 95bb47
	be used in production environments.
Packit 95bb47
Packit 95bb47
	Besides several minor improvements and bug fixes, all the other
Packit 95bb47
	changes since NVML 1.2 release were related to Windows support:
Packit 95bb47
	- win: port libvmem (and jemalloc)
Packit 95bb47
	- win: benchmarks Windows port
Packit 95bb47
	- win: fix mapping files of unaligned length
Packit 95bb47
	- win: clean up possible race condition in mmap_init()
Packit 95bb47
	- win: enable QueryVirtualMemoryInformation() in pmem_is_pmem()
Packit 95bb47
	- test: check open handles at START/DONE
Packit 95bb47
	- test: port all the remaining unit tests
Packit 95bb47
	  (scope, pmem_map, obj_debug, util_poolset, pmempool_*)
Packit 95bb47
	- win: add resource files for versioning
Packit 95bb47
Packit 95bb47
	Known issues and limitations of Windows version of NVML:
Packit 95bb47
	- Unicode support is missing.  The UTF/USC-encoded file paths
Packit 95bb47
	  or pool set files may not be handled correctly.
Packit 95bb47
	- The libvmmalloc library is not ported yet.
Packit 95bb47
	- The on-media format of pmem pools is not portable at the moment.
Packit 95bb47
	  The pmem pools created using Windows version of NVM libraries
Packit 95bb47
	  cannot be open on Linux and vice versa.
Packit 95bb47
	- Despite the fact the current version of NVML would work
Packit 95bb47
	  with any recent version of Windows OS, to take full
Packit 95bb47
	  advantage of PMEM and NVML features and to benefit from
Packit 95bb47
	  the PMEM performance, the recommended platforms needs be
Packit 95bb47
	  equipped with the real NVDIMMs hardware and should support
Packit 95bb47
	  the native, Microsoft's implementation of DAX-enabled file
Packit 95bb47
	  system (i.e. Windows Server 2016 or later).
Packit 95bb47
	  In case of using NVML with older versions of Windows or with
Packit 95bb47
	  the custom implementation of PMEM/DAX drivers, the performance
Packit 95bb47
	  might not be satisfactory.  Please, contact the provider
Packit 95bb47
	  of PMEM/DAX drivers for your platform to get the customized
Packit 95bb47
	  version of NVML in such case.
Packit 95bb47
Packit 95bb47
Thu Dec 15 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.2
Packit 95bb47
	This NVML release causes a "flag day" for libpmemobj.
Packit 95bb47
	The pmemobj pools built under NVML 1.1 are incompatible with pools built
Packit 95bb47
	under NVML 1.2 and later.  This is because an issue was discovered with
Packit 95bb47
	the alignment of locks (#358) and, although rare, the issue potentially
Packit 95bb47
	impacts program correctness, making the fix mandatory.
Packit 95bb47
	The major version number of the pmemobj pool layout and the version
Packit 95bb47
	of the libpmemobj API is changed to prevent the use of the potentially
Packit 95bb47
	incorrect layout.
Packit 95bb47
Packit 95bb47
	Other key changes introduced in this release:
Packit 95bb47
	- Add Device DAX support, providing that "optimized flush" mechanism
Packit 95bb47
	  defined in SNIA NVM Programming Model can safely be used, even
Packit 95bb47
	  if PMEM-aware file system supporting that model is not available,
Packit 95bb47
	  or if the user does not want to use the file system for some reason.
Packit 95bb47
	- Add a package for libpmemobj C++ bindings.
Packit 95bb47
	  C++ API is no longer considered experimental.
Packit 95bb47
	  Web-based documentation for C++ API is available on http://pmem.io.
Packit 95bb47
	- Add "sync" and "transform" commands to pmempool utility.
Packit 95bb47
	  The "sync" command allows one to recover missing or corrupted part(s)
Packit 95bb47
	  of a pool set from a healthy replica, while the "transform" command
Packit 95bb47
	  is a convenient way for modifying the structure of an existing
Packit 95bb47
	  pool set, i.e. by adding or removing replicas.
Packit 95bb47
	- Add experimental support for remote access to persistent memory and
Packit 95bb47
	  basic remote data replication over RDMA (librpmem).  Experimental
Packit 95bb47
	  support for remote replicas is also provided by libpmemobj library.
Packit 95bb47
Packit 95bb47
	New features:
Packit 95bb47
	- common: add Device DAX support (#197)
Packit 95bb47
	- obj: add C++ bindings package (libpmemobj++-devel)
Packit 95bb47
	- obj: add TOID_OFFSETOF macro
Packit 95bb47
	- pmempool: add "sync" and "transform" commands (#172, #196)
Packit 95bb47
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- obj: force alignment of pmem lock structures (#358)
Packit 95bb47
	- blk: cast translation entry to uint64_t when calculating data offset
Packit 95bb47
	- obj: fix Valgrind instrumentation of chunk headers and cancelled
Packit 95bb47
	  allocations
Packit 95bb47
	- obj: set error message when user called pmemobj_tx_abort()
Packit 95bb47
	- obj: fix status returned by pmemobj_list_insert() (#226)
Packit 95bb47
	- obj: defer allocation of global structures
Packit 95bb47
Packit 95bb47
	Optimizations:
Packit 95bb47
	- obj: fast path for pmemobj_pool_by_ptr() when inside a transaction
Packit 95bb47
	- obj: simplify and optimize allocation class generation
Packit 95bb47
Packit 95bb47
	Experimental features:
Packit 95bb47
	- rpmem: add support for remote access to persistent memory and basic
Packit 95bb47
	  remote data replication over RDMA
Packit 95bb47
	- libpmempool: add pmempool_sync() and pmempool_transform() (#196)
Packit 95bb47
	- obj: introduce pmemobj_oid()
Packit 95bb47
	- obj: add pmemobj_tx_xalloc()/pmemobj_tx_xadd_range() APIs and
Packit 95bb47
	  the corresponding macros
Packit 95bb47
	- obj: add transaction stage transition callbacks
Packit 95bb47
Packit 95bb47
Thu Jun 23 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.1
Packit 95bb47
	This NVML release introduces a new version of libpmemobj pool layout.
Packit 95bb47
	Internal undo log structure has been modified to improve performance
Packit 95bb47
	of pmemobj transactions.  Memory pools created with older versions
Packit 95bb47
	of the libpmemobj library must be converted to the new format using
Packit 95bb47
	"pmempool convert" command.  See pmempool-convert(1) for details.
Packit 95bb47
Packit 95bb47
	A new "libpmempool" library is available, providing support for
Packit 95bb47
	off-line pool management and diagnostics.  Initially it provides only
Packit 95bb47
	"check" and "repair" operations for log and blk memory pools, and for
Packit 95bb47
	BTT devices.
Packit 95bb47
Packit 95bb47
	Other changes:
Packit 95bb47
	- pmem: deprecate PCOMMIT
Packit 95bb47
	- blk: match BTT Flog initialization with Linux NVDIMM BTT
Packit 95bb47
	- pmem: defer pmem_is_pmem() initialization (#158)
Packit 95bb47
	- obj: add TOID_TYPEOF macro
Packit 95bb47
Packit 95bb47
	Bug fixes:
Packit 95bb47
	- doc: update description of valid file size units (#133)
Packit 95bb47
	- pmempool: fix --version short option in man page (#135)
Packit 95bb47
	- pmempool: print usage when running rm without arg (#136)
Packit 95bb47
	- cpp: clarify polymorphism in persistent_ptr (#150)
Packit 95bb47
	- obj: let the before flag be any non-zero value (#151)
Packit 95bb47
	- obj: fix compare array pptr to nullptr (#152)
Packit 95bb47
	- obj: cpp pool.get_root() fix (#156)
Packit 95bb47
	- log/blk: set errno if replica section is specified (#161)
Packit 95bb47
	- cpp: change exception message	(#163)
Packit 95bb47
	- doc: remove duplicated words in man page (#164)
Packit 95bb47
	- common: always append EXTRA_CFLAGS after our CFLAGS
Packit 95bb47
Packit 95bb47
	Experimental features:
Packit 95bb47
	- Implementation of C++ bindings for libpmempobj is complete.
Packit 95bb47
	  Web-based documentation for C++ API is available on http://pmem.io.
Packit 95bb47
	  Note that C++ API is still considered experimental.  Do not use it
Packit 95bb47
	  in production environments.
Packit 95bb47
	- Porting NVML to Windows is in progress.  There are MS Visual Studio
Packit 95bb47
	  solution/projects available, allowing to compile libpmem, libpmemlog,
Packit 95bb47
	  libpmemblk and libpmemobj on Windows, but the libraries are not fully
Packit 95bb47
	  functional and most of the test are not enabled yet.
Packit 95bb47
Packit 95bb47
Thu Apr 07 2016 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 1.0
Packit 95bb47
	The API of six libraries (libpmem, libpmemblk, libpmemlog,
Packit 95bb47
	libpmemobj, libvmem, libvmmalloc) is complete and stable.
Packit 95bb47
	The on-media layout of persistent memory pools will be maintained
Packit 95bb47
	from this point, and if changed it will be backward compatible.
Packit 95bb47
	Man pages are all complete.
Packit 95bb47
	This release has been validated to "Production quality".
Packit 95bb47
Packit 95bb47
	For the purpose of new features planned for next releases of NVML
Packit 95bb47
	there have been some API modifications made:
Packit 95bb47
		- pmem: pmem_map replaced with pmem_map_file
Packit 95bb47
		- log/blk: 'off_t' substituted with 'long long'
Packit 95bb47
		- obj: type numbers extended to 64-bit
Packit 95bb47
		- obj: new entry points and macros added:
Packit 95bb47
		  pmemobj_tx_errno, pmemobj_tx_lock, pmemobj_mutex_timedlock,
Packit 95bb47
		  TX_ADD_DIRECT, TX_ADD_FIELD_DIRECT, TX_SET_DIRECT
Packit 95bb47
Packit 95bb47
	Other key changes since version 0.4 include:
Packit 95bb47
		- common: updated/fixed installation scripts
Packit 95bb47
		- common: eliminated dependency on libuuid
Packit 95bb47
		- pmem: CPU features/ISA detection using CPUID
Packit 95bb47
		- obj: improved error handling
Packit 95bb47
		- obj: atomic allocation fails if constructor returns error
Packit 95bb47
		- obj: multiple performance optimizations
Packit 95bb47
		- obj: object store refactoring
Packit 95bb47
		- obj: additional examples and benchmarks
Packit 95bb47
Packit 95bb47
	This release also introduces a prototype implementation
Packit 95bb47
	of C++ bindings for libpmemobj.  Note that C++ API is still
Packit 95bb47
	experimental and should not be used in production environments.
Packit 95bb47
Packit 95bb47
Fri Dec 04 2015 Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 0.4
Packit 95bb47
	This NVML version primarily focuses on improving code quality
Packit 95bb47
	and reliability.  In addition to a couple of bug fixes,
Packit 95bb47
	the changes include:
Packit 95bb47
		- benchmarks for libpmemobj, libpmemblk and libvmem
Packit 95bb47
		- additional pmemobj tests and examples
Packit 95bb47
		- pool mapping address randomization
Packit 95bb47
		- added pmempool "rm" command
Packit 95bb47
		- eliminated libpmem dependency on libpthread
Packit 95bb47
		- enabled extra warnings
Packit 95bb47
		- minor performance improvements
Packit 95bb47
	Man pages are all complete.
Packit 95bb47
	This release is considered "Beta quality" by the team, having
Packit 95bb47
	been thoroughly validated, including significant performance analysis.
Packit 95bb47
	The pmempool command does not yet support "check" and "repair"
Packit 95bb47
	operations for pmemobj type pools.
Packit 95bb47
Packit 95bb47
Sun Sep 13 2015 Andy Rudoff <andy.rudoff@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 0.3
Packit 95bb47
	NVML is now feature complete, adding support for:
Packit 95bb47
		- pool sets
Packit 95bb47
		- pmemobj local replication (active/passive)
Packit 95bb47
		- experimental valgrind support
Packit 95bb47
		- pmempool support for all pool types
Packit 95bb47
	Man pages are all complete.
Packit 95bb47
	This release is considered "Alpha quality" by the team, having
Packit 95bb47
	gone through significant validation but only some performance
Packit 95bb47
	analysis at this point.
Packit 95bb47
Packit 95bb47
Tue Jun 30 2015 Andy Rudoff <andy.rudoff@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 0.2
Packit 95bb47
	NVML now consists of six libraries:
Packit 95bb47
		- libpmem                            (basic flushing, etc)
Packit 95bb47
		- libpmemblk, libpmemlog, libpmemobj (transactions)
Packit 95bb47
		- libvmem, libvmmalloc               (volatile use of pmem)
Packit 95bb47
	The "pmempool" command is available for managing pmem files.
Packit 95bb47
	Man pages for all the above are complete.
Packit 95bb47
	The only things documented in man pages but not implemented are:
Packit 95bb47
		- pmem sets (ability to spread a pool over a set of files)
Packit 95bb47
		- replication (coming for libpmemobj)
Packit 95bb47
	The pmempool command does not yet support pmemobj type pools.
Packit 95bb47
Packit 95bb47
Thu Sep 11 2014 Andy Rudoff <andy.rudoff@intel.com>
Packit 95bb47
Packit 95bb47
	* Version 0.1
Packit 95bb47
	Initial development done in 0.1 builds