Commit Graph

760 Commits

Author SHA1 Message Date
Edwin Brady
10c70711f4 Initial documentation of back ends 2020-03-03 19:33:37 +00:00
Edwin Brady
fd7a2e5435 Some reorganisation of chez generation
For an output file 'f', now generate a subdirectory in the executable
directory 'f_app', and put 'f.so' and 'f.ss' in there, along with any C
libraries we might have needed. Then generate a shell script 'f' to set
the library path to `f_app` and invoke `f.so`.

In :exec mode, f = _tmpchez, so we're using the executable directory for
the temporary files.

This means all the libraries and code needed to run the generated
program are copied to a single relocatable target directory.

This almost certainly won't work on Windows. Please help! Thanks :)
2020-03-03 18:59:55 +00:00
Edwin Brady
6023889115 Note on String in FFI docs 2020-03-03 17:39:13 +00:00
Edwin Brady
526c5f7d3a Add missing bit of example in ffi docs 2020-03-02 15:30:50 +00:00
Edwin Brady
21a7b46ca1 More FFI doc typos 2020-03-02 14:54:27 +00:00
Edwin Brady
ea7e8c38f6 Fix ffi text 2020-03-02 14:49:28 +00:00
Edwin Brady
2893e6f9e8 Initial FFI documentation 2020-03-02 14:29:26 +00:00
Edwin Brady
63847ca69f C struct pointer support in racket back end 2020-03-02 12:23:47 +00:00
Edwin Brady
a5c356f998 Basic support for struct in FFI
Just in the Chez backend for now, and not allowing strings or functions
due to limitations of Chez.
2020-03-01 23:23:21 +00:00
Edwin Brady
052c98d86e
Merge pull request #202 from glmxndr/patch-1
Dependent record example "length" field naming
2020-02-28 00:15:52 +00:00
Edwin Brady
b83f01e2f4 Small documentation updates 2020-02-28 00:15:03 +00:00
GhiOm
37af02eb2a
Update updates.rst 2020-02-27 12:51:11 +01:00
Edwin Brady
52e6a4f1ed Add Control.App to base
Usually I put this sort of thing in contrib first, but this is a direct
replacement for Control.IOExcept (previously in base in Idris 1) so I'm
putting it straight in this time.
2020-02-27 10:53:55 +00:00
Edwin Brady
1379756255
Merge pull request #200 from ohad/contrib-parser
Add @edwinb's parser and lexer libraries into the contrib stdlib
2020-02-27 10:41:13 +00:00
Edwin Brady
e77ad99ab2
Merge pull request #199 from ska80/fix-idris2c-target
Improve 'idris2c' makefile target
2020-02-27 10:40:42 +00:00
Edwin Brady
d67c0110ed
Merge pull request #198 from diakopter/patch-2
readme typo
2020-02-27 10:39:50 +00:00
Edwin Brady
ecda4ff209
Merge pull request #196 from ohad/tweak1
minor: simplify mutual recursion block
2020-02-27 10:39:25 +00:00
Edwin Brady
8f583ca900
Merge pull request #189 from chrrasmussen/fix-ide-mode-backwards-compatibility
Fix IDE Mode for Atom
2020-02-27 10:38:36 +00:00
Edwin Brady
580bc6345e
Merge pull request #197 from ohad/parser-port
Bring `src/Text/Parser` and its dependencies closer to idris2
2020-02-27 10:37:38 +00:00
Edwin Brady
d67dcd6758 Minor documentation edits 2020-02-26 22:37:26 +00:00
Edwin Brady
f08eb3d6ce TypeDD notes moved to docs/ 2020-02-26 21:53:45 +00:00
Edwin Brady
99a133c582 Document changes since Idris 1 in more detail 2020-02-26 21:46:03 +00:00
Edwin Brady
e340747b1f Some documentation on changes since Idris 1 2020-02-26 20:19:54 +00:00
Ohad Kammar
f68bff6b99 Merge branch 'master' of github.com:edwinb/Idris2 into contrib-parser 2020-02-26 17:30:13 +01:00
Edwin Brady
1bb028ae47 Update proof tutorial for Idris 2 2020-02-26 12:33:01 +00:00
Edwin Brady
1e567ab2d4 Document multiplicities in crash course 2020-02-26 11:22:55 +00:00
Kamil Shakirov
b38f6f98c6 Improve 'idris2c' makefile target 2020-02-26 13:00:25 +06:00
Edwin Brady
2ca5509eb6 More documentation refreshing
That's most of it now - just missing a section on multiplicities, and a
section on the differences from Idris 1.

