Tests, doc-coverage, dependencies
This commit is contained in:
parent
07b1af11d2
commit
54f951bb8b
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -4,3 +4,4 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
compiled/
|
compiled/
|
||||||
/doc/
|
/doc/
|
||||||
|
/coverage/
|
|
@ -51,8 +51,10 @@ before_script:
|
||||||
# packages without it getting stuck on a confirmation prompt.
|
# packages without it getting stuck on a confirmation prompt.
|
||||||
script:
|
script:
|
||||||
- raco test -x -p tr-immutable
|
- raco test -x -p tr-immutable
|
||||||
|
- if test $RACKET_VERSION != 6.0 -a $RACKET_VERSION != 6.1; then raco setup --check-pkg-deps --pkgs tr-immutable; fi
|
||||||
|
- raco pkg install --deps search-auto doc-coverage
|
||||||
|
- raco doc-coverage tr-immutable
|
||||||
|
- raco pkg install --deps search-auto cover cover-codecov
|
||||||
|
- raco cover -s doc -s test -s main -f codecov -d $TRAVIS_BUILD_DIR/coverage .
|
||||||
|
|
||||||
after_success:
|
after_success:
|
||||||
- raco setup --check-pkg-deps --pkgs tr-immutable
|
|
||||||
- raco pkg install --deps search-auto cover cover-coveralls
|
|
||||||
- raco cover -b -f coveralls -d $TRAVIS_BUILD_DIR/coverage .
|
|
||||||
|
|
8
info.rkt
8
info.rkt
|
@ -1,8 +1,12 @@
|
||||||
#lang info
|
#lang info
|
||||||
(define collection "tr-immutable")
|
(define collection "tr-immutable")
|
||||||
(define deps '("base"
|
(define deps '("base"
|
||||||
"rackunit-lib"))
|
"rackunit-lib"
|
||||||
(define build-deps '("scribble-lib" "racket-doc"))
|
"typed-racket-lib"
|
||||||
|
"typed-racket-more"))
|
||||||
|
(define build-deps '("scribble-lib"
|
||||||
|
"racket-doc"
|
||||||
|
"typed-racket-doc"))
|
||||||
(define scribblings '(("scribblings/tr-immutable.scrbl" ())))
|
(define scribblings '(("scribblings/tr-immutable.scrbl" ())))
|
||||||
(define pkg-desc "Description Here")
|
(define pkg-desc "Description Here")
|
||||||
(define version "0.0")
|
(define version "0.0")
|
||||||
|
|
21
main.rkt
21
main.rkt
|
@ -1,15 +1,14 @@
|
||||||
#lang typed/racket/base
|
#lang typed/racket/base
|
||||||
|
|
||||||
(module unsafe racket/base
|
|
||||||
;; TODO: make this a vector in the implementation, but make TR think it's a
|
|
||||||
;; list (via a contract?)
|
|
||||||
(provide (struct-out ivector))
|
|
||||||
(struct ivector (v) #:mutable)
|
|
||||||
)
|
|
||||||
|
|
||||||
(require typed/racket/unsafe)
|
(require typed/racket/unsafe)
|
||||||
(unsafe-require/typed 'unsafe
|
|
||||||
[#:struct (A) ivector ([v : (Listof A)])
|
|
||||||
#:type-name IVector])
|
|
||||||
|
|
||||||
(make-predicate (IVector Integer))
|
(provide IVectorof
|
||||||
|
(rename-out [new-ivector ivector]))
|
||||||
|
|
||||||
|
(unsafe-require/typed tr-immutable/private/unsafe
|
||||||
|
[#:struct (A) ivector ([v : (Listof A)])
|
||||||
|
#:type-name IVectorof])
|
||||||
|
|
||||||
|
(: new-ivector (∀ (A) (→ A * (IVectorof A))))
|
||||||
|
(define (new-ivector . vs)
|
||||||
|
(ivector vs))
|
6
private/unsafe.rkt
Normal file
6
private/unsafe.rkt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
;; TODO: make this a vector in the implementation, but make TR think it's a
|
||||||
|
;; list (via a contract?)
|
||||||
|
(provide (struct-out ivector))
|
||||||
|
(struct ivector (v) #:mutable)
|
|
@ -1,10 +1,22 @@
|
||||||
#lang scribble/manual
|
#lang scribble/manual
|
||||||
@require[@for-label[tr-immutable
|
@require[@for-label[tr-immutable
|
||||||
racket/base]]
|
typed/racket/base]]
|
||||||
|
|
||||||
@title{tr-immutable}
|
@title{tr-immutable}
|
||||||
@author{georges}
|
@author{georges}
|
||||||
|
|
||||||
@defmodule[tr-immutable]
|
@defmodule[tr-immutable]
|
||||||
|
|
||||||
Package Description Here
|
This library implements immutable wrappers for @racket[vector] and
|
||||||
|
@racket[box], in a way that @racketmodname[typed/racket] is able to recognise.
|
||||||
|
This makes it possible to write @racket[(make-predicate (IVectorof Integer))]
|
||||||
|
in current versions of Typed/Racket.
|
||||||
|
|
||||||
|
@defform[#:kind "type"
|
||||||
|
(IVectorof A)]{
|
||||||
|
The type for immutable vectors containing elements of type @racket[A].
|
||||||
|
}
|
||||||
|
|
||||||
|
@defproc[(ivector [v : A] ...) (IVectorof A)]{
|
||||||
|
The type for immutable vectors containing elements of type @racket[A].
|
||||||
|
}
|
5
test/test-vector.rkt
Normal file
5
test/test-vector.rkt
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
#lang typed/racket
|
||||||
|
|
||||||
|
(require tr-immutable
|
||||||
|
typed/rackunit)
|
||||||
|
(check-pred (make-predicate (IVectorof Positive-Byte)) (ivector 1 2 3))
|
Loading…
Reference in New Issue
Block a user