Commit graph

112 commits

Author SHA1 Message Date
Folkert
cfa331be02
handle sorting of unique lists 2022-05-06 15:28:56 +02:00
Folkert
8f5956fdfe
refactor 2022-05-06 10:26:44 +02:00
Folkert
032104e02b
factor out decrement to closure argument 2022-05-06 09:52:49 +02:00
Folkert
42ee775fce
WIP 2022-05-04 19:29:24 +02:00
Folkert
5d91ad9254
refactor 2022-05-04 15:16:03 +02:00
Folkert
b3b3b8790c
add new Expr variants 2022-03-07 21:13:48 +01:00
Folkert
d7045b037f use param_map instead of localcontext 2021-12-05 15:21:25 +01:00
Folkert
834ba77046 missed a bool 2021-12-01 12:53:47 +01:00
Folkert
bec74c36c5 refactor passed (to higher order lowlevel) funcion 2021-11-30 21:50:27 +01:00
Folkert
0bdda2506c add update mode to reset and reuse 2021-11-28 14:13:02 +01:00
Michael Downey
d946b84e63 adding initial List.all 2021-11-16 16:34:36 -05:00
Folkert
83953b0bba shrink Call 2021-11-13 15:59:19 +01:00
Folkert
e2f7606f25 shrink higher order with indirection 2021-11-13 15:42:47 +01:00
ayazhafiz
f65b174ab5 Implement List.find
`List.find : List elem, (elem -> Bool) -> Result elem [ NotFound ]*`
behaves as follows:

```
>>> List.find [1, 2, 3] (\n -> n > 2)
Ok 2
>>> List.find [1, 2, 3] (\n -> n > 4)
Err NotFound
```

We implement this as builtin in two phases. First, we call out to a
pure-llvm-lowlevel `ListFindUnsafe` that returns a record indicating
whether a satisfying element was found, and the value of that element
(the value is all null bytes if the element wasn't found). Then, we lift
that record to a `Result` via a standard construction of the can AST.

Closes #1909
2021-11-08 21:03:14 -05:00
Kevin Sjöberg
44938a9e35 Implement List.any 2021-11-07 20:44:10 +01:00
Folkert
0ad83fe990 Merge remote-tracking branch 'origin/trunk' into morphic-spec-sortwith 2021-11-01 23:11:52 +01:00
Folkert
ca537a44b8 thread through update_mode 2021-11-01 20:12:39 +01:00
Kevin Sjöberg
f9ed060e49 Implement List.map4 2021-10-31 21:08:41 +01:00
Folkert
dbf650f7ab fixes 2021-10-17 21:14:30 +02:00
Folkert
a4f7ddb1f5 rename 2021-10-17 20:45:49 +02:00
Folkert
9763f9b51b WIP 2021-10-17 16:08:41 +02:00
Folkert
ebcee4021c flip list.walk passed function arguments 2021-10-10 12:35:03 +02:00
Folkert
8e7aef314a add ListLiteralElement 2021-09-05 21:23:08 +02:00
Folkert
194918fe4b remove Invoke 2021-08-20 19:32:55 +02:00
Folkert
bb5b733de4 Try to recover from LookupNotInScope until the error is reported 2021-08-18 23:12:12 +02:00
Folkert
899cbeabd7 fix extra ampersands 2021-07-29 17:32:08 +02:00
Folkert
31e1fe8870 cache the initial context in inc_dec 2021-07-25 21:20:04 +02:00
Folkert
f76195d05c cleanup 2021-07-25 21:13:14 +02:00
Folkert
5bb66a6b8e intern layouts 2021-07-25 13:24:11 +02:00
Folkert
8eb0c6fbb8 fix example 2021-07-19 22:19:55 +02:00
Folkert
0171fd0959 remove Boxed 2021-07-14 15:33:59 +02:00
Folkert
d80deb37cd cleanup 2021-07-13 00:41:46 +02:00
Folkert
3c2ee9e447 WIP 2021-07-02 20:34:11 +02:00
Folkert
98b4930054 rename 2021-06-21 23:14:05 +02:00
Folkert
205b168f16 rename 2021-06-21 23:02:49 +02:00
Folkert
e274976c6a make it work 2021-06-20 22:36:22 +02:00
Folkert
aba01ad62a add index 2021-06-20 21:33:25 +02:00
Folkert
e1af2eb7d0 add CoerceToTagId 2021-06-20 21:23:50 +02:00
Eric Correia
342d1f34c2 set up GetTagId 2021-06-20 10:54:53 -04:00
Folkert
6a010c9513 rename TopLevelFunctionLayout -> ProcLayout 2021-06-19 15:07:40 +02:00
Folkert
a64f80dbe8 fix hash problem 2021-06-18 21:16:43 +02:00
Folkert
94cbb103ef use toplevelfunctionlayout in refcount insertion 2021-06-18 20:46:15 +02:00
Folkert
cc98237a0a closure_env_layout 2021-06-16 22:15:55 +02:00
Folkert
b622202d97 rename joinpoint field 2021-06-14 21:12:24 +02:00
Folkert
86f35c33cd work on higher order lowlevels 2021-06-12 23:05:06 +02:00
Folkert
9476f63e07 WIP 2021-06-09 19:21:24 +02:00
Anton-4
314503cf7f fixed typos, added typos checking to CI 2021-06-05 20:02:54 +02:00
Folkert
03cc96f4ed rename Rethrow -> Resume 2021-05-30 14:44:46 +02:00
Folkert
64576ddab5 add exception id to invoke/rethrow 2021-05-29 23:27:43 +02:00
Folkert
fbb711b2ca Merge remote-tracking branch 'origin/trunk' into specialize-lowlevel 2021-05-24 15:11:40 +02:00