Skip to content
/ oarphkit Public

OarphKit is a collection of C++ utilities with an emphasis on portability.

License

Notifications You must be signed in to change notification settings

pwais/oarphkit

Repository files navigation

OarphKit

             __________________________
            < OarphKit!! Oarph! Oarph! >
            <       with Whale Test!!  >
             --------------------------
               /
              /
        -~~~~-
       |O __ O|
    -__|_\__/_|__-
    ---(__/\__)---
      /  ~--~  \
     /  | \/ |  \
    |   | /\ |   |
  _/ /\__    __/\ \_
~~~~~    ~~~~    ~~~~~

License

OarphKit is a collection of C++ utilities with an emphasis on portability.

Highlights:

  • FLi: Functor (meta) Library. A framework for building portable Functor-based libraries.
  • SVMap & SVStruct: A hashmap-based data structure that brings many of the architectural advantages of Python's dict to C++.
  • Serialization utilities (e.g. for interoperating with Google Protobuf). A DynamicProto utility for Protobuf-compatible data that has an implicit (usage-defined) schema.
  • IArray: impute a standard array interface upon any buffer.
  • Stringify: Pretty-print anything.
  • Concise, single-header assert and logging utilities.
  • A variety of compile-time flags that trade between safety and performance. The $ ./bootstrap.py --whale-test feature ensures the correctness of unit tests under all 2^N combinations of flags.

Dev Quickstart

OarphKit supports Linux, Mac OS X, and similar platforms. OarphKit does not currently support Windows. In a checkout of the repo, run $ ./bootstrap.py --all to build in-place; try $ ./bootstrap.py --indocker to build inside a container.

Note that Oarphkit uses cmake globs to identify compilable source files. If you add a file, you must $ touch CMakeLists.txt and re-generate your Makefiles (e.g. via $ ./bootstrap.py --build).

Profiling

For Mac OS X, we recommend using valgrind with qcachegrind. Use --dsymutil=yes to ensure callgrind output includes useful debug symbol information.

$ sudo port install valgrind qcachegrind graphviz
$ ./bootstrap --build
$ valgrind --dsymutil=yes --tool=callgrind build/oarphkit_test
$ open qcachegrind  # Open the build/callgrind.out.$pid file generated

About

OarphKit is a collection of C++ utilities with an emphasis on portability.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published