Commit Graph

2349 Commits

Author SHA1 Message Date
Edwin Brady
aeea2b80c9
Merge pull request #109 from ziman/with-disamb
`with` expressions for name disambiguation
2020-05-23 12:22:35 +01:00
Edwin Brady
cad0c0e878
Merge branch 'master' into emacs-mode-compatibility 2020-05-23 12:21:03 +01:00
Edwin Brady
7be54ef849
Merge pull request #103 from keram/gambit-blodwen-os
Define blodwen-os in Gambit support.scm
2020-05-23 12:18:37 +01:00
Edwin Brady
5cf64499ec
Merge pull request #102 from ziman/101-module-hashes
Convert to full names before computing hashes
2020-05-23 12:17:23 +01:00
Niklas Larsson
61ec7757ed
Merge pull request #107 from melted/fix_win_tests
Fix windows tests
2020-05-23 13:08:41 +02:00
Edwin Brady
38ad480478 Use name root for generating clauses
Not the internal name, since that's no use in a program...
Fixes #68
2020-05-23 12:02:40 +01:00
Edwin Brady
65e3f63598 Make sure literals are normalise on LHS
The hack (optimisation?) to normalise integer literals when below some
threshold is fine on the RHS, but on the LHS causes problems since we
need them in normal form for pattern matching. Fixes #112
2020-05-23 11:48:15 +01:00
Niklas Larsson
368fe55515 Add badge 2020-05-23 12:37:51 +02:00
Niklas Larsson
efa7357730 Improve the name of the job 2020-05-23 12:18:42 +02:00
Edwin Brady
eb3cba5f85 Better checking for empty types
This improves coverage checking, because it can now see that things like
(Z = S x) and (x = S x) are empty. Previously, it only checked that all
possible constructors had a disjoint index. Now, it looks for matches
and checks for disjointness in the matches, which catches a lot more
things especially with equality.
2020-05-23 11:03:54 +01:00
Niklas Larsson
63e2c2819f Implement Github Actions CI 2020-05-23 11:11:43 +02:00
Niklas Larsson
83b749e4f2 Fix PATH in cmd script 2020-05-23 11:08:25 +02:00
Niklas Larsson
2160d7297c Fix chez014 2020-05-23 11:08:25 +02:00
Niklas Larsson
5d77de178e Escape backslashes when outputting filenames to chez 2020-05-23 11:08:25 +02:00
Niklas Larsson
99f407f1ab Simplify chez017 after changing test runner 2020-05-23 11:08:25 +02:00
Niklas Larsson
755a10056a Be lenient with slashes and backslashes on Windows 2020-05-23 11:08:25 +02:00
Niklas Larsson
59fcf5889c Fix pkg002 on Windows
allDirs put in a slash at the top level. It should be behind the
drive letter on Windows
2020-05-23 11:08:25 +02:00
Niklas Larsson
09ea6af22f Fix chez017 for Windows 2020-05-23 11:08:25 +02:00
Niklas Larsson
e30f7ef3ed Fix chez016 on windows 2020-05-23 11:08:25 +02:00
Niklas Larsson
04d6e5ee68 Allow errors when installing cmd file
It will not be present on a fresh bootstrap yet.
2020-05-23 11:08:25 +02:00
Niklas Larsson
77df65012c Fix Path ambiguity 2020-05-23 11:08:25 +02:00
Niklas Larsson
2b8f570ae9 Add cmd file to install on windows 2020-05-23 11:08:25 +02:00
Matthieu JACQUOT
f84850ea36 add minus proofs on Nats from Idris1 2020-05-22 22:39:09 +02:00
Edwin Brady
840e020d8c Some FAQ updates 2020-05-22 21:17:37 +01:00
Matus Tejiscak
1de9c54506 Bump ttcVersion. 2020-05-22 21:07:47 +02:00
Matus Tejiscak
394047906d Fix porting errors. 2020-05-22 20:29:56 +02:00
Matus Tejiscak
74dd653fc5 Apply the patch from idris2-boot. 2020-05-22 20:26:10 +02:00
Edwin Brady
38c9633b66 Update generated racket 2020-05-22 18:16:18 +01:00
Edwin Brady
824b661cd5 Update bootstrap scheme
The library code uses a new feature, and it needs to be able to build
with the bootstrap code (though, fortunately, not with idris2-boot)
2020-05-22 18:06:04 +01:00
Ohad Kammar
507ace21cc Merge branch 'master' of github.com:idris-lang/Idris2 into emacs-mode-compatibility 2020-05-22 18:06:01 +01:00
Ohad Kammar
ad315343ef Add missing case in IDE/SyntaxHighlighting 2020-05-22 18:05:13 +01:00
Edwin Brady
0958f1fd8b Keep inlining %tcinlines under let
This fixes a productivity issue with map in the parser library
2020-05-22 17:52:20 +01:00
Edwin Brady
69ec410890 Add AllGuarded flag for functions
This is added to functions which are guaranteed to be productive. The
check is currently very conservative - just added when every clause is
constructor headed (or headed by an AllGuarded function), and there are
no other function applications.
2020-05-22 17:27:18 +01:00
Edwin Brady
a5c2c211a1 Add %tcinline flag to high level syntax
This allows a function to be inlined for totality checking purposes
only. So, for example, (>>=) might be a function, but if it evaluates to
something constructor guarded in some context, then it might still be
productive.
2020-05-22 16:01:47 +01:00
Edwin Brady
088bb52f58 Some productivity checker fixes
Getting there... it still needs to be a bit cleverer at allowing
"obviously productive" functions before we can switch it on though.
2020-05-22 15:08:42 +01:00
Edwin Brady
b6a3c51129 A bit of shuffling in the CHANGEGLOG 2020-05-22 14:21:48 +01:00
Edwin Brady
6494241c11 Remove some noise from error messages
There's no point in wrapping all the case blocks, since this is an
internal detail, and it distracts from the proper location of the error.
2020-05-22 14:19:54 +01:00
Edwin Brady
b27a835e58 Recoverability wasn't quite right
It needs to take into account that solving other names might cause
unification errors to succeed, so only give up if there's conflicting
concrete constructors
2020-05-22 14:02:12 +01:00
Edwin Brady
6d946fed7f Evaluate with tcinline under Delay
If we never evaluate under Delay at all, we won't inline interface
methods, which means productive things defined in an interface can never
be today. So, make sure to set the tcinline flag before quoting the
Delayed closure.
2020-05-22 13:30:07 +01:00
Edwin Brady
d0af73a295 Abandon delayed operators if unrecoverable
If we're delaying because of a unification failure, there's no point in
trying again. This can massively speed up (or maybe I should say "unslow
down") error reporting if there's ambiguity because the elaborator won't
be exploring some paths which can never succeed.
2020-05-22 13:25:08 +01:00
Edwin Brady
4273c24434 Don't rerun delayed elaborators so often
Run once ignoring errors to make progress on interfaces/determining
arguments, then again in full. Second step isn't needed since it was
just covering up an earlier bug.
This means that some errors under lots of delays are reported quicker,
though I still haven't completely got to the bottom of that one.
2020-05-22 09:35:55 +01:00
Ohad Kammar
b0cec7dabb Fix disambiguation issue (this also happens on master, so might cause a conflict). 2020-05-22 02:01:02 +01:00
Ohad Kammar
47db074863 Merge branch 'master' of github.com:idris-lang/Idris2 into emacs-mode-compatibility 2020-05-22 01:02:47 +01:00
Ohad Kammar
83793113ba First steps towards emacs idris-mode compatibility
To make sure the protocol doesn't jam, supply stub implementation to
all protocol commands.

Report to REPL when an unimplemented command is used.

Notes
-----

1. We don't support add-proof-clause. I guess all proof-related stuff
   should be removed from the protocol

2. Some types are stub types too. That's because we need to `SExpable`
   more structured types like `PTerm`. I'll leave that to the future.

3. I've lifted `REPLResult` into `IDEResult` inside `IDEMode/REPL.idr`.
   That's because some results, like `who-calls` only make sense in
   the context of an IDE, not in the context of a user-facing REPL.

   The Editing commands should be moved from the REPL into the IDE and
   called from the REPL.

   I leave that to the future, once more of the protocol is
   implemented.

4. Export a few functions from the REPL so that the IDE can call them.

5. There's one outstanding issue with the emacs idris-mode: it
   currently calls the unsupported `:consolewidth` REPL command. This
   is harmless, and can wait until @edwinb decides whether we should
   support it in the future or not.

6. There was a bug as to how holes are returned to the user. The
   format isn't documented in the protocol, so we'll need to reproduce
   it, perhaps from the idris-mode elisp sources.
2020-05-22 01:01:55 +01:00
Edwin Brady
68d73816ab Temporary fix in package parser
I've overdone the ambiguity limit...
2020-05-21 23:11:43 +01:00
Marek Labos
9108410c1e Define blodwen-os in Gambit support.scm 2020-05-21 23:09:02 +01:00
Edwin Brady
f3b02d3ac5 Fix error in retryDelayed
In which delayed elaborators which arise during other delayed
elaborators might not get run, leading to a hole, so if there's an error
in the delayed elaborator you might just see that there's a hole still
to resolve.

The down side of this, at least in the example that prompted it, is that
it can take a while for an unresolvable ambiguity error to be reported
while it explores everything. even if there's only a few possibilities.
I will try to think of something...
2020-05-21 23:04:36 +01:00
Matus Tejiscak
1e968c14cf Fix typo. 2020-05-22 00:04:25 +02:00
Matus Tejiscak
8ed8ee463e Convert to full names before computing hashes. 2020-05-21 23:15:50 +02:00
Kamil Shakirov
6cd6594510 Use Control.Delayed from the 'contrib' package 2020-05-22 01:27:50 +06:00