checkedint 0.1.1

Checked integer math types and operations.


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:


This package provides sub packages which can be used individually:

checkedint:tests - Exhaustive tests for the checkedint package. Verifies correctness and measures performance.

Checked integer math module for the D Programming Language

As with many other languages (C, C++, Java, etc.), the D's built-in integer data types are quite difficult to use correctly.

It is tempting to think of int, for example, as if it were an actual mathematical integer. Doing so, however leads to buggy code due to unintuitive behaviour like:

  • Wrapped overflow
  • Reinterpretation of signed values as unsigned in mixed expressions
  • Floating Point Exceptions which aren't Exceptions and have nothing to do with floating point
  • Formally "undefined behaviour" with some inputs for various operations

This checkedint module provides alternative operations and types that protect the user from most difficulties of this sort, while maintaining good performance (provided that inlining and optimizations are enabled).

The main downsides to using checkedint are:

  • Some added friction when interfacing to non-checkedint-aware code.
  • Slower compilation and larger binaries.

I plan to add more detailed information here, as well as extensive inline documentation to the code itself, very soon.

Installation

WARNING: checkedint triggers a serious codegen bug in DMD. Until issue 15573 is fixed, for doing anything important with checkedint you MUST use LDC or GDC.

This module is available as a DUB package: http://code.dlang.org/packages/checkedint

Authors:
  • Thomas Stuart Bockman
Sub packages:
checkedint:tests
Dependencies:
none
Versions:
0.7.0 2020-Apr-18
0.6.1 2020-Apr-18
0.6.0 2020-Apr-18
0.5.3 2016-Jun-09
0.5.2 2016-Jun-08
Show all 21 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 1 downloads this month

  • 118 downloads total

Score:
0.6
Short URL:
checkedint.dub.pm