mpm + c++   191

date
A date and time library based on the C 11/14/17 <chrono> header. Slightly modified versions of "date.h" and "tz.h" were voted into the C 20 working draft
c++ 
6 weeks ago by mpm
Mesh: Compacting Memory Management for C/C++ Applications
Programs written in C/C++ can suffer from serious memory fragmentation, leading to low utilization of memory, degraded performance, and application failure due to memory exhaustion. This paper introduces Mesh, a plug-in replacement for malloc that, for the first time, eliminates fragmentation in unmodified C/C++ applications. Mesh combines novel randomized algorithms with widely-supported virtual memory operations to provably reduce fragmentation, breaking the classical Robson bounds with high probability. Mesh generally matches the runtime performance of state-of-the-art memory allocators while reducing memory consumption; in particular, it reduces the memory of consumption of Firefox by 16% and Redis by 39%.
memory  c++ 
march 2019 by mpm
Beautiful Native Libraries
I'm obsessed with nice APIs. Not just APIs however, also in making the overall experience of using a library as good as possible. For Python there are quite a few best practices around by now but it feels like there is not really a lot of information available about how to properly structure a native library. What do I mean by native library? Essentially a dylib/DLL/so.
design  c++ 
august 2018 by mpm
Stamp-it: A more Thread-efficient, Concurrent Memory Reclamation Scheme in the C++ Memory Model
We present Stamp-it, a new, concurrent, lock-less memory reclamation scheme with amortized, constant-time (thread-count independent) reclamation overhead. Stamp-it has been implemented and proved correct in the C++ memory model using as weak memory-consistency assumptions as possible. We have likewise (re)implemented six other comparable reclamation schemes. We give a detailed performance comparison, showing that Stamp-it performs favorably (sometimes better, at least as good as) than most of these other schemes while being able to reclaim free memory nodes earlier.
c++  memory  concurrency 
july 2018 by mpm
span-lite
span lite is a single-file header-only library to provide a bounds-safe view for sequences of objects. The library provides a C++20-like span for use with C++98 and later
c++ 
may 2018 by mpm
uC++
The μC++ project extends C++ with new constructs providing advanced control-flow including light-weight concurrency on shared-memory uni- and multi-processor computers running UNIX and Linux operating systems. μC++ accomplishes this by providing new kinds of classes: coroutines, which have independent execution states; tasks, which have their own threads; and monitors, which allow for safe communication among tasks.
c++  concurrency  coroutines 
march 2018 by mpm
Adventures with Memory Barriers and Seastar on Linux
What does mprotect() have to do with injecting memory barriers on other cores?
memory  c++ 
february 2018 by mpm
hat-trie
The library provides an efficient and compact way to store a set or a map of strings by compressing the common prefixes. It also allows to search for keys that match a prefix.
c++  datastructure 
december 2017 by mpm
hopscotch-map
The hopscotch-map library is a C++ implementation of a fast hash map and hash set using open-addressing and hopscotch hashing to resolve collisions. It is a cache-friendly data structure offering better performances than std::unordered_map in most cases and is closely similar to google::dense_hash_map while using less memory and providing more functionalities.
datastructure  c++ 
november 2017 by mpm
smf
smf is a set of libraries and utilities designed to be the building blocks of your next distributed systems.
c++  rpc 
october 2017 by mpm
Category Theory for Programmers unofficial PDF and LaTeX source
Bartosz Milewski's 'Category Theory for Programmers' unofficial PDF and LaTeX source
math  book  c++  haskell 
october 2017 by mpm
abseil
Abseil is an open-source collection of C++ library code designed to augment the C++ standard library
c++ 
september 2017 by mpm
diiskhash
A simple disk-based hash table (i.e., persistent hash table).

