├── .gitignore ├── FrontCover.png ├── LICENSE ├── README.md ├── chapter01 ├── .gitignore ├── Makefile ├── README.md └── pmemkv.cpp ├── chapter02 └── README.txt ├── chapter03 ├── .gitignore ├── Makefile ├── README.md ├── Windows_Get-PmemDisk.out ├── df-h.out ├── ipmctl_show_-dimm.out ├── ipmctl_show_-region.out ├── map_file_windows_example.c ├── mmap_example.c ├── ndctl_list_-DRN.out └── pmem_map_file.c ├── chapter04 └── README.md ├── chapter05 └── README.md ├── chapter06 ├── .gitignore ├── Makefile ├── README.md ├── full_copy.c ├── manpage.c └── simple_copy.c ├── chapter07 ├── Makefile ├── README.md ├── pmemobj_alloc.c ├── preader.c ├── pwriter.c ├── reserve_publish.c └── tx.c ├── chapter08 ├── .gitignore ├── Makefile ├── README.md ├── allocation.cpp ├── containers.cpp ├── non_trivial_copy.cpp ├── p.cpp ├── persistent_queue.hpp ├── queue.cpp ├── transaction.cpp ├── volatile_pointers.cpp └── volatile_queue.hpp ├── chapter09 ├── Makefile ├── README.md ├── config_structure.c ├── js-phonebook.js ├── phonebook.cpp └── pmemkv_config.h ├── chapter10 ├── .gitignore ├── Makefile ├── README.md ├── pmem_allocator.cpp ├── pmem_config.c ├── pmem_detect_kind.c ├── vector_of_strings.cpp └── vmemcache.c ├── chapter11 ├── Makefile ├── README.md ├── data_oriented_design.cpp ├── simplekv.cpp ├── simplekv.hpp ├── simplekv_rebuild.cpp ├── simplekv_rebuild.hpp └── versioning_insert.cpp ├── chapter12 ├── Makefile ├── README.md ├── leak.c ├── listing_12-11.c ├── listing_12-13.c ├── listing_12-16.c ├── listing_12-17.c ├── listing_12-23.c ├── listing_12-25.c ├── listing_12-28.c ├── listing_12-33.c ├── listing_12-36.c ├── listing_12-38.c ├── listing_12-40.c ├── listing_12-44.cpp ├── listing_12-45.cpp ├── listing_12-48.cpp ├── listing_12-51.cpp ├── listing_12-9.c └── stackoverflow.c ├── chapter13 └── README.md ├── chapter14 ├── Makefile ├── README.md ├── listing_14-1.cpp ├── listing_14-2.cpp ├── listing_14-3.cpp └── listing_14-4.cpp ├── chapter15 └── README.md ├── chapter16 └── README.md ├── chapter17 └── README.md ├── chapter18 ├── Makefile ├── README.md ├── hello.c └── pool.set ├── chapter19 └── README.md └── contributing.md /.gitignore: -------------------------------------------------------------------------------- 1 | *.lst 2 | a.out 3 | -------------------------------------------------------------------------------- /FrontCover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/FrontCover.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/README.md -------------------------------------------------------------------------------- /chapter01/.gitignore: -------------------------------------------------------------------------------- 1 | pmemkv 2 | -------------------------------------------------------------------------------- /chapter01/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter01/Makefile -------------------------------------------------------------------------------- /chapter01/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter01/README.md -------------------------------------------------------------------------------- /chapter01/pmemkv.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter01/pmemkv.cpp -------------------------------------------------------------------------------- /chapter02/README.txt: -------------------------------------------------------------------------------- 1 | These are the listings for Chapter 2 - Persistent Memory Architecture. 2 | -------------------------------------------------------------------------------- /chapter03/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/.gitignore -------------------------------------------------------------------------------- /chapter03/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/Makefile -------------------------------------------------------------------------------- /chapter03/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/README.md -------------------------------------------------------------------------------- /chapter03/Windows_Get-PmemDisk.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/Windows_Get-PmemDisk.out -------------------------------------------------------------------------------- /chapter03/df-h.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/df-h.out -------------------------------------------------------------------------------- /chapter03/ipmctl_show_-dimm.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/ipmctl_show_-dimm.out -------------------------------------------------------------------------------- /chapter03/ipmctl_show_-region.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/ipmctl_show_-region.out -------------------------------------------------------------------------------- /chapter03/map_file_windows_example.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/map_file_windows_example.c -------------------------------------------------------------------------------- /chapter03/mmap_example.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/mmap_example.c -------------------------------------------------------------------------------- /chapter03/ndctl_list_-DRN.out: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/ndctl_list_-DRN.out -------------------------------------------------------------------------------- /chapter03/pmem_map_file.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter03/pmem_map_file.c -------------------------------------------------------------------------------- /chapter04/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter04/README.md -------------------------------------------------------------------------------- /chapter05/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter05/README.md -------------------------------------------------------------------------------- /chapter06/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter06/.gitignore -------------------------------------------------------------------------------- /chapter06/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter06/Makefile -------------------------------------------------------------------------------- /chapter06/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter06/README.md -------------------------------------------------------------------------------- /chapter06/full_copy.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter06/full_copy.c -------------------------------------------------------------------------------- /chapter06/manpage.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter06/manpage.c -------------------------------------------------------------------------------- /chapter06/simple_copy.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter06/simple_copy.c -------------------------------------------------------------------------------- /chapter07/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter07/Makefile -------------------------------------------------------------------------------- /chapter07/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter07/README.md -------------------------------------------------------------------------------- /chapter07/pmemobj_alloc.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter07/pmemobj_alloc.c -------------------------------------------------------------------------------- /chapter07/preader.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter07/preader.c -------------------------------------------------------------------------------- /chapter07/pwriter.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter07/pwriter.c -------------------------------------------------------------------------------- /chapter07/reserve_publish.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter07/reserve_publish.c -------------------------------------------------------------------------------- /chapter07/tx.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter07/tx.c -------------------------------------------------------------------------------- /chapter08/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/.gitignore -------------------------------------------------------------------------------- /chapter08/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/Makefile -------------------------------------------------------------------------------- /chapter08/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/README.md -------------------------------------------------------------------------------- /chapter08/allocation.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/allocation.cpp -------------------------------------------------------------------------------- /chapter08/containers.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/containers.cpp -------------------------------------------------------------------------------- /chapter08/non_trivial_copy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/non_trivial_copy.cpp -------------------------------------------------------------------------------- /chapter08/p.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/p.cpp -------------------------------------------------------------------------------- /chapter08/persistent_queue.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/persistent_queue.hpp -------------------------------------------------------------------------------- /chapter08/queue.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/queue.cpp -------------------------------------------------------------------------------- /chapter08/transaction.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/transaction.cpp -------------------------------------------------------------------------------- /chapter08/volatile_pointers.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/volatile_pointers.cpp -------------------------------------------------------------------------------- /chapter08/volatile_queue.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter08/volatile_queue.hpp -------------------------------------------------------------------------------- /chapter09/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter09/Makefile -------------------------------------------------------------------------------- /chapter09/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter09/README.md -------------------------------------------------------------------------------- /chapter09/config_structure.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter09/config_structure.c -------------------------------------------------------------------------------- /chapter09/js-phonebook.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter09/js-phonebook.js -------------------------------------------------------------------------------- /chapter09/phonebook.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter09/phonebook.cpp -------------------------------------------------------------------------------- /chapter09/pmemkv_config.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter09/pmemkv_config.h -------------------------------------------------------------------------------- /chapter10/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter10/.gitignore -------------------------------------------------------------------------------- /chapter10/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter10/Makefile -------------------------------------------------------------------------------- /chapter10/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter10/README.md -------------------------------------------------------------------------------- /chapter10/pmem_allocator.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter10/pmem_allocator.cpp -------------------------------------------------------------------------------- /chapter10/pmem_config.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter10/pmem_config.c -------------------------------------------------------------------------------- /chapter10/pmem_detect_kind.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter10/pmem_detect_kind.c -------------------------------------------------------------------------------- /chapter10/vector_of_strings.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter10/vector_of_strings.cpp -------------------------------------------------------------------------------- /chapter10/vmemcache.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter10/vmemcache.c -------------------------------------------------------------------------------- /chapter11/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter11/Makefile -------------------------------------------------------------------------------- /chapter11/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter11/README.md -------------------------------------------------------------------------------- /chapter11/data_oriented_design.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter11/data_oriented_design.cpp -------------------------------------------------------------------------------- /chapter11/simplekv.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter11/simplekv.cpp -------------------------------------------------------------------------------- /chapter11/simplekv.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter11/simplekv.hpp -------------------------------------------------------------------------------- /chapter11/simplekv_rebuild.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter11/simplekv_rebuild.cpp -------------------------------------------------------------------------------- /chapter11/simplekv_rebuild.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter11/simplekv_rebuild.hpp -------------------------------------------------------------------------------- /chapter11/versioning_insert.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter11/versioning_insert.cpp -------------------------------------------------------------------------------- /chapter12/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/Makefile -------------------------------------------------------------------------------- /chapter12/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/README.md -------------------------------------------------------------------------------- /chapter12/leak.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/leak.c -------------------------------------------------------------------------------- /chapter12/listing_12-11.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-11.c -------------------------------------------------------------------------------- /chapter12/listing_12-13.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-13.c -------------------------------------------------------------------------------- /chapter12/listing_12-16.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-16.c -------------------------------------------------------------------------------- /chapter12/listing_12-17.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-17.c -------------------------------------------------------------------------------- /chapter12/listing_12-23.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-23.c -------------------------------------------------------------------------------- /chapter12/listing_12-25.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-25.c -------------------------------------------------------------------------------- /chapter12/listing_12-28.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-28.c -------------------------------------------------------------------------------- /chapter12/listing_12-33.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-33.c -------------------------------------------------------------------------------- /chapter12/listing_12-36.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-36.c -------------------------------------------------------------------------------- /chapter12/listing_12-38.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-38.c -------------------------------------------------------------------------------- /chapter12/listing_12-40.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-40.c -------------------------------------------------------------------------------- /chapter12/listing_12-44.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-44.cpp -------------------------------------------------------------------------------- /chapter12/listing_12-45.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-45.cpp -------------------------------------------------------------------------------- /chapter12/listing_12-48.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-48.cpp -------------------------------------------------------------------------------- /chapter12/listing_12-51.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-51.cpp -------------------------------------------------------------------------------- /chapter12/listing_12-9.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/listing_12-9.c -------------------------------------------------------------------------------- /chapter12/stackoverflow.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter12/stackoverflow.c -------------------------------------------------------------------------------- /chapter13/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter13/README.md -------------------------------------------------------------------------------- /chapter14/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter14/Makefile -------------------------------------------------------------------------------- /chapter14/README.md: -------------------------------------------------------------------------------- 1 | This are the listings for Chapter 14 - Concurrency and Persistent Memory. 2 | -------------------------------------------------------------------------------- /chapter14/listing_14-1.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter14/listing_14-1.cpp -------------------------------------------------------------------------------- /chapter14/listing_14-2.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter14/listing_14-2.cpp -------------------------------------------------------------------------------- /chapter14/listing_14-3.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter14/listing_14-3.cpp -------------------------------------------------------------------------------- /chapter14/listing_14-4.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter14/listing_14-4.cpp -------------------------------------------------------------------------------- /chapter15/README.md: -------------------------------------------------------------------------------- 1 | These are the listings for Chapter 15 - Profiling and Performance. 2 | -------------------------------------------------------------------------------- /chapter16/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter16/README.md -------------------------------------------------------------------------------- /chapter17/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter17/README.md -------------------------------------------------------------------------------- /chapter18/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter18/Makefile -------------------------------------------------------------------------------- /chapter18/README.md: -------------------------------------------------------------------------------- 1 | These are the listings for Chapter 18 - Remote Persistent Memory 2 | -------------------------------------------------------------------------------- /chapter18/hello.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/chapter18/hello.c -------------------------------------------------------------------------------- /chapter18/pool.set: -------------------------------------------------------------------------------- 1 | PMEMPOOLSET 2 | 32M /mountpoint/myfile 3 | -------------------------------------------------------------------------------- /chapter19/README.md: -------------------------------------------------------------------------------- 1 | These are the listings for Chapter 19 - Advanced Topics 2 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Apress/programming-persistent-memory/HEAD/contributing.md --------------------------------------------------------------------------------