Commit graph

819 commits

Author SHA1 Message Date
Folkert
f99542f066 add special symbol for removed specializations 2021-11-18 13:15:00 +01:00
Michael Downey
9d587d37b4
Merge branch 'trunk' into add_list_all 2021-11-18 06:41:08 -05:00
Folkert
f9c81bffe0 make external specializations more efficient
- create fewer Subs values
- don't merge Subs if not needed
2021-11-17 23:09:20 +01:00
Folkert
75126b09fd refactor procs.specialized 2021-11-17 22:33:24 +01:00
Folkert
3b1e0eeb24 store a subs instead of a solved type in external specializations 2021-11-17 16:31:13 +01:00
Folkert
237d8d1c0b fix the Default instance for subs
we later rely on some variables always existing (numbers, empty record, empty tag union)
but the default instance did not insert those
2021-11-17 16:29:16 +01:00
Folkert
aa4ee812fe remove dead add_pending function 2021-11-17 13:23:46 +01:00
Folkert
d3528a3ed3 refactor ExternalSpecializations to use Vec 2021-11-17 13:21:58 +01:00
Folkert
ede5967ced Merge remote-tracking branch 'origin/trunk' into deep-copy-var-to 2021-11-16 23:56:11 +01:00
Folkert
849510c42c WIP 2021-11-16 23:55:11 +01:00
Michael Downey
51ad326d11 fmt 2021-11-16 17:30:04 -05:00
Michael Downey
d946b84e63 adding initial List.all 2021-11-16 16:34:36 -05:00
Anton-4
2a4b3d3cd3 added cfg to static size check for arm CPUs 2021-11-16 16:56:05 +01:00
Richard Feldman
28273b67da
Merge pull request #1970 from rtfeldman/shrink-call-type
Shrink call type
2021-11-15 19:56:21 -08:00
Folkert
7c4300a7a1 clarify what pending means 2021-11-15 22:43:32 +01:00
Folkert
8ebd09b616 make fewer intermediate pending specializations 2021-11-14 22:28:21 +01:00
Folkert
2c0aac2a6a remove solved type hash instance 2021-11-14 22:20:06 +01:00
Folkert
a7f9b34132 clippy 2021-11-14 02:06:57 +01:00
Folkert
f8b4ce0317 shrink tag id sizes in layouts 2021-11-13 19:31:20 +01:00
Folkert
f522d28a00 clippy 2021-11-13 16:04:23 +01:00
Folkert
83953b0bba shrink Call 2021-11-13 15:59:19 +01:00
Folkert
13713ee6ad pass layout by reference 2021-11-13 15:43:49 +01:00
Folkert
e2f7606f25 shrink higher order with indirection 2021-11-13 15:42:47 +01:00
Folkert
2262dcb3f9 clean up some other dependencies 2021-11-10 16:25:03 +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
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
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
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
f9ed060e49 Implement List.map4 2021-10-31 21:08:41 +01:00
Folkert
c7920b2a24 refactor 2021-10-31 17:38:07 +01:00
Folkert
d35686f3a8 hash less 2021-10-29 21:28:11 +02: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
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
dbf650f7ab fixes 2021-10-17 21:14:30 +02:00