It is a hashtable implemented on memory-mapped disk, so that it can be loaded with a single mmap() system call and used in memory directly (being as fast as an in-memory hashtable once it is loaded from disk).
storage  database  memory  datastructure  c++  python 
july 2017 by mpm
Concurrency
This library provides high level constructs for implementing algorithms that eases the use of multiple CPU cores while minimizing the contention.
c++  concurrency 
june 2017 by mpm
How to Build a CMake-Based Project
All CMake-based projects contain a script named CMakeLists.txt, and this post is meant as a guide for configuring and building such projects.
build  c++ 
may 2017 by mpm
premock
Mock C functions using the preprocessor
testing  c++ 
april 2017 by mpm
dangsan
DangSan instruments programs written in C or C++ to invalidate pointers whenever a block of memory is freed, preventing dangling pointers. Instead, whenever such a pointer is dereferenced, it refers to unmapped memory and results in a crash. As a consequence, attackers can no longer exploit dangling pointers.
c++  memory  availability 
april 2017 by mpm
RaftLib
RaftLib is a way to write sequential blocks of code that can be executed in a distributed parallel manner without all the fuss, boilerplate, and hassle of standard parallel code
concurrency  c++ 
march 2017 by mpm
Shooting yourself in the head with threads
I though I would put together a list of things I have seen over the years of some obvious and some not so obvious issues when using threads on Linux and c or c++. At lot of these issues will also apply to systems based around POSIX as well.
linux  unix  c++  concurrency  time 
march 2017 by mpm
dr strangetemplate
We live in a more enlightened age, and it's time to recognize the noble and simple truth of post-C++11 templates: they help you write better code. Templated code is type-safe, expressive, and can increase runtime performance by both shifting computation to compile-time and enabling optimizations that can't be applied to equivalent runtime code.
c++ 
february 2017 by mpm
elle
Elle is a collection of libraries, written in modern C++ (C++14). It contains a rich set of highly reusable concepts, algorithms, API wrappers, ... Elle is split into different smaller specialized libraries to provide elegant ways to approach coroutine, networking, formatting, serialization, logging, RPCs, etc.
concurrency  networking  c++ 
february 2017 by mpm
Memory Error Detection Using GCC
GCC 7, in particular, contains a number of enhancements that help detect several new kinds of programming errors in this area. This article provides a brief overview of these new features
c++  memory 
february 2017 by mpm
q
A platform-independent promise library for C++, implementing asynchronous continuations.
c++  concurrency 
february 2017 by mpm
cotire
CMake module to speed up builds
c++  build 
february 2017 by mpm
plf::colony
A colony is the highest-performance C++ template-based data container for high-modification scenarios with unordered data
c++  datastructure 
january 2017 by mpm
Reversing C++ Virtual Functions
I will go through a more precise description of the layout of vtables and how we can find them programmatically. I will also show how we can sometimes recover relationships between these vtables (and therefore, between the types they are associated with)
c++ 
january 2017 by mpm
cppdep
cppdep performs dependency analyses among components/packages/package groups of a large C/C++ project. This is a rewrite of dep_utils(adep/cdep/ldep), which is provided by John Lakos' book "Large-Scale C++ Software Design"
c++  build 
january 2017 by mpm
bitset2
std::bitset with constexpr implementations plus additional features.
c++  datastructure 
december 2016 by mpm
uThreads
A concurrent user-level thread library implemented in C++
concurrency  c++ 
december 2016 by mpm
folly/FixedString.h
Fixed-size string type, for constexpr string handling
c++ 
december 2016 by mpm
murrayc-suffix-tree
An experiment with modern C++, suffix trees, and Ukkonen's algorithm for suffix tree construction
c++  datastructure 
december 2016 by mpm
cpp17_headers
This repository features self-contained single-header implementations of some of the new facilities which will be added to the standard library in C++17, namely std::any, std::optional, std::string_view and std::variant.
c++ 
november 2016 by mpm
immer
immer is a library of persistent and immutable data structures written in C++.
c++  datastructure  concurrency 
november 2016 by mpm
libfuzzer-workshop
Repository for materials of "Modern fuzzing of C/C++ Projects" workshop
c++  testing 
november 2016 by mpm
Bloaty McBloatface
a size profiler for binaries
c++ 
november 2016 by mpm
CRTurn Queue
The first MPMC memory-unbounded wait-free queue with memory reclamation
concurrency  c++  non-blocking 
november 2016 by mpm
yomm11
Open multi-methods for C++11
c++ 
november 2016 by mpm
URCU ReadersVersion in C++
On the previous post we showed a new Userspace RCU (URCU) algorithm that can be implemented with just a atomics and the Java/C11/C++1x memory model. Here is the implementation in C++
concurrency  c++ 
september 2016 by mpm
Envoy
C++ L7 proxy and communication bus
c++  networking 
september 2016 by mpm
cpptoml
A header-only library for parsing TOML configuration files.
c++ 
september 2016 by mpm
autocheck
Header-only C++11 library for QuickCheck (and later, SmallCheck) testing.
c++  testing 
september 2016 by mpm
folly::Expected
Expected is like an Optional with extra state for reporting //why// the Expected is empty. Something like it is currently under review for inclusion in the C++ standard [1], and Andrei Alexandrescu has spoken about it [2]. It corresponds to the Either Monad in Haskell, where it is used as a return type of an API that has more than one failure mode
c++ 
august 2016 by mpm
An interview with Sean Parent
shared_ptr is a useful tool for creating other types, but shouldn’t appear in an interface ... avoid inheritance and owning pointers in your interface.
c++  design 
july 2016 by mpm
memory_order_consume
To get a understanding of the release-consume ordering, it's a good idea to compare it with the release-acquire ordering
c++  concurrency 
july 2016 by mpm
cmx
The CMX library follows similar principles as JMX (Java Management Extensions) and provides similar monitoring capabilities for C and C++ applications. It allows registering and exposing runtime information as simple counters, floating point numbers or character data. This can be subsequently used by external diagnostics tools for checking thresholds, sending alerts or trending
c++  monitoring  managability 
july 2016 by mpm
Encapsulation of asynchronous behaviour in distributed system of scripted autotests
This is an example how to create continuation-like monadic behaviour in C++11 (encapsulate async execution) which is used for specific example: writing asynchronous scripts for system of distributed autotests
c++  concurrency  testing 
july 2016 by mpm
parameter2
Modern version of boost.parameter enabling named parameters without macros and better compile time
c++ 
july 2016 by mpm
Luna
Luna is an idiomatically C++ wrapper for libmicrohttpd.
http  c++ 
july 2016 by mpm
Metashell
Metashell provides an interactive shell similar to the Python, Haskell and Erlang shells for template metaprogramming. It uses Clang to evaluate the metaprograms
c++ 
june 2016 by mpm
MinGW Distro
My MinGW distribution ("distro") is x64-native and currently contains GCC 6.1.0 and Boost 1.61.0
c++  windows 
may 2016 by mpm
doctest
doctest - The lightest feature rich C++ single header testing framework for unit tests and TDD
c++  testing 
may 2016 by mpm
RaftLib: C++ Stream Parallel Processing
RaftLib is a C++ Library for enabling stream/data-flow parallel computation. Using simple right shift operators (just like the C++ streams that you would use for string manipulation), you can link parallel compute kernels together. With RaftLib, we do away with explicit use of pthreads, std::thread, OpenMP, or any other parallel "threading" library
c++  concurrency  dataflow 
may 2016 by mpm
ltalloc
LightweighT Almost Lock-Less Oriented for C++ programs memory allocator
c++  memory  performance 
may 2016 by mpm
pigeon
pigeon - C++ high-performance micro web framework, built using libuv, a multi-platform support library with a focus on asynchronous I/O.
c++  web 
may 2016 by mpm
bounded_integer
bounded::integer requires all integers to have more explicit bounds. These bounds, however, can be calculated for the user by the compiler
c++ 
may 2016 by mpm
Locking in WebKit
Back in August 2015 we replaced all spinlocks and OS-provided mutexes in WebKit with the new WTF::Lock (WTF stands for Web Template Framework). We also replaced all OS-provided condition variables with WTF::Condition. These new primitives have some cool properties
concurrency  c++ 
may 2016 by mpm
XRay: A Function Call Tracing System
Debugging high throughput, low-latency C/C++ systems in production is hard. At Google we developed XRay, a function call tracing system that allows Google engineers to get accurate function call traces with negligible overhead when off and moderate overhead when on, suitable for services deployed in production. XRay enables efficient function call entry/exit logging with high accuracy timestamps, and can be dynamically enabled and disabled. This white paper describes the XRay tracing system and its implementation. It also describes future plans with open sourcing XRay and engaging open source communities
performance  c++  compiler 
may 2016 by mpm
callable_traits
CallableTraits is a C++11/C++14/C++17 header-only library for the inspection, synthesis, and decomposition of callable types. Whether it's calling conventions, const volatile &&, or container-like manipulation of parameter lists, CallableTraits provides all the tools you need to rid your codebase of function type specializations
c++ 
april 2016 by mpm
FakeIt
C++ mocking made easy. A simple yet very expressive, headers only library for c++ mocking.
c++  testing 
april 2016 by mpm
asio_sodium_socket
This is a header-only C++14 library implementing custom transport encryption using libsodium and Asio's stackless coroutines. It assumes pre-shared public keys and uses only the sealed box and crypto box constructs
c++  confidentiality  integrity  networking 
april 2016 by mpm
synth
Semantic syntax highlighting and hyperlinking of C/C++ source code with libclang
c++ 
april 2016 by mpm
timer-set.hh
A data structure designed for holding and expiring timers. It's optimized for timer non-delivery by deferring sorting cost until expiry time. The optimization is based on the observation that in many workloads timers are cancelled or rescheduled before they expire.
c++  time 
april 2016 by mpm
Heap Layers
Heap Layers provides a flexible, template-based infrastructure for composing high-performance memory allocators out of C++ "layers". Heap Layers makes it easy to write high-quality custom and general-purpose memory allocators
c++  memory 
march 2016 by mpm
WebSocket++
WebSocket++ is an open source (BSD license) header only C++ library that impliments RFC6455 The WebSocket Protocol. It allows integrating WebSocket client and server functionality into C++ programs
c++  protocol 
march 2016 by mpm
ctti: Compile Time Type Information for C++
This library aims to provide features similar to RTTI std::type_info at compile-time, currently constexpr type name and a constexpr replacement of std::type_index for indexing maps with types
c++ 
march 2016 by mpm
timeout.c: Tickless Hierarchical Timing Wheel
timeout.c implements hierarchical timing wheels as described in "Hashed and Hierarchical Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility" by George Varghese and Tony Lauck, ACM 089791-242-X/87/0011/0025, pp. 25-38. This data structure implements timers in O(1) worst-case time for all operations including insertion, deletion, and expiration
c++  concurrency 
march 2016 by mpm
endian-template
Work with big endian and little endian types in C++ without ever calling an “endian swap” function
c++ 
february 2016 by mpm
loguru
A lightweight C++ logging library
logging  c++ 
february 2016 by mpm
libtwiddle
libtwiddle is a data structure library aiming for speed on modern Linux x86-64 systems. The following data structures are implemented: bitmaps (dense & RLE); Bloom filters (standard & active-active); HyperLogLog; MinHash
c++  datastructure 
february 2016 by mpm
A customizable framework
In this post I want to describe a problem my colleagues have faced a couple of times recently, and show how it can be solved with C++. Here is the goal. We want to provide a function (or a set of overloaded functions) that would ‘do the right job’ for ‘practically any type’, or for ‘as many types as possible’.
c++ 
january 2016 by mpm
trompeloeil
Header only C++14 mocking framework
c++  testing 
january 2016 by mpm
Split-Ordered Lists: Lock-Free Extensible Hash Tables
We present the first lock-free implementation of an extensible hash table running on current architectures. Our algorithm provides concurrent insert, delete, and find operations with an expected O(1) cost. It consists of very simple code, easily implementable using only load, store, and compareand-swap operations. The new mathematical structure at the core of our algorithm is recursive splitordering, a way of ordering elements in a linked list so that they can be repeatedly “split ” using a single compare-and-swap operation. Metaphorically speaking, our algorithm differs from prior known algorithms in that extensibility is derived by “moving the buckets among the items ” rather than “the items among the buckets. ” Though lock-free algorithms are expected to work best in multiprogrammed environments, empirical tests we conducted on a large shared memory multiprocessor show that even in non-multiprogrammed environments, the new algorithm performs as well as the most efficient known lock-based resizable hash-table algorithm, and in high load cases it significantly outperforms it.
datastructure  c++  memory  non-blocking 
december 2015 by mpm
re2
RE2 is a fast, safe, thread-friendly alternative to backtracking regular expression engines like those used in PCRE, Perl, and Python. It is a C++ library
c++ 
december 2015 by mpm
string_id
Each object stores a hashed string value and a pointer to the database in which the original string value is stored. This allows retrieving the string value when needed while also getting the performance benefits from hashed strings
c++  performance 
december 2015 by mpm
pybind11
Seamless operability between C++11 and Python
python  c++ 
december 2015 by mpm
IncludeOS
A minimal, service oriented, includeable library operating system for cloud services
c++  unikernel 
december 2015 by mpm
joedb
joedb is a minimalist embedded relational database, where data is manipulated directly in the target programming language, without using SQL. In joedb, the journal of all modifications is stored to disk. This way, the whole data history is remembered, and it is possible to re-create any past state of the database. It is also a way to make the system extremely simple and fast
c++  database 
november 2015 by mpm
libcuckoo
libcuckoo provides a high-performance, compact hash table that allows multiple concurrent reader and writer threads
c++  concurrency  datastructure 
november 2015 by mpm
forestdb
ForestDB is a key-value storage engine that is developed by Couchbase Caching and Storage Team, and its main index structure is built from Hierarchical B+-Tree based Trie, called HB+-Trie
c++  storage  database 
november 2015 by mpm
Seastar
Seastar is an advanced C++ framework for high-performance server applications on modern hardware.
c++  concurrency 
november 2015 by mpm
« earlier      
per page:    204080120160

Copy this bookmark:



description:


tags: