Commit Graph

883 Commits

Author SHA1 Message Date
Edwin Brady
ea8c22135c
Merge pull request #156 from clayrat/misc-fixes
Misc fixes and additions
2020-01-19 16:48:47 +00:00
Edwin Brady
a275b57a81
Merge pull request #154 from abailly/better-ide-mode
Improve IDE mode to provide basic Emacs mode interaction
2020-01-19 16:47:18 +00:00
Edwin Brady
02e716dfe8
Merge pull request #180 from ohad/contrib
Create a contrib directory in the standard library
2020-01-19 16:45:00 +00:00
Edwin Brady
692bd8a547 Generated names need to be unique in clauses
Otherwise we might think we've dealt with an erased name when we haven't
- given that clauses are compiled all together.
Fixes #186
2020-01-19 16:36:30 +00:00
Edwin Brady
f81085cf67 Normalise goal on initialising proof search
It needs normalising anyway to get for determining arguments, so might
as well do it up front (it can save time later).
2020-01-18 23:37:20 +00:00
Edwin Brady
b8a8f0ef1b Some fixes in time logging code 2020-01-18 15:14:23 +00:00
Edwin Brady
7e54065e00 Remove need for renameVars in unification
I don't know why I didn't do it this way in the first place... it's only
a small improvement, but saves a traversal of a potentiall big term.
2020-01-16 16:26:26 +00:00
Alex Gryzlov
ce15b48a78 Merge remote-tracking branch 'upstream/master' into misc-fixes 2020-01-15 22:52:38 +01:00
Edwin Brady
6495d603d7 Add %unifyLog for debugging
Prints debugging logs while elaborating the argument
2020-01-15 09:49:41 +00:00
Edwin Brady
d619c09ba3 Remove unnecessary solveConstraints 2020-01-13 11:49:16 +00:00
Edwin Brady
fe74d6bb7c Add impossibility flag to Erased
This is to help coverage checking, for LHS clauses which are impossible,
so that we can build the complete case tree from the impossible clauses
too.
2020-01-12 20:06:02 +00:00
Edwin Brady
751fd1f36a Experiment with hole name display
If unelaborating a term that's just a hole, show the scope it was
created in too, to help with error messages
2020-01-11 23:34:44 +00:00
Edwin Brady
62a86db1d5 Fix build! 2020-01-11 23:08:30 +00:00
Edwin Brady
4ce469cc03 Name choice of holes
The names should give more of a hint as to where the holes were created.
Might help with #161.
2020-01-11 22:52:18 +00:00
Edwin Brady
abd801c45a
Merge pull request #177 from SPY/testfix/chez010-macos
Fix chez010 test on MacOS
2020-01-11 22:50:16 +00:00
Edwin Brady
da293d1ce8 Check constructors are fully applied in case trees
This is necessary to build case trees correctly, and without this, we
can get mysterious and hard to debug run time errors!
2020-01-11 17:27:27 +00:00
Arnaud Bailly
432cc7ca5c Merge branch 'master' of https://github.com/edwinb/Idris2 into better-ide-mode 2020-01-11 09:45:39 +01:00
André Videla
a145ba99d7 Cosmetic changes in src/Compiler/Inline
Refactor LengthMatch into its own file
2020-01-10 18:26:32 +00:00
Ilya Rezvov
32b1c9b34f use an explicit extension for libcb references in %foreign pragmas 2020-01-09 11:55:33 -08:00
Ilya Rezvov
56d24e34d4 Merge remote-tracking branch 'origin/master' into testfix/chez010-macos 2020-01-09 11:44:51 -08:00
Ohad Kammar
971bfc5bbd Update prelude line numbers in a test 2020-01-09 13:06:39 +00:00
Ohad Kammar
9a591b83ac Add linearity annotations in the prelude 2020-01-09 13:05:05 +00:00
Ohad Kammar
be90749e22 Create a contrib directory in the standard library
Move the TailRec.idr and current poor-man's syntax for:
  equational reasoning (`Syntax.PreorderReasoning`)
  with proof           (`Syntax.WithProof`)
