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