Edwin Brady
1be12c7f72
Block reduction of private/export names
2019-06-15 16:10:01 +01:00
Edwin Brady
ed43fd49b9
Save FC so that metadata works
2019-06-15 13:28:27 +01:00
Edwin Brady
a7bf075c94
Get GlobalHint flag right
...
'True' means a default hint, which is only used if all else fails (and
is only really intended to get default Integer)
2019-06-15 12:42:35 +01:00
Edwin Brady
c121910298
Add 'base' libraries
2019-06-15 11:54:22 +01:00
Edwin Brady
46c29c2ee4
Tweak rules for usableLocal in search
...
Needs to be allowed to search for things indexed by pattern variables,
which are not really holes in the same sense, or it might not find
things in types.
(Aside: we're currently implicitly binding failed searches in types,
which is, I think, wrong... better to report the failure)
2019-06-14 19:00:16 +01:00
Edwin Brady
8f386011b1
Defer erasure/run-time case trees
...
Don't build these until we've completed the whole clause (that is, don't
do it if we're inside a case block) because we might need to collect
more information to complete checking the case block. e.g. there may be
constraints inside the case block that are resolved outside.
2019-06-14 18:35:31 +01:00
Edwin Brady
2f7aa69f41
Remove AppInfo
...
It's just in the way, we don't use it for anything, and everything we
might get out of it we're already getting out of the type. Revisit later
if it turns out to be worth it.
2019-06-13 19:33:10 +01:00
Edwin Brady
2c1c86639a
Update makefiles and paths
...
We can now build and install the prelude, and hello world has
successfully compiled to chez
2019-06-13 16:53:16 +01:00
Edwin Brady
772b098de0
The Prelude type checks!
2019-06-13 13:23:21 +01:00
Edwin Brady
2374f23320
Add default alternatives
2019-06-11 13:52:49 +01:00
Edwin Brady
07229bdb5e
Add first Idris2 tests
2019-06-11 11:54:47 +01:00
Edwin Brady
94cc2a0d4c
Store type search hints separately
...
If we store them on the type constructor, we're required to have the
construction available, which might not be the case when reloading ttcs,
because we load and process modules *before* things they import.
2019-06-10 16:11:32 +01:00
Edwin Brady
803867006b
Add some missing files!
2019-06-09 23:14:27 +01:00
Edwin Brady
5a3aa3b13c
Some fixes for as patterns, add them implicitly
...
Much of the effort in renaming is to make types of holes display more
nicely!
2019-06-09 23:12:11 +01:00
Edwin Brady
146c301f6c
Change main program to be Idris2
...
With the --yaffle flag, you get the old behaviour which is to invoke the
checker for the core theory (and all the tests are updated appropriately
for this).
2019-06-09 11:58:29 +01:00
Edwin Brady
9d2067e9a8
Add command line option to invoke yaffle
2019-06-08 11:02:50 +01:00
Edwin Brady
c6a7050d39
Added Idris.Main
2019-06-07 11:29:29 +01:00
Edwin Brady
2afad1f13c
Add package files
2019-06-07 11:14:45 +01:00
Edwin Brady
b9e67db95d
Add REPL
2019-06-07 11:08:21 +01:00
Edwin Brady
c420082a43
Add Scheme back ends from Blodwen
2019-06-06 18:33:50 +01:00
Edwin Brady
8132378b04
Add Compiler.Common
...
This is generic compiler infrastructure (mainly finding all the names
used from a root expression)
2019-06-06 18:13:25 +01:00
Edwin Brady
18221f8f2d
Add inlining for CExps
2019-06-06 09:51:30 +01:00
Edwin Brady
169a958105
Compiling to CExp
2019-06-05 21:25:03 +01:00
Edwin Brady
bf67f5c87c
Record mutual type definitions
...
Also add some tests for totality checker
2019-06-05 17:28:55 +01:00
Edwin Brady
95cc48eeb6
Add termination checking
...
Still to do: mutual data definitions and proper testing
2019-06-05 15:59:35 +01:00
Edwin Brady
2c6202879e
Calculate missing cases via coverage checker
2019-06-02 23:43:21 +01:00
Edwin Brady
1f52530313
Implement 'impossible'
2019-06-02 21:21:07 +01:00
Edwin Brady
f5556a1a9d
Add Core.Coverage
...
Little of the recently added bits are wired up yet, but it'll all start
coming together soon.
2019-06-02 20:03:41 +01:00
Edwin Brady
bdc38d438c
Add CompileExpr
2019-06-02 17:54:55 +01:00
Edwin Brady
0fa61f7c4f
Add compiler support files
2019-06-02 17:31:59 +01:00
Edwin Brady
5c2d78e893
More of the Idris machinery
...
ModTree and ProcessIdr
2019-06-02 17:24:39 +01:00
Edwin Brady
8302fb08a7
Bring in more bits of IDE mode
2019-06-02 15:38:39 +01:00
Edwin Brady
d6e637b2c5
Fix structural difference check in search
...
Now it successfully finds zipWith too
2019-06-02 15:16:54 +01:00
Edwin Brady
b41bd48970
Add MakeLemma
2019-06-02 14:41:21 +01:00
Edwin Brady
109dcf08f9
Add definition generation
2019-06-02 14:28:26 +01:00
Edwin Brady
af79e57ae2
Store number of locals in holes
...
This gives useful information for expression search, because we can add
lambdas while we're still building the environment, and start looking at
locals after that.
2019-06-02 01:23:01 +01:00
Edwin Brady
bf70aa07d2
First attempt at expression search
...
Not quite there yet because we're not saving all the information about
holes in TTCs but the basics work
2019-06-01 22:34:59 +01:00
Edwin Brady
ae28f1b1f2
Add CaseSplit
...
Adapted from Blodwen version
2019-06-01 19:05:02 +01:00
Edwin Brady
b1f7863830
Add Implementation and Interface
...
It turns out we need a new kind of map, mapping possibly ambiguous names
to values. This is what 'Context' does but we can only have one of them
because it resolves names to a position in an array and it'd be
confusing to have more than one index per name.
2019-06-01 18:13:19 +01:00
Edwin Brady
d82f6c5080
Add errors, REPLCommon now builds
2019-06-01 15:53:16 +01:00
Edwin Brady
2e2622c38b
Add more of the high level stuff
2019-06-01 15:05:04 +01:00
Edwin Brady
a7d7785a0a
Added Idris.Socket
...
In preparation for REPL and IDE mode
2019-06-01 14:13:28 +01:00
Edwin Brady
5bbab03e38
Added Idris.Desugar
...
Mostly adapted from Blodwen, also added necessary bits to the context
such as name directives and hiding.
2019-06-01 14:11:21 +01:00
Edwin Brady
67cbf05b4c
Add parser for high level syntax
...
Almost entirely unchanged from Blodwen
2019-05-31 18:50:07 +01:00
Edwin Brady
a3bf2e3aa9
Start on the high level syntax
...
Copied and adapted Idris.Syntax from Blodwen, updated to cope with new
core.
2019-05-31 18:48:04 +01:00
Edwin Brady
a05c656d76
Record editing metadata and interface hashes
2019-05-31 11:42:11 +01:00
Edwin Brady
2b38ce0188
Add Metadata type
...
Metadata is now propagated through the elaborator, although we're not
using it yet
2019-05-31 05:52:54 +01:00
Edwin Brady
6c88bfec7a
Elaborate 'with' blocks
2019-05-29 11:57:07 +01:00
Edwin Brady
a59a104230
Implement 'rewrite' expressions
...
Mostly direct from Blodwen (some minor modifications to deal with new
way of going into a new scope in the elaborator as well as the usual
bits dealing with name lookup and Glued terms)
2019-05-27 12:15:37 +01:00
Edwin Brady
7cc37d28b3
Add (dependent) record update
...
This is pretty much straight from Blodwen
2019-05-27 10:56:13 +01:00