2020-01-09 12:54:55 +00:00
Edwin Brady
7cde0a7255
Merge pull request #174 from chrrasmussen/fix-double-subtraction
Fix subtraction of Double in interpreter
2020-01-09 11:41:40 +00:00
Edwin Brady
4b79b98db4
Merge pull request #173 from timmyjose/fix-mit-scheme-build-issues
Reorder Scheme compilers order to pick generic Scheme last.
2020-01-09 11:39:39 +00:00
Ilya Rezvov
b437323fd2 dylib extension added for libcb to fix chez010 test on MacOS 2020-01-01 14:23:02 -08:00
Edwin Brady
bf5b2298e0 Update test chez010
To use expressions to calculate FFI convention, so that it's tested.
2019-12-30 21:16:07 +00:00
Edwin Brady
9fe236d5b1 Allow expressions in %foreign directives
Rather than just raw Strings. They get evaluated immediately at the
point of elaboration, and this can be used to save repetition (e.g. of
shared library names) in declarations.
2019-12-30 21:10:41 +00:00
Edwin Brady
55bfceff07 Copy shared libraries to executable directory
(In the Racket/Chez back ends)
A bit ugly, but it means that after making an executable, all the
necessary files are in the same directory ready for packaging. The
executable can still only be run when the libraries are in the
racket/chez library search path. In practice at the moment that means
they need to be in the current working directory...
2019-12-30 17:34:52 +00:00
Edwin Brady
20aa7f7730 Executables now go in build/exec by default
Having a separate directory for generating executables will help deal
with packaging executables for back ends which need extra library
support, since we can copy the relevant libraries into the executable
directory and know where everything is.
2019-12-30 17:03:15 +00:00
Edwin Brady
f2a26ecfbd Deal with interface constraints in method types
To build the top level method and interface record correctly, we need to
know where to put the implicit arguments, so invent names if they don't
have them already then we'll know where to put things accurately.
2019-12-29 20:36:08 +00:00
Edwin Brady
6ab4657573 Do delayed elaborators in order they were added
Earlier solutions may influence later ones. Probably we should be
cleverer still here, and keep trying while any delayed elaborators are
run successfully, because really the order shouldn't matter!
2019-12-29 15:42:33 +00:00
Edwin Brady
df3f8b73f8 Further tweak to linearity rules
When we check a scope in RigW, need to mark all linear things outside
that scope as irrelevant within the scope (since the scope may be used
multiple times).
2019-12-29 15:21:08 +00:00
Edwin Brady
6d0c4d9ea8 Slight tweak to linearity checking rules
Need to reset mutiplicity to 1 when checking a new scope.
2019-12-27 17:13:39 +00:00
Arnaud Bailly
c385a2a9cc Merge branch 'master' of https://github.com/edwinb/Idris2 into better-ide-mode 2019-12-27 09:25:55 +01:00
Christian Rasmussen
a70c68da91 Add test for Double subtraction 2019-12-22 21:50:18 +01:00
Christian Rasmussen
479872290d Fix Double subtraction in interpreter
Fixes #171
2019-12-22 20:48:00 +01:00
Timmy Jose
1c1e2b16ca Reorder Scheme compilers order to pick Chez Scheme first.
This fixes the issue where some Scheme compiler like mit-scheme is
installed and that gets picked up first, leading to an infinite
loop in the tests.

Also see attached image in the PR.
2019-12-21 18:42:09 +05:30
Milan Kral
eb7be5eba1 Use HTTPS instead of HTTP 2019-12-18 21:37:50 +01:00
Edwin Brady
e0eecc8c12 Small tweak to auto search rules
After resolving default hints, go back to normal hints because resolving
the top level default might have opened up further search possibilities.
2019-12-14 23:29:28 +00:00
Edwin Brady
f95214ff8c Need to save types on lambdas in TTC
Turns out we need this after all, since the types may be necessary
during linearity checking if imported names are imported and reduced
during elaboration for some reason (e.g. during unification)
2019-12-13 17:02:46 +00:00
Edwin Brady
952abe7fc8 Deal with auto implicits when adding lambdas
We were only checking the type for implicit lambdas, so using lambdas in
functions with an auto implicit was giving a strange error.
2019-12-09 18:00:36 +00:00
Arnaud Bailly
d5e63338ca Merge remote-tracking branch 'upstream/master' into better-ide-mode 2019-12-08 13:09:08 +01:00
Edwin Brady
c85ffd2c29 Return correct type on variadic application
In the case where the function type is not yet known, and there's a
postponed unification problem, we were returning the function type not
the result type.
--debug-elab-check ought to be extended to catch this sort of thing.
Fixes #168
2019-12-08 00:25:49 +00:00
Edwin Brady
9ee40b94a9 Add missing conversion check
Fixes #166
2019-12-07 21:04:41 +00:00
Edwin Brady
663e1b8f69 Add uniqueSearch data type option
This changes the behaviour of 'auto' implicits so that by default they
return the first result, rather than checking for unique results. This
is consistent with Idris 1. However, we still want to check for
uniqueness somtimes (for example, with interface search, which should
reject overlapping results) so the 'uniqueSearch' option means that any
auto implicit search for the type should check uniqueness of results.

Fixes #169
2019-12-07 18:54:02 +00:00
Edwin Brady
ebb1ec3a3a
Merge pull request #167 from ska80/unwords+unlines/idris1
Add unwords and unlines to base/Data.Strings from Idris 1
2019-12-07 15:28:14 +00:00
Edwin Brady
5d4cf051d9
Merge pull request #165 from ska80/remove-swp
Remove Vim swap files
2019-12-07 15:27:27 +00:00
Edwin Brady
0c4301d1c2
Merge pull request #159 from ska80/integral-nat
Add an implementation of Integral for Nat
2019-12-07 15:26:50 +00:00
Edwin Brady
cbf2f4ac9f
Merge pull request #155 from bwignall/typo
Fix small double-and typo
2019-12-07 15:18:06 +00:00