Commit graph

1422 commits

Author SHA1 Message Date
Folkert
94efbd0e95 Merge remote-tracking branch 'origin/trunk' into builtins-list-take-last 2021-11-09 16:18:19 +01:00
satotake
772fc9c021 Implement List.takeLast 2021-11-09 12:26:17 +00:00
ayazhafiz
9e50580715 Walk the input list during List.find alias analysis 2021-11-08 22:00:03 -05:00
ayazhafiz
75b439cb31 Remove unnecessary clone 2021-11-08 21:03:15 -05:00
ayazhafiz
731f7a11a1 Remove unused variable 2021-11-08 21:03:15 -05: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
satotake
878400f95f Implement List.takeFirst 2021-11-08 14:10:53 +00:00
Kevin Sjöberg
44938a9e35 Implement List.any 2021-11-07 20:44:10 +01:00
Brendan Hansknecht
73e2cbcb1e Make versions numbers consistent and matching the lock files 2021-11-06 13:24:45 -07:00
Brendan Hansknecht
bddc08c977 Remove unused dependencies 2021-11-05 16:58:11 -07:00
Richard Feldman
18228ec39f
Merge pull request #1885 from rtfeldman/tags-invalid-alignment
fix invalid alignment in tags
2021-11-04 19:32:26 -04:00
Richard Feldman
ff48abdd06 Refactor NonRecursive to use flat_map and match 2021-11-03 19:44:35 -04:00
Folkert
aa9bf6bdff fix alignment problem 2021-11-03 18:21:07 +01:00
Folkert
c5005d3dd1 Merge remote-tracking branch 'origin/trunk' into partialproc-by-reference 2021-11-03 15:32:39 +01:00
Folkert
353ad04229 simplify noncapturing closure IR gen 2021-11-03 15:18:11 +01:00
Folkert
bc71cf53d6 simplify capturing closure IR gen 2021-11-03 14:26:14 +01:00
Folkert
a15183a7d1 refactor 2021-11-03 14:09:04 +01:00
Folkert
74df66a472 make new PartialProcs struct 2021-11-03 13:59:00 +01:00
Anton-4
a3fc724df3 removed unused maplit 2021-11-03 10:50:25 +01:00
Folkert
487948e514 WIP 2021-11-02 21:08:12 +01:00
Folkert
0ad83fe990 Merge remote-tracking branch 'origin/trunk' into morphic-spec-sortwith 2021-11-01 23:11:52 +01:00
Folkert
89b850983d all higher order lowlevels have morphic specs 2021-11-01 23:05:59 +01:00
Folkert
a36fddd27a morphic for List.map, List.mapWithIndex, List.walk 2021-11-01 21:21:26 +01:00
Folkert
ca537a44b8 thread through update_mode 2021-11-01 20:12:39 +01:00
Folkert
830764221e add specification for sortWith 2021-10-31 22:31:55 +01:00
Kevin Sjöberg
0f8047cbf0 Remove dead code 2021-10-31 21:08:41 +01:00
Kevin Sjöberg
f9ed060e49 Implement List.map4 2021-10-31 21:08:41 +01:00
Folkert
c7920b2a24 refactor 2021-10-31 17:38:07 +01:00
Folkert
a40c4f4fd5 use Entry 2021-10-31 13:47:02 +01:00
Folkert
d35686f3a8 hash less 2021-10-29 21:28:11 +02:00
Folkert
eda904e63e don't register debug idents while doing work (it happens afterwards 2021-10-29 21:26:36 +02:00
Richard Feldman
2980e195ce
Merge pull request #1835 from rtfeldman/fix-ir-clones
remove clones in ir.rs
2021-10-28 22:15:17 -04:00
Dan Gieschen Knutson
02117ba512
Merge branch 'trunk' into str_trim 2021-10-27 18:01:29 -05:00
Folkert
2adaf2be7f remove clones 2021-10-27 23:07:33 +02:00
Folkert
3559a0ed6b move check 2021-10-27 22:25:37 +02:00
Folkert
456b6fd4d9 remove clone 2021-10-27 22:25:17 +02:00
Folkert
d561f2661d speedups 2021-10-27 00:01:21 +02:00
Dan Knutson
e7523ad41d add Roc wiring 2021-10-25 20:22:37 -05:00
Folkert
127b1495a7 add comment 2021-10-22 23:00:47 +02:00
Folkert
2e773e5f66 turn module_thunks into a slice 2021-10-22 22:59:00 +02:00
Folkert
6a6ea64323 abstract checking of is module thunk 2021-10-22 22:16:52 +02:00
Folkert
6400baf2c1 shrink Procs until the last moment 2021-10-22 21:42:53 +02:00
Folkert
eaaf3eb940 simplify monomorphization first steps 2021-10-22 18:12:46 +02:00
Folkert
0529d6dbc6 refactor insert_named 2021-10-22 17:22:15 +02:00
Folkert
9d343ab206 use vector instead of set 2021-10-22 16:57:14 +02:00
Folkert
5507743776 pass arguments as owned again, borrowed caused regressions 2021-10-21 21:09:48 +02:00
Folkert
031c7cc2e2 Merge remote-tracking branch 'origin/trunk' into mono-lowlevel 2021-10-18 11:11:04 +02:00
Folkert
dbf650f7ab fixes 2021-10-17 21:14:30 +02:00
Folkert
a4f7ddb1f5 rename 2021-10-17 20:45:49 +02:00
Folkert
434ccbbf68 working parallel implementation 2021-10-17 20:42:29 +02:00