Commit Graph

1003 Commits

Author SHA1 Message Date
Zoe Stafford
86c060ef13
Reimplement %nomangle in terms of %export (#2604)
* Reimplement %nomangle in terms of %export
Also deprecate %nomangle

* [ lint ] fix linter errors
2022-08-15 13:26:06 +01:00
Guillaume Allais
4672305fc3 [ fix ] more filtering of invalid datatypes 2022-08-13 11:29:19 +01:00
Steve Dunham
e29e2289e7
[ fix ] Fixes memory leaks in currentDir, fGetLine, and fGetChars (#2606) 2022-08-10 21:23:53 +01:00
Nil Geisweiller
719b5ad17f
[ cleanup ] Remove extraneous show and simplify printLn (#2618) 2022-08-10 21:22:58 +01:00
G. Allais
0cbbf97b79
[ new ] extend Deriving.Functor to (non-strictly) positive functors (#2591) 2022-07-18 14:10:46 +01:00
Mathew Polzin
4a348c1f95 Public export remaining function to allow for proofs involving parsing numbers. 2022-07-18 14:10:05 +01:00
ProofOfKeags
68a144bf18
Support System.Signal for node backend (#2556)
* first pass at signal support for node backend

* change signal values to int's

* implements defaultSignal

* return -1 as expected by calling API if any error is raised by nodejs runtime

* finishes signal support for nodejs

* extract repetitive foreign import identifiers

* fix comments
2022-07-10 10:18:58 +01:00
stefan-hoeck
ea6f9975cf [ cleanup ] add proper depends field to network.ipkg 2022-07-07 17:24:54 +01:00
Guillaume Allais
8b20da7e39 [ cleanup ] remove TT from base
As discussed with edwin, let's get rid of the external TT type.
There is no way to get your hands on a TT value anyway so this
should not change anything.
2022-07-07 16:42:19 +01:00
Denis Buzdalov
c03a39789f [ breaking ] Make arguments of runRWST like in other transformers
Put the `RWST` argument to be the last one. This makes such functions
to be easier used in point-free compositions and to be easily
interchangeable with existing `runStateT`-like functions.
2022-07-07 15:19:41 +01:00
G. Allais
4874bf2114
[ fix ] handle implicit arguments in Deriving.Functor (#2572) 2022-07-07 09:55:13 +01:00
Guillaume Allais
7db20d38a3 [ cleanup ] Fewer assert_total in deriving Functor 2022-07-04 12:03:49 +01:00
G. Allais
aeeb338e6c
[ new ] deriving Functor (#2568) 2022-07-04 08:58:18 +01:00
Jeroen de Haas
ea7e43ad74 [doc] Remove implicit argument in documentation for parseDouble 2022-07-03 22:00:31 +01:00
Denis Buzdalov
38caff23b8 [ fix ] Make the result Show of case .. of compilable
1. The arrow was fixed
2. Put explicit type ascription into a comment
3. Don't print type when it was not present in the expression
2022-06-27 15:32:02 +01:00
Denis Buzdalov
afaa80a5ae [ re #2533 ] Fix printing of lazy values in Show TTImp 2022-06-27 15:32:02 +01:00
G. Allais
4024857d20
[ base ] Various Language.Reflection improvements (#2554) 2022-06-22 13:07:27 +01:00
Denis Buzdalov
e856569d16 [ doc ] Clarify the doc comment of find* functions of SnocList 2022-06-20 12:13:37 +01:00
Denis Buzdalov
113085d0c3 [ base ] Add a function for changing the topmost FC of a TTImp 2022-06-17 19:53:07 +01:00
Denis Buzdalov
bc838467a3 [ base ] Add a function returning Dec for So 2022-06-17 19:52:35 +01:00
Denis Buzdalov
a7fb6722a0
[ re #2533 ] Fix recently added reflection's Show (#2543) 2022-06-16 11:08:51 +01:00
Denis Buzdalov
df6f4f69cd [ doc ] Add clarification to the doc of a function of Elaboration 2022-06-16 09:49:56 +01:00
G. Allais
bdf3833df5
[ new ] Auto in Agda (+ bonus) (#2541)
* [ new ] Auto in Agda (+ bonus)

* [ minor ] use DN for more readable terms
2022-06-16 09:35:45 +01:00
Guillaume Allais
cd324f9ff3 [ base ] Name convenience functions 2022-06-14 16:07:37 +01:00
Guillaume Allais
c9dbc3d743 [ new ] Show implementations for Language.Reflection 2022-06-14 16:07:37 +01:00
Guillaume Allais
381441d849 [ base ] maximum is an upper bound 2022-06-14 16:07:37 +01:00
Guillaume Allais
2060535d08 [ new ] name hints for primitive types 2022-06-14 16:07:37 +01:00
Guillaume Allais
a8fe4a778c [ base ] Show for Constants 2022-06-14 16:07:37 +01:00
Thomas E. Hansen
268a3520f3 [ base ] Port most of List.Quantifiers to List1
This doesn't include `Interleaving` and `Split`.
2022-06-09 09:05:10 +02:00
Thomas E. Hansen
5da3bc7d7c [ base ] Port List.Elem to List1 2022-06-09 09:05:10 +02:00
kasiaMarek
094a9ab06d
List proofs (#2497)
* Modified bind definition

* bind proofs and list elem proof

Co-authored-by: Katarzyna Marek <katarzynamarek@Katarzynas-MBP.lan>
2022-06-01 13:16:17 +01:00
Denis Buzdalov
a766c628e9 [ base ] Add mapping functions to Data.Vect.Quantifiers 2022-05-27 09:03:28 +01:00
Xerz
e9f562f435
[ prelude ] Add Range implementation for Char (#2505) 2022-05-27 07:57:59 +01:00
Denis Buzdalov
73608cb264 [ cleanup ] Clean up DecEq implementations with biinjective functions 2022-05-20 11:50:46 +01:00
Denis Buzdalov
d3fa76052b [ new ] Introduce a Biinjective interface 2022-05-20 11:50:46 +01:00
Denis Buzdalov
a3542ad0cd [ cleanup ] Make existing equality proofs a bit cleaner 2022-05-20 11:50:46 +01:00
Denis Buzdalov
4032ef2b85 [ base ] Implement equalities for inclusive-or type (These) 2022-05-19 13:37:28 +01:00
Denis Buzdalov
95caed3c4f [ refactor ] Support alternative equalities for TTImp 2022-05-18 11:12:05 +01:00
G. Allais
10a6734bcb
[ new ] Katla-powered landing page (#2483) 2022-05-18 08:43:47 +01:00
Zoe Stafford
71351a6c88
Merge pull request #2476 from Z-snails/bits64-popcount
Fix `FiniteBits` for `Bits64`
2022-05-14 14:05:37 +01:00
Zoe Stafford
8a0d75dc6d Fix FiniteBits for Bits64 2022-05-14 13:12:16 +01:00
Denis Buzdalov
72f0a2ab09 [ re #950 ] Remove redunant legacy data definition
`Given` with `Always` from Idris 1 library are completely overridden by
`IsYes` and `ItIsYes` respectively, which have a more common naming.
This, however, may break some very old code (fixed by a trivial rename).
2022-05-14 08:24:20 +01:00
Denis Buzdalov
d037b39e63 [ base ] Add injectivity proof for Yes and No 2022-05-14 08:23:55 +01:00
Joel Berkeley
bf87b623ef
add scanr; scanr1; unsnoc for Vect (#2471)
* add `scanr` and `scanr1` for `Vect`

* add tests

* tests

* docstring

* typos

* add unsnoc

* simplify unsnoc

* docstring

* typos
2022-05-12 17:54:34 +01:00
G. Allais
f80fc184e3
[ new ] :exec for RefC (#2466) 2022-05-10 15:09:53 +01:00
Denis Buzdalov
466e14a1e5 [ base ] Add a dependent funext function to the FunExt interface 2022-05-09 18:37:50 +01:00
Vit Brunner
4a761ea523 [ doc ] Foldable's all is a conjunction 2022-05-02 21:15:28 +01:00
vfrinken
b1f45f2748
RefC backend improvements (#2425)
* RefC backend improvements

1. OnCollect had the wrong number of arguments. The code creator expects
   3 arguments, but onCollect in prim.h expected 4 arguments. The first of which
   was an erased arguments. That is now fixed.

2. OnCollect did not call `newReference` when creating a new reference to the pointer
   and the freeing function

3. OnCollect and OnCollectAny still had a spurious printf statement

Those issues have been fixed, the test case can be found in
  tests/refc/garbageCollect

4. The IORef mechanism expects that the %World token will be passed around
   consistently. This is not the case. States in Control.App make use of
   IORefs, but the function created from Control.App.prim_app_bind
   had the world token erased to NULL.
   Now, IORefs are managed using a global variable,
   IORef_Storage * global_IORef_Storage;
   referenced in cBackend.h, defined in the created .c file, and set to NULL
   in main();

5. While multithreading and forking is still not supported, compiling a program
   that makes use of Control.App demands a C implementation of prim_fork.
   Files support/refc/threads.c and support/refc/threads.h provide a
   dummy implementation for it, so that Control.App programs compile and run.

A test for these 2 issues is given in tests/refc/issue2424

* format changes

to make the linter happy

* format changes

to make the linter happy

* format changes

to make the linter happy

* spelling mistake braket -> bracket

Co-authored-by: Volkmar Frinken <volkmar@onutechnology.com>
2022-04-27 13:59:32 +01:00
Edwin Brady
7c5650e94e
Allow functions to be marked for foreign export (#2433)
* Allow functions to be marked for foreign export

This relies on the backend knowing what to do with such things, but the
general idea is to mark them with '%export "backend:exportedname"' then
'getCompileDataWith', given a back end, will search for every function
that needs to be exported, as well as every function starting from the
expression to be compiled. This will allow Idris functions to be called
from other languages, where a backend supports it.

This is hard to set up a test case for, for the moment, since no
backends actually do anything with it. So consider it a bit of a
placeholder for now.

* Add missing clause to Eq FnOpt

Thanks to @buzden
2022-04-25 13:48:30 +01:00
Denis Buzdalov
77cf47f962
[ re #2423 ] Make Eq implementations in Language.Reflection.TTImp total (#2430)
* [ re #2423 ] Turn newly added `Eq` implementations to be total
* [ fix ] Add lacking `Eq TTImp` clauses and lacking `Eq` implementations
2022-04-22 18:01:42 +01:00
Zoe Stafford
68bcacf3ec
[base] add missing node ffi functions (#2427) 2022-04-22 15:45:52 +01:00
G. Allais
22b98f231e
[ fix ] highlight unambiguous names in `with' (#2423) 2022-04-22 13:34:05 +01:00
Denis Buzdalov
99a3ae05fa [ contrib ] Add specialised traverse_ and friends for lazy list 2022-04-20 14:51:54 +01:00
G. Allais
2287fd9edb
[ ci ] use katla to build html doc of the libs (#2422) 2022-04-20 12:42:58 +01:00
Denis Buzdalov
71c68d8dcf [ base ] Add a trace variant easily embeddable to point-free expr 2022-04-14 13:36:14 +01:00
CodingCellist
36e38860b7
[ contrib ] Implement Show ParsingError (#2407) 2022-04-09 12:37:45 +01:00
Mathew Polzin
c91a768486
System NodeJS additions (#2401) 2022-04-07 10:09:30 +01:00
Thomas E. Hansen
a644a85a57 [ base ] public export quantifier functions 2022-04-04 13:24:12 +02:00
Thomas E. Hansen
dc02e4d822 [ refactor ] Put Vect quantifiers in their own namespaces
This makes the code in `Data.Vect.Quantifiers` consistent with the files
`Data.List.Quantifiers` and `Data.SnocList.Quantifiers`.
2022-04-04 13:24:12 +02:00
Denis Buzdalov
1c027d2218 [ re #2370 ] Add forgotten export clause 2022-04-01 12:20:01 +01:00
Denis Buzdalov
f46483106f [ base ] Add a function extensionality interface
Its purpose is to be able to formulate unversally properties which
were true if function extensionality was present in the type system
2022-04-01 11:44:37 +01:00
Robert Wright
1d6c3eb84f Add Reverse Ord instance 2022-03-31 10:50:51 +01:00
Daniel Kröni
5eea546642 Aligned the signature of NoMangle from Language.Reflection.FnOpts with that of TTImp.TTImp.FnOpt'. 2022-03-30 13:34:49 +02:00
Jeremy
47cae3459c
[ doc ] for Control.WellFounded (#2379)
Co-authored-by: Zoe Stafford <36511192+Z-snails@users.noreply.github.com>
2022-03-27 13:05:20 +01:00
Jeremy
394613432f
Add documentation for Control.Monad.* (#2365)
Co-authored-by: Zoe Stafford <36511192+Z-snails@users.noreply.github.com>
2022-03-25 10:14:25 +00:00
Denis Buzdalov
e8d3d788c1
[ base ] Add some more properties, functions and interface implementations (#2361) 2022-03-23 13:33:13 +00:00
Ohad Kammar
d08b827f49
Implement standard List operations for SnocLists (#2364)
Co-authored-by: Ohad Kammar <ohad.kammar@ed.ac.uk>
2022-03-23 11:14:30 +00:00
Ohad Kammar
319c7f7b86
Move Syntax.PreorderReasoning into base (#2368) 2022-03-22 20:58:36 +00:00
Denis Buzdalov
086cc6613b [ contrib ] Add keySet function for dependent sorted maps too 2022-03-22 14:11:25 +00:00
Denis Buzdalov
fc38afc144
[ base ] Some properties of List and SnocList (#2359) 2022-03-18 08:40:37 +00:00
Joel Berkeley
399d6016a9
[ prelude ] add subtract (#2357) 2022-03-17 18:24:42 +00:00
Joel Berkeley
fc45f7d888
[ base ] add insertAt for List (#2336) 2022-03-17 18:23:47 +00:00
G. Allais
a973396567
[ base ] quantifiers for Snoclists (#2349) 2022-03-16 15:30:16 +00:00
Denis Buzdalov
05d64483f6 [ refactor ] Factor out a type for primitive types out of Constant 2022-03-10 23:07:20 +00:00
G. Allais
fd02bf8b3e
[ fix #2303 ] remove quadratic unwords (#2345) 2022-03-07 18:34:06 +00:00
G. Allais
1c396744d9
[ doc ] :printdef for interface implementations (#2340) 2022-03-07 11:47:20 +00:00
Robert Wright
6b367010ce Inline SnocList foldl utility function
The scoping of the utility function meant that Idris treats `foldl f z (xs :< x)` and `f (foldl f z xs) x` as two different terms, making proving things about it difficult.
2022-03-07 11:46:43 +00:00
Joel Berkeley
0ab0ecb199
add replaceAt for List (#2335) 2022-03-03 23:40:18 +00:00
Joel Berkeley
f436388a6b
adopt backend implementations of pow (#2334) 2022-03-03 23:39:25 +00:00
G. Allais
1011cc6162
[ papers ] Tychonoff (Part I) (#2332) 2022-02-24 11:12:53 +00:00
Jan de Muijnck-Hughes
4ba3bb6670
[ fix ] Literate things (#2312)
Co-authored-by: G. Allais <guillaume.allais@ens-lyon.org>
2022-02-18 11:29:52 +00:00
octeep
768d164ec9
[ network ] add binary support for socket + fix recvAll (#2308) 2022-02-16 20:12:24 +00:00
Denis Buzdalov
b727ae4a97 [ new ] Add a Monoid instance of the f a where f is Applicative 2022-02-16 14:23:56 +00:00
Denis Buzdalov
e2487106fd
[ prelude ] Ease Compose compositions (#2324) 2022-02-16 14:19:25 +00:00
CodingCellist
c5d96a10e7
[ base ] Split a list according to a decidable property (#2302) 2022-02-11 11:21:20 +00:00
Joel Berkeley
5abc01453d
add deleteAt for List (#2317) 2022-02-11 09:28:36 +00:00
G. Allais
33d99adb53
[ linear ] These seem useful (#2316) 2022-02-11 09:28:15 +00:00
Guillaume Allais
bec4a0a88e [ re #499 ] quantity-aware with-clauses 2022-02-09 09:19:40 +00:00
Mathew Polzin
8208ed2590
[ new ] A couple of nearly trivial proofs about list length. (#2311) 2022-02-07 17:51:04 +00:00
Nick Drozd
2c9bf24d2f [ libs ] Strengthen some totality checks (#2304) 2022-02-03 18:41:51 +00:00
Robert Wright
1776efa8a5 Allow Type-level String operations 2022-02-03 16:10:47 +00:00
CodingCellist
f4b78157cc
[ base,tests ] Reduce dependency on contrib (#1595) 2022-02-02 11:17:10 +00:00
Guillaume Allais
56009ad3ac [ cleanup ] silence warnings in libs 2022-02-02 11:09:03 +00:00
madman-bob
0ee9632e45
[ refactor ] Abstract Prelude.elem to work with all Foldables (#2294) 2022-02-01 21:34:29 +00:00
Denis Buzdalov
b17e65fc82
[ base ] Generalise existing min-max semigroups and add monoid for Fin (#2298) 2022-02-01 21:24:49 +00:00
André Videla
208adb7202
[ linear ] add utilities for linear datastructures (#2293) 2022-02-01 21:22:16 +00:00
Stefan Höck
44245e1683
[ fix ] issue #2288 (#2289) 2022-01-28 09:01:09 +00:00
Guillaume Allais
3c63902d82 [ new ] Dependent Tagless Final 2022-01-27 17:26:52 +00:00
Michael Messer
26527c3a6e
[ fix ] expose Data.Seq.Internal (#2291) 2022-01-26 18:38:22 +00:00
Alias Qli
1ba0008486
[contrib] A finger tree implementation (#1454) 2022-01-25 18:29:48 +00:00