Commit Graph

147 Commits

Author SHA1 Message Date
Edwin Brady
b5b9372fff Add delete and union to Data.List 2020-03-10 14:52:46 +00:00
Edwin Brady
5bc11e4698 Add 'new1' to Control.App
Sometimes useful in App1 programs to add new state.
2020-03-09 21:23:56 +00:00
Edwin Brady
25843793c7 Improve linearity in Control.App
There are a few things that have linear usage but wasn't explicit in
types, so this will make some things easier to use in linear protocols.
2020-03-08 12:53:59 +00:00
Edwin Brady
34044597c0
Merge pull request #213 from ska80/prelude/getchar-putchar
Add getChar, putChar and putCharLn to prelude
2020-03-07 14:15:22 +00:00
Edwin Brady
9060b24f2f Move network test to chez test suite 2020-03-05 18:03:12 +00:00
Edwin Brady
67dc71f3c9
Merge pull request #208 from ska80/network-test
Simplify 'test' target in libs/network/Makefile
2020-03-05 10:30:18 +00:00
Edwin Brady
aef66099b5
Merge pull request #207 from ska80/update-gitignore
Improve .gitignore patterns
2020-03-05 10:29:11 +00:00
Kamil Shakirov
c8c0c5fb49 Add getChar, putChar and putCharLn to prelude 2020-03-05 14:55:20 +06:00
Kamil Shakirov
30830de5b7 Simplify 'test' target in libs/network/Makefile 2020-03-02 16:27:55 +06:00
Kamil Shakirov
d3820e1197 Improve .gitignore patterns 2020-03-02 14:21:43 +06: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
b83f01e2f4 Small documentation updates 2020-02-28 00:15:03 +00: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
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
66d67c84cc Add directory reading functions
and support for Chez and Racket
2020-02-23 12:17:36 +00:00
Edwin Brady
14e9872f07 Don't show MN names in hole contexts
This prevents display of shadowed names from case blocks/where clauses
that are now unusable. It does mean that constraint arguments aren't
displayed, unless given an explicit name - this may not be good, since
we might want to know which constraints are in scope, so it may yet need
a little tweaking.
2020-02-15 22:33:13 +00:00
Edwin Brady
625027f278 Add nub to Data.List 2020-02-09 21:45:36 +00:00
Edwin Brady
8227859760 Add System.Directory
Currently supports creating and changing directories. Support for
reading contents of directories still missing.
2020-02-01 18:43:28 +00:00
Edwin Brady
e1c6926da6 Store name directives as a map
They're global, and so we don't reset per file, so we might get
duplicates, so it's much quicker to store as a map even though we'd
expect few of them overall.
2020-02-01 18:06:35 +00:00
Edwin Brady
6f4fa7ade9 More Data.List functions 2020-02-01 13:32:30 +00:00
Edwin Brady
7d47c08140 Add Data.List.isPrefix 2020-02-01 12:57:14 +00:00
Edwin Brady
960ad42732 Add System.Info
Gets the OS info from the host compiler, which we'll need to be careful
with when bootstrapping (since maybe we'll distribute generated chez or
racket as a starting point for bootstrapping...)
2020-02-01 12:32:42 +00:00
Edwin Brady
284a3ded69 Add strIndex and strTail 2020-01-31 23:06:08 +00:00
Edwin Brady
2465e5a149 Some buffer updates
Initialising buffers from files, error checking on creation, resizing.
2020-01-31 16:49:31 +00:00
Edwin Brady
854e39936e Some Data.Buffer bits
Need to know length of strings in bytes sometimes, not just characters,
to check we have enough space.
Also add copyData
2020-01-30 18:36:59 +00:00
Edwin Brady
bb6cefc0a9 Added Data.IOArray
plus scheme primitives for runtime, via vectors
2020-01-30 17:04:33 +00:00
Edwin Brady
a26581f454 Use a data type for dotting reason
Then we can more safely match on it
2020-01-24 16:16:31 +00:00
Edwin Brady
c84e2b5cb7 void's argument is certainly irrelevant!
Since it's the empty type...
2020-01-23 17:45:19 +00:00
Edwin Brady
04e4ebf80e Better approach to erasure in pattern matching
It's a big patch, but the summary is that it's okay to use a pattern in
an erased position if either:

- the pattern can also be solved by unification (this is the same as
  'dot patterns' for matching on non-constructor forms)
- the argument position is detaggable w.r.t. non-erased arguments, which
  means we can tell which pattern it is without pattern matching

The second case, in particular, means we can still pattern match on
proof terms which turn out to be irrelevant, especially Refl.

Fixes #178
2020-01-21 18:47:43 +00:00
Edwin Brady
af9e920d74 Merge branch 'linearity-clean' of https://github.com/ohad/Idris2 into ohad-linearity-clean 2020-01-19 16:56:13 +00:00
Edwin Brady
ea8c22135c
Merge pull request #156 from clayrat/misc-fixes
Misc fixes and additions
2020-01-19 16:48:47 +00:00
Alex Gryzlov
ce15b48a78 Merge remote-tracking branch 'upstream/master' into misc-fixes 2020-01-15 22:52:38 +01: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
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
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
ba5a798549
Merge pull request #153 from abailly/export-network
export Network.Socket functions
2019-12-07 15:14:42 +00:00
Edwin Brady
050fcfa45a
Merge pull request #148 from msmorgan/list-replicate
Add replicate to base/Data.List.
2019-12-06 10:59:12 +00:00
Edwin Brady
468555bb2e
Merge pull request #143 from ohad/bugfix-#133
Bugfix #133 and library support for tail-recursive list manipulation
2019-12-06 10:56:03 +00:00
Edwin Brady
262177016c
Merge pull request #147 from msmorgan/list-zip
Add zip functions to base/Data.List.
2019-12-06 10:42:11 +00:00
Edwin Brady
078b5be85f
Merge pull request #144 from sysvinit/debug-trace
Port Debug.Trace from Idris 1
2019-12-06 10:38:28 +00:00
Edwin Brady
d9f1b01ef7
Merge branch 'master' into bugfix-#133 2019-12-06 10:28:07 +00:00
Edwin Brady
0a51a72806 Add runElab to syntax tree
Nothing done yet in the elaborator, but it's ready to be filled in later
2019-12-05 18:58:53 +00:00
Edwin Brady
07509f6103 Begin elaboration of quoting terms 2019-11-30 15:26:17 +00:00
Edwin Brady
aae3d0f718 Reorganise Language.Reflection modules 2019-11-30 13:23:03 +00:00
Kamil Shakirov
8afad8ef0a Add unwords and unlines to base/Data.Strings from Idris 1 2019-11-26 01:17:18 +06:00
Alex Gryzlov
1652a6be7d Merge remote-tracking branch 'upstream/master' into misc-fixes 2019-11-25 19:18:09 +03:00
Edwin Brady
1c006b647a Reflect/reify for TTImp
This is further progress towards a metaprogramming system in a form
similar to Elaborator Reflection or Template Haskell, but trying to
avoid leaking too many implementation details of the elaborator itself.
2019-11-24 21:17:16 +00:00