Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
394 commits
Select commit Hold shift + click to select a range
624fe64
gmm
ranjitjhala Aug 13, 2018
2e3f0dd
some progress with absref
ranjitjhala Aug 13, 2018
7d3ef71
see TODO.md
ranjitjhala Aug 13, 2018
630889a
more progress with absref
ranjitjhala Aug 13, 2018
6feacd7
gmm
ranjitjhala Aug 13, 2018
f81e76f
dont forget txParam inside ofBareType
ranjitjhala Aug 14, 2018
cc7c02c
properly 'Expand' the BareRTAlias
ranjitjhala Aug 15, 2018
bb9f8cb
next: fst, snd etc.
ranjitjhala Aug 15, 2018
bfb8bba
done fst, snd. onto the odd unification bug for reflect
ranjitjhala Aug 16, 2018
1e823e2
update reflection benchmarks to use NewProofCombs; should work
ranjitjhala Aug 16, 2018
31100cb
fix coercion -- sortSubst in refinements
ranjitjhala Aug 16, 2018
6b3e042
cleanup tests
ranjitjhala Aug 17, 2018
1557e48
yay, Prover tests should work
ranjitjhala Aug 17, 2018
688ab14
restore all 'Unit' tests
ranjitjhala Aug 17, 2018
a94336e
reorg tests
ranjitjhala Aug 17, 2018
08f676c
blorb
ranjitjhala Aug 17, 2018
f8131cd
asd
ranjitjhala Aug 17, 2018
1c5d9b1
asd
ranjitjhala Aug 17, 2018
31e4908
oops, pass Bare.Env to expand
ranjitjhala Aug 17, 2018
39d4f49
shuffle order of expandqualify
ranjitjhala Aug 17, 2018
1328ff9
blorb
ranjitjhala Aug 18, 2018
9f2d7cf
progress with realprops, next div
ranjitjhala Aug 19, 2018
eef6a15
use holes liberally in .spec files
ranjitjhala Aug 19, 2018
8737c12
ok, fix next failing Micro tests
ranjitjhala Aug 21, 2018
655c3a2
cleanup
ranjitjhala Aug 22, 2018
7e312cc
grr, ExactFunApp
ranjitjhala Aug 22, 2018
055ef98
lets add binders to expand signature
ranjitjhala Aug 23, 2018
0e13215
oops, put the binds on Qualify
ranjitjhala Aug 23, 2018
3cdce24
don't qualify bound vars
ranjitjhala Aug 23, 2018
f355234
prioritize local names in resolve
ranjitjhala Aug 24, 2018
378ce88
next: dont change tyvars in plugHoles (classes)
ranjitjhala Aug 24, 2018
89ce274
wtf
ranjitjhala Aug 27, 2018
4f702e9
still fixing plugHoles
ranjitjhala Aug 28, 2018
41328c0
makePluggedDataCon returns junk freevars
ranjitjhala Aug 28, 2018
0ac56f3
next: lets add tyvars to DataCtor
ranjitjhala Aug 29, 2018
5ea65bd
plugHoles seems to work, onto the classes
ranjitjhala Aug 29, 2018
09bafd6
next: instances, _fixme_gsDicts
ranjitjhala Aug 29, 2018
a1fa483
rename tests
ranjitjhala Aug 29, 2018
eaff3bf
yay, insts seem to work
ranjitjhala Aug 29, 2018
7e69143
STMonad fails; trace makeDictionaryName
ranjitjhala Aug 29, 2018
0e1d950
yay, STMonad works
ranjitjhala Aug 30, 2018
49a53b5
add descriptions for Pspec datactors
ranjitjhala Aug 30, 2018
c2db086
pprint Bspec
ranjitjhala Aug 30, 2018
3be3d5a
yay, ParserTests pass
ranjitjhala Aug 30, 2018
a515ad6
yay, ParserTests pass
ranjitjhala Aug 30, 2018
ad9d8ac
add two tests
ranjitjhala Aug 30, 2018
387d47b
ugh. deal with variable capture in aliases
ranjitjhala Aug 30, 2018
97e37be
nuke silly test
ranjitjhala Aug 30, 2018
d60d0ae
see fail.txt for next
ranjitjhala Aug 30, 2018
3b09ef7
abref mystery in tests-absref-pos-state00.hs
ranjitjhala Aug 31, 2018
a7b28b1
abref mystery in tests-absref-pos-state00.hs
ranjitjhala Aug 31, 2018
4481d09
move test
ranjitjhala Aug 31, 2018
0c5a4a2
next: Assume01.hs
ranjitjhala Aug 31, 2018
1fcb40f
next: Assume01.hs
ranjitjhala Aug 31, 2018
41895d1
see fail.txt for next
ranjitjhala Aug 31, 2018
7086a5e
yay, hiddenmethod works
ranjitjhala Aug 31, 2018
6c57489
fixed Ord -- add more stuff from all knowTyThings
ranjitjhala Aug 31, 2018
35f24ba
done: using, next newtype
ranjitjhala Sep 1, 2018
12c88e2
done: newtypes
ranjitjhala Sep 2, 2018
f8b4653
oops, broken sorts for 'Pred a' and the actual thing see fail.txt
ranjitjhala Sep 2, 2018
585ab14
hmph. restore BOTH plugHoles_old, plugHoles_new
ranjitjhala Sep 4, 2018
d4df04d
oops, use CORRECT Ghc.Var ... (the one from CoreBind, not TyThing if …
ranjitjhala Sep 4, 2018
e61ffbe
onto Capture01
ranjitjhala Sep 5, 2018
f495189
ok capture
ranjitjhala Sep 5, 2018
4f1fa43
next: local02
ranjitjhala Sep 5, 2018
288232f
haha
ranjitjhala Sep 5, 2018
d6d7732
haha
ranjitjhala Sep 5, 2018
2104220
haha
ranjitjhala Sep 5, 2018
9834048
ugh. now what Fulcrum.hs
ranjitjhala Sep 6, 2018
81560f5
yay, Fulcrum.hs works
ranjitjhala Sep 6, 2018
39bfa78
yay, Fulcrum.hs works
ranjitjhala Sep 6, 2018
d4a52bc
yay, Fulcrum.hs works
ranjitjhala Sep 6, 2018
8377a96
yay, Fulcrum.hs works
ranjitjhala Sep 6, 2018
454dd81
add Bare.Check
ranjitjhala Sep 7, 2018
cc4bf4b
asd Merge branch 'phadej-ghc-8.4' of https://github.com/ucsd-progsys/…
ranjitjhala Sep 7, 2018
9e322b1
added post-proc / checkGhcSpec
ranjitjhala Sep 7, 2018
67996d9
add check-derived flag, OFF by default
ranjitjhala Sep 7, 2018
f64125d
add check-derived flag, OFF by default
ranjitjhala Sep 7, 2018
f88415f
yay, jeff.hs works
ranjitjhala Sep 7, 2018
0953bee
yay, jeff.hs works
ranjitjhala Sep 7, 2018
33f41fc
asd
ranjitjhala Sep 8, 2018
fa01514
dont qualify measure binders
ranjitjhala Sep 8, 2018
78835c8
dont qualify measure binders
ranjitjhala Sep 8, 2018
dc1172b
dont qualify measure binders
ranjitjhala Sep 8, 2018
05b1546
asd
Sep 8, 2018
d28325e
fix sig for 'plen'
ranjitjhala Sep 8, 2018
c91f25c
throw errors while plugging
ranjitjhala Sep 8, 2018
88e05ba
throw errors while plugging
ranjitjhala Sep 8, 2018
cd2307a
embed word as int
ranjitjhala Sep 8, 2018
d7fc670
asd
ranjitjhala Sep 8, 2018
503ec92
don't generalize hs-free vars
ranjitjhala Sep 9, 2018
39e5108
add todo-rebare tests
ranjitjhala Sep 9, 2018
adcaaa8
misc fixes
ranjitjhala Sep 9, 2018
cf64554
don't generalize hs-free vars
ranjitjhala Sep 9, 2018
48b7c52
qualify external assumes
ranjitjhala Sep 9, 2018
6decd74
move LocalSpec into micro
ranjitjhala Sep 9, 2018
618ea2d
move LocalSpec into micro
ranjitjhala Sep 9, 2018
39c7201
move LocalSpec into micro
ranjitjhala Sep 9, 2018
d4971ea
remove hquals from Base
ranjitjhala Sep 9, 2018
8ec75a4
yay, esop-Base.hs works
ranjitjhala Sep 10, 2018
1810f6e
yay, esop-Base.hs works
ranjitjhala Sep 10, 2018
930ad24
bag tests work
ranjitjhala Sep 10, 2018
2db04ae
fully qualify sorts in measure definitions
ranjitjhala Sep 10, 2018
01ab3a1
pick nearest of global and local definitions
ranjitjhala Sep 10, 2018
24efe36
fix parser test
ranjitjhala Sep 10, 2018
64280b2
put makeRecordSelectorSigs into the gsAsmSigs
ranjitjhala Sep 10, 2018
0fd1621
OK to have multiple 'assume' sigs for field-selector -- if SAME reftype
ranjitjhala Sep 10, 2018
ecc677e
fix RecordAccessor regression
ranjitjhala Sep 11, 2018
2704490
fix ErrTySpec errors
ranjitjhala Sep 11, 2018
9738f55
switch on term-expr checks...
ranjitjhala Sep 11, 2018
7548e1e
fix ErrTySpec errors
ranjitjhala Sep 11, 2018
b9847d8
switch on term-expr checks...
ranjitjhala Sep 11, 2018
8175294
fix ErrTySpec errors
ranjitjhala Sep 11, 2018
5d9f660
all but one Error-Messages
ranjitjhala Sep 11, 2018
5681546
whats up with ple-neg-BinahQuery
ranjitjhala Sep 11, 2018
af5debd
whats up with ple-neg-BinahQuery
ranjitjhala Sep 11, 2018
1c21af8
wtf
ranjitjhala Sep 11, 2018
fc6d67b
Ord Symbol must be prefix-monotonic
ranjitjhala Sep 12, 2018
0e78520
clean forallZ
ranjitjhala Sep 12, 2018
64c2dde
fix parser tests
ranjitjhala Sep 12, 2018
1cf0041
move into todo-rebare
ranjitjhala Sep 12, 2018
528a081
move into todo-rebare
ranjitjhala Sep 12, 2018
c4b5305
triage unit-neg tests [termination+class+returnstrata]
ranjitjhala Sep 12, 2018
d321343
triage unit-neg tests [termination+class+returnstrata]
ranjitjhala Sep 12, 2018
19cc005
Use (Ord Text) instance for comparing Symbol
ranjitjhala Sep 12, 2018
a315926
guard makeExactDC by ... exactDC flag
ranjitjhala Sep 13, 2018
7949c72
[NOTE:Prioritize-Home-Spec]
ranjitjhala Sep 13, 2018
81932ba
[NOTE:Prioritize-Home-Spec]
ranjitjhala Sep 13, 2018
823e18d
Use CoreVisitor to check local sigs
ranjitjhala Sep 13, 2018
e74ccfc
whats up with classes?
ranjitjhala Sep 13, 2018
58503fa
check classes and instances; only DERIVED under --check-derived
ranjitjhala Sep 13, 2018
70cd91e
next: Inst01.hs
ranjitjhala Sep 14, 2018
c77fb29
adding micro tests for 'return'
ranjitjhala Sep 14, 2018
e224306
adding micro tests for termination
ranjitjhala Sep 14, 2018
2e36b83
add termination tests
ranjitjhala Sep 14, 2018
c96d8e5
add termination tests
ranjitjhala Sep 14, 2018
1057ec7
hmm termination micro tests pass
ranjitjhala Sep 14, 2018
97c95a7
adding micro tests for termination
ranjitjhala Sep 14, 2018
d65e9e6
move 'return' stuff into 'pattern' directory
ranjitjhala Sep 14, 2018
68eda2d
move 'return' stuff into 'pattern' directory
ranjitjhala Sep 14, 2018
aee8d72
asd
ranjitjhala Sep 15, 2018
9092027
asd
ranjitjhala Sep 15, 2018
6bbb576
restore 'decrease' support
ranjitjhala Sep 15, 2018
caf7543
fix termination some tests
ranjitjhala Sep 16, 2018
0d8fbe0
fix termination some tests
ranjitjhala Sep 16, 2018
5aeb684
shuffle test
ranjitjhala Sep 16, 2018
74f8683
disable PatReturn
ranjitjhala Sep 20, 2018
7994924
blerb
ranjitjhala Sep 20, 2018
09779c4
misc fixes to vector-algos; icfp* works
ranjitjhala Sep 20, 2018
4535865
fff
ranjitjhala Sep 20, 2018
a5c20b2
next: AmericanFlag
ranjitjhala Sep 22, 2018
073f259
next: AmericanFlag wierdness
ranjitjhala Sep 22, 2018
8cefb82
fix names in BinarySearch* ...
ranjitjhala Sep 22, 2018
eda10ec
fix RG
ranjitjhala Sep 23, 2018
d85d82f
move Data.Int.* to GHC.Int.*
ranjitjhala Sep 24, 2018
f5e1f6f
move Data.Int.* to GHC.Int.*
ranjitjhala Sep 24, 2018
9600972
save sigs in .bspec files; force check dependency
ranjitjhala Sep 26, 2018
092addb
save sigs in .bspec
ranjitjhala Sep 26, 2018
9ed527c
remove junk from Bare.hs
ranjitjhala Sep 27, 2018
71cb13f
makeTExprs together with tySigs
ranjitjhala Sep 27, 2018
d5d781d
update lf
ranjitjhala Sep 27, 2018
1d8b9f3
prioritize manually written specs for meet
ranjitjhala Sep 27, 2018
7788e78
save RTAliases in .bspec too
ranjitjhala Sep 27, 2018
c1a6a6c
shuffle tests
ranjitjhala Sep 28, 2018
3c6cea6
shuffle tests
ranjitjhala Sep 28, 2018
3d3825e
next: D.B.Lazy.hs; eq/cmp hiddden
ranjitjhala Sep 28, 2018
6120d9e
twiddle
ranjitjhala Sep 29, 2018
118e3eb
yay, Data/ByteString.hs works
ranjitjhala Sep 30, 2018
a4c8857
next: rejigger test to run BS benchmarks in order
ranjitjhala Sep 30, 2018
4ba8771
yay, Data/ByteString.hs works
ranjitjhala Sep 30, 2018
1559116
some progress with BS
ranjitjhala Oct 1, 2018
8a84b8b
yay, Data/ByteString.T.hs works
ranjitjhala Oct 1, 2018
b7eb4a6
more progress on BS
ranjitjhala Oct 2, 2018
6321c97
done BS.
ranjitjhala Oct 2, 2018
7bf8d5c
hmm, DONT generalize the type-aliases when normalizing
ranjitjhala Oct 2, 2018
5f038fe
DO NOT generalize the type-aliases when normalizing (added tests)
ranjitjhala Oct 2, 2018
73069e7
yay, two text tests work
ranjitjhala Oct 2, 2018
75329cd
add failing tests for hidden data
ranjitjhala Oct 2, 2018
38f0eb3
sigh
ranjitjhala Oct 2, 2018
ae242c4
sigh
ranjitjhala Oct 3, 2018
8a71973
sigh
ranjitjhala Oct 3, 2018
c89a233
uppercase names...
ranjitjhala Oct 3, 2018
57a26ee
factor out some TEXT issues into micro-testS
ranjitjhala Oct 3, 2018
5627b32
yay, two text tests remain.
ranjitjhala Oct 3, 2018
f4bb5c6
don't delete .bspec files when walking directory...
ranjitjhala Oct 4, 2018
9c21589
icfp-benchmarks work; back to goto
ranjitjhala Oct 4, 2018
05e464c
et tu text?
ranjitjhala Oct 4, 2018
37b9be4
icfp-benchmarks work; back to goto
ranjitjhala Oct 4, 2018
cadd3ac
tidy
ranjitjhala Oct 4, 2018
95954bf
tidy
ranjitjhala Oct 4, 2018
8b2ddac
ok, what remains?
ranjitjhala Oct 4, 2018
b2fb3f1
tidy
ranjitjhala Oct 4, 2018
1f076d6
tidy
ranjitjhala Oct 4, 2018
9e599c7
move unsupported TODO-REBARE-CLASS tests away
ranjitjhala Oct 4, 2018
fa72109
asd
ranjitjhala Oct 4, 2018
2c9b1e3
move test
ranjitjhala Oct 4, 2018
806d998
move test
ranjitjhala Oct 4, 2018
2a41c22
blub
ranjitjhala Oct 4, 2018
e105372
ok, what remains?
ranjitjhala Oct 4, 2018
6cd06bf
fix Loo
ranjitjhala Oct 5, 2018
76c172a
fix LocalSpecImp
ranjitjhala Oct 5, 2018
315c6d2
ok, what remains?
ranjitjhala Oct 5, 2018
4f918f6
about to SURGERY on DsExpr.hs / Desugar
ranjitjhala Oct 5, 2018
8c5cb7b
FINISHED SURGERY on DsExpr.hs / Desugar (yay!)
ranjitjhala Oct 5, 2018
8f68235
check if all tests pass on goto?
ranjitjhala Oct 5, 2018
19ecfe9
check if all tests pass on goto?
ranjitjhala Oct 5, 2018
711062a
yay, all tests pass on goto -- except todo-rebare etc., wtf circle?
ranjitjhala Oct 5, 2018
2eafef5
Update config.yml
gridaphobe Oct 6, 2018
b76c2b7
Update config.yml
gridaphobe Oct 6, 2018
2b9ad84
only check-termination for vars that FAIL struct term
ranjitjhala Oct 6, 2018
e22616e
only check-termination for vars that FAIL struct term
ranjitjhala Oct 6, 2018
ab49b34
only check-termination for vars that FAIL struct term
ranjitjhala Oct 6, 2018
f867b77
Merge pull request #1359 from ucsd-progsys/gridaphobe-patch-1
ranjitjhala Oct 6, 2018
d01ac28
disable circle threading; it breaks test-dependencies
ranjitjhala Oct 6, 2018
7706860
disable circle threading; it breaks test-dependencies
ranjitjhala Oct 6, 2018
3efb1fa
disable circle threading; it breaks test-dependencies
ranjitjhala Oct 6, 2018
eb5261a
asd
ranjitjhala Oct 6, 2018
d390978
rename Bare.Spec to Bare.Class
ranjitjhala Oct 6, 2018
7ad1f32
all good.
ranjitjhala Oct 6, 2018
07aee74
temp ignore ByteString.T.hs
ranjitjhala Oct 6, 2018
229ce4b
don't log; fix the haddock
ranjitjhala Oct 6, 2018
6810767
don't eschew HO binders; they appear in refinements c.f. PruneHO.hs
ranjitjhala Oct 6, 2018
34f4399
temp ignore ByteString.T.hs
ranjitjhala Oct 6, 2018
d416d72
keep all HO binders around
ranjitjhala Oct 6, 2018
c9fb918
rename test
ranjitjhala Oct 6, 2018
22ad20f
fiddle with order
ranjitjhala Oct 6, 2018
01d5cd1
sigh; that j2 stuff is hell
ranjitjhala Oct 6, 2018
3de20d0
guard external-matching
ranjitjhala Oct 6, 2018
a2aa02f
add loc to qualify
ranjitjhala Oct 6, 2018
55b26aa
tweak ext-resolution
ranjitjhala Oct 6, 2018
b9534dc
add loc to qualify
ranjitjhala Oct 6, 2018
907df5d
ignore out of scope datadecls
ranjitjhala Oct 6, 2018
d21b2ec
make HidePrelude work
ranjitjhala Oct 7, 2018
f4e93fa
hide haddock from circle?
ranjitjhala Oct 7, 2018
576c4e6
hide haddock
ranjitjhala Oct 7, 2018
a7e1fd8
whats the deal with bs, sigh.
ranjitjhala Oct 7, 2018
3de3057
add --compile-spec option to generate .bspec, but skip checking
ranjitjhala Oct 8, 2018
2190e20
add compilespec flag to ByteString.hs
ranjitjhala Oct 8, 2018
2c364d4
add compilespec flag to ByteString.hs
ranjitjhala Oct 8, 2018
9c8a5ba
don't make Config fields STRICT!
ranjitjhala Oct 8, 2018
41b6a9f
asd
ranjitjhala Oct 8, 2018
5e01e28
update type-equality-hack test to ghc 8.4
ranjitjhala Oct 9, 2018
decda1a
update type-equality-hack test to ghc 8.4
ranjitjhala Oct 9, 2018
1aaee6d
update type-equality-hack test to ghc 8.4
ranjitjhala Oct 9, 2018
bff888e
remove all tracepp
ranjitjhala Oct 9, 2018
e1289fa
merge in develop
ranjitjhala Oct 9, 2018
914f3c0
remove more verbiage
ranjitjhala Oct 9, 2018
0a31bbf
twiddle flags for circle/haddock
ranjitjhala Oct 9, 2018
ad6bcd2
twiddle flags for circle/haddock
ranjitjhala Oct 9, 2018
17eaaef
merging in develop
ranjitjhala Oct 9, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
17 changes: 10 additions & 7 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version: 2.0
jobs:
build:
docker:
- image: fpco/stack-build:lts-10.0
- image: fpco/stack-build:lts-12.2
steps:
- add_ssh_keys
- run: apt-get install z3
Expand All @@ -31,13 +31,16 @@ jobs:
name: Test
command: |
stack clean
mkdir -p $CIRCLE_TEST_REPORTS/junit
stack test liquidhaskell:test --flag liquidhaskell:include --flag liquidhaskell:devel --test-arguments="-t 1200s -j2 --xml=$CIRCLE_TEST_REPORTS/junit/main-test-results.xml": #--liquid-opts='--cores=1'":
stack test liquidhaskell:liquidhaskell-parser --test-arguments="-j2 --xml=$CIRCLE_TEST_REPORTS/junit/parser-test-results.xml":
mkdir -p /tmp/junit
stack test liquidhaskell:test --flag liquidhaskell:include --flag liquidhaskell:devel --test-arguments="-t 1200s --xml=/tmp/junit/main-test-results.xml": #--liquid-opts='--cores=1'":
stack test liquidhaskell:liquidhaskell-parser --test-arguments="--xml=/tmp/junit/parser-test-results.xml":
stack sdist
stack haddock liquidhaskell --flag liquidhaskell:-devel --no-haddock-deps --haddock-arguments="--no-print-missing-docs --odir=$CIRCLE_ARTIFACTS"
mkdir -p $CIRCLE_TEST_REPORTS/tasty
cp -r tests/logs/cur $CIRCLE_TEST_REPORTS/tasty/log
# stack haddock liquidhaskell --flag liquidhaskell:-devel --no-haddock-deps --haddock-arguments="--no-print-missing-docs --odir=$CIRCLE_ARTIFACTS"
stack haddock liquidhaskell --no-haddock-deps --haddock-arguments="--no-print-missing-docs"
- store_test_results:
path: /tmp/junit
- store_artifacts:
path: tests/logs/cur
- run:
name: Dist
command: stack sdist
4 changes: 4 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## NEXT

## 0.8.4.0

- Support for GHC 8.4.3

## 0.8.2.2

- Support for GHC 8.2.2
Expand Down
18 changes: 0 additions & 18 deletions FAILING_TESTS.txt

This file was deleted.

2 changes: 0 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -110,5 +110,3 @@ tags:
# hasktags -c src/
# hasktags -e src/

ghcid:
ghcid --command "stack ghci --main-is liquidhaskell:exe:liquid"
56 changes: 46 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,36 +58,35 @@ See [this file](NIX.md) for instructions on running inside a custom `nix`-shell.
How To Run Regression Tests
---------------------------

You can run all the tests by

$ stack test

To use threads to speed up the tests
To pass in specific parameters and run a subset of the tests

$ make THREADS=30 test
$ stack test liquidhaskell --fast --test-arguments "--liquid-opts --no-termination -p Unit"

Or your favorite number of threads, depending on cores etc.

You can directly extend and run the tests by modifying

tests/test.hs

To run the regression test *and* the benchmarks run

$ make all-test

How to Profile
--------------

1. Build with profiling on

```
$ make pdeps && make prof
$ stack build liquidhaskell --fast --profile
```


2. Run with profiling

```
$ time liquid range.hs +RTS -hc -p
$ time liquid range.hs +RTS -hy -p
$ stack exec -- liquid range.hs +RTS -hc -p
$ stack exec -- liquid range.hs +RTS -hy -p
```

Followed by this which shows the stats file
Expand All @@ -111,7 +110,7 @@ How to Get Stack Traces On Exceptions
1. Build with profiling on

```
$ make pdeps && make prof
$ stack build liquidhaskell --fast --profile
```

2. Run with backtraces
Expand All @@ -120,6 +119,10 @@ How to Get Stack Traces On Exceptions
$ liquid +RTS -xc -RTS foo.hs
```

```
stack exec -- liquid List00.hs +RTS -p -xc -RTS
```

Working With Submodules
-----------------------

Expand Down Expand Up @@ -1464,3 +1467,36 @@ Suppose that the current version of Liquid Haskell is `A.B.C.D`:

+ The `A` component shall be updated at the sole discretion of the project owners.

Updating GHC
============

Here's a script to generate the diff for the `desugar` modules.

```
export GHCSRC=$HOME/Documents/ghc

# Checkout GHC-8.2.2
(cd $GHCSRC && git checkout ghc-8.2.2 && git pull)

# make a patch
diff -ur $GHCSRC/compiler/deSugar src/Language/Haskell/Liquid/Desugar > liquid.patch

# Checkout GHC-8.4.3
(cd $GHCSRC && git checkout ghc-8.2.2 && git pull)

# Copy GHC desugarer to temporary directory
cp -r $GHCSRC/compiler/deSugar .

# Patch
(cd deSugar && patch -p5 --merge --ignore-whitespace < ../liquid.patch)

# Copy stuff over
for i in src/Language/Haskell/Liquid/Desugar/*.*; do j=$(basename $i); echo $j; cp deSugar/$j src/Language/Haskell/Liquid/Desugar; done
```


Here's the magic diff that we did at some point that we keep bumping up to new GHC versions:

https://github.com/ucsd-progsys/liquidhaskell/commit/d380018850297b8f1878c33d0e4c586a1fddc2b8#diff-3644b76a8e6b3405f5492d8194da3874R224


18 changes: 13 additions & 5 deletions TODO.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,15 @@
### CallStack/Error
# TODO

- [] Fix termination tests in fail.txt
- [] Fix resolve tests in fail.txt
- [] Fix eq-repr tests in fail.txt
- [] Remove trace
- [] Remove warnings
- [] fix circle
- [] merge PR


## CallStack/Error

The use of `Prelude.error` gives a crazy performance hit
apparently even without cutvars being generated, this is
Expand Down Expand Up @@ -33,10 +44,6 @@ TODO
Prune Unsorted Refs
-------------------

* mergeDataConTypes
* makeMeasureSpec'
* meetDataConSpec

The below gives a nice SORT error

```haskell
Expand Down Expand Up @@ -1237,3 +1244,4 @@ GHC 7.10

- termination metrics are required in a few places where they were not previously
- my guess is that ghc's behaviour for grouping functions in a `Rec` binder have changed

43 changes: 39 additions & 4 deletions benchmarks/bytestring-0.9.2.1/Data/ByteString.T.hs
Original file line number Diff line number Diff line change
Expand Up @@ -468,11 +468,11 @@ pack str = unsafeCreate (P.length str) $ \p -> go p str

#else /* hack away */

pack str = unsafeCreate (P.length str) $ \(Ptr p) -> stToIO (go p 0# str)
pack str = unsafeCreate (P.length str) $ \(Ptr p) -> stToIO (goz str p 0# )
where
{-@ decrease go 3 @-}
go _ _ [] = return ()
go p i (W8# c:cs) = writeByte p i c >> go p (i +# 1#) cs
{- goz :: _ -> _ -> cs:_ -> _ / [len cs] -}
goz [] _ _ = return ()
goz (W8# c:cs) p i = writeByte p i c >> goz cs p (i +# 1#)

writeByte p i c = ST $ \s# ->
case writeWord8OffAddr# p i c s# of s2# -> (# s2#, () #)
Expand Down Expand Up @@ -2343,3 +2343,38 @@ findFromEndUntil f ps@(PS x s l) =
else findFromEndUntil f (PS x s (l-1))



-- // for unfoldrN
{-@ qualif PLenNat(v:GHC.Ptr.Ptr a): (0 <= plen v)
@-}

-- // for UnpackFoldrINLINED
{-@ qualif UnpackFoldrINLINED(v:List a, n:int, acc:List a): (len v = n + 1 + (len acc))
@-}

-- // for ByteString.inits
{-@ qualif BLenGt(v:Data.ByteString.Internal.ByteString, n:int): ((bLength v) > n)
@-}

-- // for ByteString.concat
{-@ qualif BLens(v:List Data.ByteString.Internal.ByteString) : (0 <= bLengths v)
@-}

{-@ qualif BLenLE(v:GHC.Ptr.Ptr a, bs:List Data.ByteString.Internal.ByteString): (bLengths bs <= plen v)
@-}

-- // for ByteString.splitWith
{-@ qualif SplitWith(v:List Data.ByteString.Internal.ByteString, l:int): ((bLengths v) + (len v) - 1 = l)
@-}

-- // for ByteString.unfoldrN
{-@ qualif PtrDiff(v:int, i:int, p:GHC.Ptr.Ptr a): (i - v <= plen p)
@-}

-- // for ByteString.split
{-@ qualif BSValidOff(v:int,l:int,p:GHC.ForeignPtr.ForeignPtr a): (v + l <= fplen p)
@-}


{-@ qualif SplitLoop(v:List Data.ByteString.Internal.ByteString, l:int, n:int): ((bLengths v) + (len v) - 1 = l - n)
@-}
Loading