Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Rationale

Boxed numbers are a performance disaster, both for operations and, more important, for storage/access. Clojure has support for primitives in local contexts, but with some semantic inconsistencies with boxed arithmetic, and no support for primitives across function call boundaries.

Plan

  • Normalize semantics between operations involving primitives and boxed numbers
  • Support collections of primitives
  • Support arguments and return types of primitives
    • longs/doubles only
  • Support higher-order ops involving primitives

Issues

  • Involves some breaking changes
  • How to integrate with important abstractions?