Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce cats-kernel and remove algebra dependency #1001

Merged
merged 19 commits into from
Apr 29, 2016
Merged

Introduce cats-kernel and remove algebra dependency #1001

merged 19 commits into from
Apr 29, 2016

Commits on Apr 25, 2016

  1. Get algebra-core added to Cats.

    This commit sets up the basic SBT subproject configuration and
    moves the core algebra type classes into the cats.kernel package.
    non committed Apr 25, 2016
    Configuration menu
    Copy the full SHA
    03aad13 View commit details
    Browse the repository at this point in the history
  2. Port relevant instances from algebra.std to cats.kernel.std.

    Algebra doesn't currently provide generic semigroups for
    number types, so this commit doesn't have any of those
    either. Cats is already working around this so that
    shouldn't be a big change.
    non committed Apr 25, 2016
    Configuration menu
    Copy the full SHA
    38a3dc8 View commit details
    Browse the repository at this point in the history
  3. Get the relevant bits of algebra.laws ported over.

    There are a few things here:
    
     1. Many of algebra's interesting laws apply to rings/lattices.
     2. We introduce a (laws-only) dependency on catalysts-platform.
     3. Unlike Cats, we'll run the tests in kernel-laws' tests.
    non committed Apr 25, 2016
    1 Configuration menu
    Copy the full SHA
    157710f View commit details
    Browse the repository at this point in the history
  4. Get law tests compiling but not running.

    This commit ports over the law tests which make sense in
    the context of cats-kernel. For some reason the tests aren't
    being run right now, but at least they compile.
    non committed Apr 25, 2016
    Configuration menu
    Copy the full SHA
    ceb94cc View commit details
    Browse the repository at this point in the history
  5. Get tests running and passing.

    non committed Apr 25, 2016
    Configuration menu
    Copy the full SHA
    673d045 View commit details
    Browse the repository at this point in the history
  6. Fix tests in JS.

    non committed Apr 25, 2016
    Configuration menu
    Copy the full SHA
    d19a098 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    3378af3 View commit details
    Browse the repository at this point in the history
  8. Remove algebra.

    After this commit, the intention is that none of the algebra
    types are used. The tests pass and things seem to work. Next
    step is to actually remove the algebra dependency.
    non committed Apr 25, 2016
    Configuration menu
    Copy the full SHA
    34e206a View commit details
    Browse the repository at this point in the history
  9. Remove the algebra dependency.

    After clean, validate passed. I think this branch is good to go.
    non committed Apr 25, 2016
    Configuration menu
    Copy the full SHA
    041a06a View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    f8e3910 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    e6bd8fe View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    4b8b789 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    ada6b75 View commit details
    Browse the repository at this point in the history
  14. Improve testing, remove lawless instance.

    This commit fixes some problems which better testing
    exposed. The biggest was that when we moved from the
    "sparse vector" interpretation of maps to the "strict"
    interpretation some of our instances became unlawful.
    We can't define a group directly on maps because we
    can't enforce the equivalence of "absent key" and
    "present key with empty value".
    erik-stripe committed Apr 25, 2016
    Configuration menu
    Copy the full SHA
    de8a2fc View commit details
    Browse the repository at this point in the history

Commits on Apr 26, 2016

  1. Optimize eqv/partialCompare/compare using eq where relevant.

    This is an optimization that we've known about for awhile and
    that Oscar suggested should be added to some of the instances
    for Eq, PartialOrder, and Order (those where the
    cost of doing the check can be linear).
    erik-stripe committed Apr 26, 2016
    Configuration menu
    Copy the full SHA
    fc0acf2 View commit details
    Browse the repository at this point in the history
  2. Address some of Cody's review comments.

    This does the following:
    
     1. Fixes a lot of return types.
     2. Removes cats.kernel.std.array
     3. Removes the unused cats.kernel.Priority
     4. Improves some comments
     5. Makes a small efficiency improvement for Monoid[Map[K, V]]
    erik-stripe committed Apr 26, 2016
    Configuration menu
    Copy the full SHA
    5f408e1 View commit details
    Browse the repository at this point in the history
  3. Merge remote-tracking branch 'upstream/master' into topic/kernel2

    This fixes the merge conflicts and also re-removes algebra.
    erik-stripe committed Apr 26, 2016
    Configuration menu
    Copy the full SHA
    d2dcb23 View commit details
    Browse the repository at this point in the history

Commits on Apr 27, 2016

  1. Change function traits to be abstract classes.

    This commit also adds some "missing" function traits
    (as abstract classes) and replaces an instance of
    c.isNaN with isNaN(c) for performance.
    erik-stripe committed Apr 27, 2016
    Configuration menu
    Copy the full SHA
    8fe8938 View commit details
    Browse the repository at this point in the history

Commits on Apr 29, 2016

  1. Configuration menu
    Copy the full SHA
    aac4652 View commit details
    Browse the repository at this point in the history