Commit Graph

1611 Commits

Author SHA1 Message Date
Edwin Brady
cc6530026d Merge github.com:idris-lang/Idris2 into no-linearity-subtyping 2020-12-29 21:37:56 +00:00
Edwin Brady
8d034a0a91 Relax some linearities in the base libraries 2020-12-29 21:34:35 +00:00
Edwin Brady
69cb7c6ac4 Relax linearities in prelude 2020-12-29 21:32:01 +00:00
Edwin Brady
b75dcd5c17 Some multiplicity fixes in the libraries 2020-12-29 21:25:00 +00:00
Edwin Brady
d67a6fd444
Merge pull request #740 from Russoul/name-at
Add NameAt to Ide mode
2020-12-29 21:04:49 +00:00
Edwin Brady
69837453a2
Merge pull request #888 from edwinb/build-from-previous
Add CI action to build from older version
2020-12-29 20:48:44 +00:00
Jonathan Lorimer
47df67af16 add rlwrap docs 2020-12-29 14:55:00 -05:00
Edwin Brady
8026c377a5 Skip the tests when building previous version
After all, we tested it when we shipped it. Didn't we?
2020-12-29 19:43:19 +00:00
Michael Messer
9a20564bb4 Add :! to REPL
Runs shell command
2020-12-29 19:19:43 +00:00
Edwin Brady
b02f3e7cec Add CI to build from previous version
This is a first attempt so I've probably got something wrong...
In theory, it ought to be possible to skip the tests for the previous
version. All we're interested in here is whether it builds successfully,
to check that we haven't broken any APIs and not noticed.
2020-12-29 19:17:03 +00:00
Edwin Brady
4dbfbf1943
Merge pull request #886 from edwinb/compatibility
Compatibility fixes
2020-12-29 17:24:23 +00:00
Edwin Brady
0f714f68e0 Compatibility fixes
For compatibility with previous library verions, so that we can build
with 0.2.1(+patches) as well as bootstrapping.
2020-12-29 16:36:12 +00:00
Mathew Polzin
bc76809288 Add proof that list reverse is involutory. 2020-12-28 17:30:24 -08:00
Joey Eremondi
0eef8e58f9
Some utilities for Fin, relations and decidability (#857) 2020-12-28 21:41:12 +00:00
Edwin Brady
5b97cd4499 Fix annotaion in Stream 2020-12-27 20:13:21 +00:00
Edwin Brady
61ba5e086f Fix linearity annotation in take
Hopefully this fixes the bootstrap build
2020-12-27 20:11:06 +00:00
Edwin Brady
ad632d825d Remove linearity subtyping
It's disappointing to have to do this, but I think necessary because
various issue reports have shown it to be unsound (at least as far as
inference goes) and, at the very least, confusing. This patch brings us
back to the basic rules of QTT.

On the one hand, this makes the 1 multiplicity less useful, because it
means we can't flag arguments as being used exactly once which would be
useful for optimisation purposes as well as precision in the type. On
the other hand, it removes some complexity (and a hack) from
unification, and has the advantage of being correct! Also, I still
consider the 1 multiplicity an experiment.

We can still do interesting things like protocol state tracking, which
is my primary motivation at least.

Ideally, if the 1 multiplicity is going to be more generall useful,
we'll need some kind of way of doing multiplicity polymorphism in the
future. I don't think subtyping is the way (I've pretty much always come
to regret adding some form of subtyping).

