Edwin Brady
2ce0335fd5
Implement qualified do
...
This allows do blocks to be qualified with the namespace that the (>>=)
operator is defined in. Inspired by Purescript's version of the same
thing, and this ghc proposal:
https://github.com/ghc-proposals/ghc-proposals/blob/master/proposals/0216-qualified-do.rst
2020-07-04 23:01:43 +01:00
Edwin Brady
028624a18d
Add "import X as Y" properly
...
Instead of just the cursory name update that we used to do (which didn't
work properly anyway for a lot of reasons), now we add aliases for all
the names in the imported module.
So, like Idris 1, every global has a canonical name by which we can
refer to it, but it can also have aliases via "import ... as".
2020-07-04 20:26:49 +01:00
Giuseppe Lomurno
36c62c754a
Updated documentation
2020-06-26 19:16:14 +02:00
Edwin Brady
8540d2fb9a
Add experimental library for linear computations
...
In Control.Linear.LIO - allows wrapping anything that supports chaining
of linear computations (most usefully, IO).
2020-06-23 23:11:48 +01:00
Edwin Brady
1e6314c4cc
Merge pull request #345 from edwinb/hasio
...
HasIO interface for IO actions
2020-06-21 20:24:29 +01:00
Edwin Brady
0316dfa417
Remove reference to MonadIO from CHANGELOG
2020-06-21 19:41:18 +01:00
Edwin Brady
28855088c2
Split HasIO into HasIO and MonadIO
...
For things which don't require (>>=), HasIO is fine, otherwise MonadIO
gives access to the monad interface.
2020-06-21 14:46:14 +01:00
Niklas Larsson
d31e59bacf
Merge pull request #327 from chrrasmussen/add-builddir-and-output-dir
...
Allow overriding build and output directory
2020-06-20 20:52:33 +02:00
Niklas Larsson
0d2871db3c
Merge pull request #315 from ShinKage/repl-import-module
...
Module command to import module in REPL
2020-06-20 20:51:17 +02:00
Christian Rasmussen
ceb7a30c09
Update changelog
2020-06-20 17:23:51 +02:00
Edwin Brady
8c556d0c26
Merge pull request #340 from edwinb/strefs
...
Control.Monad.ST and Refs interface
2020-06-20 13:16:27 +01:00
Edwin Brady
f9318cf477
Correct note in CHANGELOG
2020-06-20 12:55:42 +01:00
Edwin Brady
ab03249d49
Add Data.STRef and a generic Ref interface
2020-06-20 00:46:20 +01:00
Kamiλ Shakirov
da0e056d7e
Add 'optional' command line options ( #309 )
2020-06-19 10:36:07 +01:00
Niklas Larsson
9ebe6c9cc7
Mention custom codegens in the change log
2020-06-18 12:30:35 +02:00
Giuseppe Lomurno
cd1730f0ab
Add module REPL command
2020-06-16 17:29:10 +02:00
Edwin Brady
ec89b97896
Add note to CHANGELOG
2020-06-12 14:12:32 +01:00
Edwin Brady
d5b5af91d1
Implement %macro flag
...
A %macro must always be fully applied. Whenever the elaborator
encounters a %macro application (except in a function LHS) it evaluates
the application and sends the result to %runElab. So:
%macro
foo : args -> Elab TT
...
def = foo a b c
is equivalent to
foo : args -> Elab TT
...
def = %runElab foo a b c
2020-06-01 17:55:54 +01:00
Edwin Brady
d45f92fd97
Add some reflected name manipulation
...
genSym, for generating a unique global name, and inCurrentNS for putting
a name in the current namespace.
2020-06-01 15:13:42 +01:00
Edwin Brady
e2aabd6602
Add syntax for quoting names
...
`{{ n }} gives a value of type Name. No name resolution is attempted (so
no namespaces added etc)
2020-06-01 13:39:18 +01:00
Edwin Brady
2eb2ce6097
Add Bits primitives
...
Including appropriate casts, and Num/Eq/Ord/Show implementations.
Also includes new primitives in Data.Buffer, and calls to foreign
functions in C as 'unsigned'.
2020-06-01 11:48:03 +01:00
Edwin Brady
498421a236
All functions now need to be covering by default
...
This has caught a couple of things in the Idris 2 code base itself. Some
tests needed partial annotations too.
2020-05-24 19:58:20 +01:00
Matus Tejiscak
74dd653fc5
Apply the patch from idris2-boot.
2020-05-22 20:26:10 +02: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
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
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
Kamil Shakirov
806c993d99
Move System.Clock from 'contrib' to 'base'
2020-05-21 17:00:09 +06:00
Edwin Brady
fd2ebd52c3
Add licence and changelog and update REAMDE
2020-05-20 11:31:48 +01:00