Ideally, there should also be a much more gentle introduction (basically
doing the same as the first 3 chapters of TypeDD in Idris). But that's
for some other time...
2020-02-25 22:33:01 +00:00
Edwin Brady
16ae7994e7 More documentation refreshing 2020-02-25 22:18:02 +00:00
Edwin Brady
0be0c27d1a Update interpreter section of crash course 2020-02-25 21:49:26 +00:00
Edwin Brady
a70c0a6ef6 More tutorial updates 2020-02-25 21:37:48 +00:00
Edwin Brady
2967e9011f Add implementation ... using syntax
It's in the tutorial, and allows named implementations to use specific
parent named implementations.
2020-02-25 21:29:39 +00:00
Edwin Brady
827c51e343 More documentation updates
Some way through the interfaces docs, but "using" for named parent
interfaces is not implemented yet.
2020-02-25 21:01:15 +00:00
Edwin Brady
28b7c62521 Finish update of typesfuns 2020-02-25 19:44:49 +00:00
Edwin Brady
4d146d2416 Some progress on updating the tutorial 2020-02-25 18:34:32 +00:00
Edwin Brady
61578a84b6 default is a keyword now 2020-02-25 14:09:33 +00:00
Edwin Brady
2a2a20849d Add default implicit arguments
These are part of the core QTT now, so any substitutions or dependencies
will be dealt with as they should.
2020-02-25 14:09:08 +00:00
Edwin Brady
da675b38a0 Add some machinery to generate C
This is towards making a distribution that allows building from C,
rather than having to build from the Idris source, to make it easier to
install.
2020-02-25 14:09:08 +00:00
Edwin Brady
755d9bfd20 Copy some docs over from Idris 1
These are still to be updated (as noted in the files), but it needs
doing before any kind of preliminary release. Plan is to refresh the
tutorial and make sure samples work again, then write a more
comprehensive document explaining changes since Idris 1.
2020-02-25 14:09:08 +00:00
Edwin Brady
ff6fd4668b
Merge pull request #195 from ohad/default-totality
Add support for `%default [total | covering | partial]` directive
2020-02-25 14:08:35 +00:00
Matthew Wilson
c050539f34
readme typo
essentiall
2020-02-24 08:35:59 -05:00
Ohad Kammar
620d33e343 Also add Edwin's lexer library 2020-02-24 08:46:56 +00:00
Ohad Kammar
b4fa793b0c Add Edwin's Parser library from the Idris2 port 2020-02-24 08:43:27 +00:00
Edwin Brady
c862199dc2 Add updating version of makeLemma
<LocalLeader>l in the vim mode
2020-02-23 23:30:18 +00:00
Edwin Brady
2da8da8aa9 Add missing test file 2020-02-23 22:20:11 +00:00
Edwin Brady
57a14ff401 Coverage checker looks at 'impossible' clauses
These can give valuable information, but since they're not well typed,
we have to rebuild as close an approximation as we can before passing it
to the case tree compiler. We can do this in a type-directed way, but
ignoring whether any of the arguments are convertible, and not trying to
solve any of the implicits. If this fails, it doesn't use the impossible
case, otherwise it uses it to find the missing cases in the resulting
case tree.
2020-02-23 21:40:23 +00:00
Ohad Kammar
0ba11f1781 Undo changes, as not compatible with idris1 (oops):
* Implicit arguments on interface assumptions
* Removed unnecessary explication of an implicit arg
2020-02-23 19:26:00 +00:00
Ohad Kammar
a33095e559 Bring src/Text/Parser and its dependencies closer to idris2
This includes:

* Removing `%access` directives and inlining their visibility modifiers
* Fixing irrelevance annotations
* Including some standard libraries

The result is still not idris2 ready:

1. Incompatibility with the new Laziness mechanism, as it's missing
   some previous laziness/codata bindings

2. Some standard library functions moved around, and are now found in
   `Data.Nat`, that doesn't exist in Idris1
2020-02-23 18:58:44 +00:00
Ohad Kammar
d16fb0a393 minor: simplify mutual recursion block
Move `BindMode` datatype outside the `mutual` block as mutual
recursion isn't necessary to define it.
2020-02-23 18:44:28 +00:00
Edwin Brady
cd972143a5 Also check unique locals inside pairs
The error message doesn't propagate nicely here yet, but it should still
report failure to resolve the search
2020-02-23 17:44:18 +00:00