Fixes #73 (and maybe some others).
2020-12-27 19:58:35 +00:00
Edwin Brady
7e8ef1f10e
Merge pull request #878 from edwinb/localhint
Treat local hints differently in auto search
2020-12-27 14:18:06 +00:00
Edwin Brady
69f3c23cbb Treat local hints differently in auto search
Local hints need to reduce (just like global hints do) so we expand
their definition to the lifted name before applying them.
We're identifying the global hints by knowing that the binder name is a
nested function name. This is a bit of hack, and it'd probably be better
to record that information in the binder instead, but that's a more
substantial change than I want to do right now.
2020-12-27 13:41:48 +00:00
alissa42
02e12a82cf Adding default implementation of Foldable.null 2020-12-24 08:49:32 +00:00
Michael Messer
7dc84696a3
If the width terminal is zero make it Unbounded (#870) 2020-12-23 16:55:36 +00:00
André Videla
9c400a185e Add Traversable to List1 2020-12-21 15:10:00 +00:00
Denis Buzdalov
60e9cf44b0 Add List, LazyList and Stream unfolds and some LazyList's functions 2020-12-18 22:54:03 +00:00
Lynn
681c1bf10f Install hint for Apple Silicon (closes #836) 2020-12-18 15:07:35 +00:00
Denis Buzdalov
bff74807fd
Some functions, mostly for lazy lists (#854)
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
2020-12-18 10:33:56 +00:00
tensorknower69
aa940c3d18 change runState's signature 2020-12-17 10:10:18 +00:00
tensorknower69
c48b1e090e add execStateT and evalStateT 2020-12-17 10:10:18 +00:00
raptazure
043faf8baf docs: fix grammar 2020-12-16 10:02:34 +00:00
Edwin Brady
771e4034fa
Merge pull request #846 from edwinb/interfaces
Local hints (basic version)
2020-12-14 14:46:18 +00:00
Edwin Brady
6c9ad81c12 Add missing test
:#	../../../src/Compiler/.ANF.idr.swp
2020-12-14 13:38:40 +00:00
Edwin Brady
c1f58d963f
Merge branch 'master' into interfaces 2020-12-14 13:34:31 +00:00
Edwin Brady
252292451f Add local hints (basic version)
This gives us the ability to define and use implementations locally, in
where clauses/local let bindings, as well as flag local definitions as
hints.
It's not yet quite equivalent to global hints, however, since it translated
the hint to a local let binding, which doesn't reduce, so if something
relies on the reduction behaviour of the hint, it won't work. This
refinement is coming later
2020-12-14 13:25:50 +00:00
Mathew Polzin
a7e0df1300 Merge branch 'master' into scratch-work-search-repl 2020-12-13 17:05:54 -08:00
Mathew Polzin
e16ad58d6e allow unification over holes in saarch and branch defs at start of process to restore at the end. 2020-12-13 17:03:35 -08:00
Wen Kokke
daff1f2fb8
Added assert_linear. (#844)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2020-12-13 16:06:18 +00:00
G. Allais
3f6b99e979
[ fix #657 ] RigCount for interface parameters (#808) 2020-12-11 11:58:26 +00:00
Dong Tsing-hsuen
88aa55e875
[ new ] null method in Foldable (#832)
Co-authored-by: Guillaume ALLAIS <guillaume.allais@ens-lyon.org>
2020-12-10 18:04:23 +00:00
Guillaume ALLAIS
4356d377c5 [ refactor ] parser for lambda & lambdacase 2020-12-10 18:01:14 +00:00
Guillaume ALLAIS
4025896572 [ fix #833, #677 ] bound variables start with a lowercase letter 2020-12-10 18:01:14 +00:00
Guillaume ALLAIS
0a685f8d2c [ debug ] remove max from log
Users should be allowed to de-escalate the level of detail they're
getting.
2020-12-10 14:27:02 +00:00
Mathew Polzin
8206945efb got a number of things matching using unify, but still not totally happy with the result. might need to reivest in just dropping implicits and comparing on local names. 2020-12-08 20:47:52 -08:00
Guillaume ALLAIS
5de647cc3f [ refactor ] use difference list for efficient append 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
0675e58cca [ error ] crash rather than generating garbage 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
89daa5c1f6 [ cleanup ] existing list function & needlessly effectfule ones 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
3c0ff432bd [ cleanup ] redundant parens, language keyword 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
243ed5df2c [ cleanup ] remove trailing "pure ()" 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
39f26e7ed6 [ minor ] avoid repetition 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
f8c248dc7a [ refactor ] introduce Core.update 2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
e5c6dfac5b [ refactor ] remove toString, natMinus
* toString is an inefficient fastPack
* natMinus is an inefficient minus (we have already checked isLTE)
2020-12-08 13:07:53 +00:00
Guillaume ALLAIS
98674fc40a [ cleanup ] use pattern-matching binds in monadic code 2020-12-08 13:07:53 +00:00