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