~ruther/guix-local

15ff22eb81929cdcbce556747ca31c3b1f27ac9b — Patrick Norton 4 months ago 8f14e79
gnu: Add go-github-com-bradenaw-juniper.

* gnu/packages/golang-build.scm (go-github-com-bradenaw-juniper): New
variable.

Change-Id: I0b7998e7ea2c7879aa681a7958bf1dc45728b449
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
1 files changed, 60 insertions(+), 0 deletions(-)

M gnu/packages/golang-build.scm
M gnu/packages/golang-build.scm => gnu/packages/golang-build.scm +60 -0
@@ 88,6 88,66 @@ expression evaluation, enabling different applications to more easily
interoperate.")
    (license license:asl2.0)))

(define-public go-github-com-bradenaw-juniper
  (package
    (name "go-github-com-bradenaw-juniper")
    (version "0.15.3")
    (source
     (origin
       (method git-fetch)
       (uri (git-reference
              (url "https://github.com/bradenaw/juniper")
              (commit (string-append "v" version))))
       (file-name (git-file-name name version))
       (sha256
        (base32 "1dykj5fdxsml61hdibbsk7wnp9ckvrcdyzbmcq0z1di4lw8b8kzl"))))
    (build-system go-build-system)
    (arguments
     (list
      ;; "non-constant format string in call to (*testing.common).Logf"
      #:test-flags
      #~(list "-vet=off")
      #:skip-build? #t
      #:import-path "github.com/bradenaw/juniper"))
    (propagated-inputs (list go-golang-org-x-sync go-golang-org-x-exp))
    (home-page "https://github.com/bradenaw/juniper")
    (synopsis "Extensions to the Go standard library using generics")
    (description
     "Juniper is a library of extensions to the Go standard library using generics,
including containers, iterators, and streams.

@itemize
@item @code{container/tree} contains a @code{Map} and @code{Set} that keep
elements in sorted order. They are implemented using a B-tree, which performs
better than a binary search tree.
@item @code{container/deque} contains a double-ended queue implemented with a
ring buffer.
@item @code{container/xheap} contains a min-heap similar to the standard
library's @code{container/heap} but more ergonomic, along with a
@code{PriorityQueue} that allows setting priorities by key.
@item @code{container/xlist} contains a linked-list similar to the standard
library's @code{container/list}, but type-safe.
@item @code{xslices} contains some commonly-used slice operations, like
@code{Chunk}, @code{Reverse}, @code{Clear}, and @code{Join}.
@item @code{iterator} contains an iterator interface used by the containers,
along with functions to manipulate them, like @code{Map}, @code{While}, and
@code{Reduce}.
@item @code{stream} contains a stream interface, which is an iterator that can
fail. Useful for iterating over collections that require I/O. It has most of
the same combinators as @code{iterator}, plus some extras like @code{Pipe} and
@code{Batch}.
@item @code{parallel} contains some shorthand for common uses of goroutines to
process slices, iterators, and streams in parallel, like
@code{parallel.MapStream}.
@item @code{xsort} contains extensions to the standard library package
@code{sort}. Notably, it also has the definition for @code{xsort.Less}, which
is how custom orderings can be defined for sorting and also for ordered
collections like from @code{container/tree}.
@item You can probably guess what's in the packages @code{xerrors},
@code{xmath}, @code{xmath/xrand}, @code{xsync}, and @code{xtime}.
@end itemize")
    (license license:expat)))

(define-public go-github-com-ebitengine-purego
  (package
    (name "go-github-com-ebitengine-purego")