Commit graph

1160 commits

Author SHA1 Message Date
Agus Zubiaga
e80e3e5b2d
Convert top-level value def to fn taking params 2024-08-17 11:21:21 -03:00
Ayaz Hafiz
9abbcfaafc
Optimize literal list construction in LLVM backend
Currently, list literals are always heap-allocated and their elements
are stored by emitting a GEP and store for each item in the literal.
This produces huge quantities of IR, causing compile times for e.g.
programs with large literals or ingested files to blow up.

Instead, if a list literal consists entirely of literal values, create a
global section for the literal and return a pointer to it.
2024-08-09 18:51:17 -07:00
Agus Zubiaga
762799052e
Merge branch 'main' into typecheck-module-params 2024-08-07 18:55:33 -03:00
Anton-4
60ca8382a5
improve abilities error 2024-08-03 11:57:23 +02:00
Brendan Hansknecht
b8fb83af86
get wasm dev backend working 2024-07-21 19:53:36 -07:00
Brendan Hansknecht
2779145ec5
clarify list drop specialization state 2024-07-16 13:14:39 -07:00
Brendan Hansknecht
ae0f445d86
A clarity around disabling list drop specialization 2024-07-15 17:12:22 -07:00
Brendan Hansknecht
50ba3071e1
disable list drop specialization 2024-07-15 17:04:32 -07:00
Brendan Hansknecht
507d339691
fix infinite recursion in dev rc generation 2024-07-15 09:04:50 -07:00
Brendan Hansknecht
afda757433
avoid extra joinpoint and loop for list refcounting 2024-07-13 10:39:57 -07:00
Brendan Hansknecht
c734a27b59
move List.map* into roc 2024-07-13 10:39:56 -07:00
Brendan Hansknecht
6712824891
correct arg mapping for inline refcounting calls 2024-07-13 10:39:56 -07:00
Brendan Hansknecht
f92d1934d4
add missing symbol in call 2024-07-13 10:39:55 -07:00
Brendan Hansknecht
ba9b15f7d6
generate elem refcount function and pass it into decref lowlevel 2024-07-13 10:39:55 -07:00
Brendan Hansknecht
516afaff41
minor arg correction 2024-07-13 10:39:55 -07:00
Brendan Hansknecht
927eff0bf4
generate indirect refcount calls in wasm backend 2024-07-13 10:39:55 -07:00
Brendan Hansknecht
0ad638b17d
minor cleanup 2024-07-13 10:39:54 -07:00
Brendan Hansknecht
d0b564360b
correct low level calling for list incref/decref 2024-07-13 10:39:54 -07:00
Brendan Hansknecht
23154c41aa
Revert "start correct list refcount function generation"
This reverts commit a8b4d0ef7f492215ce2228a34c6046c4790cc6db.
2024-07-13 10:39:54 -07:00
Brendan Hansknecht
e92cf1be42
Revert "attempt to correct list refcount generation in dev backends"
This reverts commit 0854a1a53a2db441c648140bdd24de91125ec645.
2024-07-13 10:39:54 -07:00
Brendan Hansknecht
36bc8bfac4
attempt to correct list refcount generation in dev backends 2024-07-13 10:39:54 -07:00
Brendan Hansknecht
94fe0820d5
start correct list refcount function generation 2024-07-13 10:39:54 -07:00
Brendan Hansknecht
61784629e7
update todos around list refcount func generation 2024-07-13 10:39:54 -07:00
Brendan Hansknecht
9e70308952
cleanup misc minor issues 2024-07-13 10:39:53 -07:00
Brendan Hansknecht
48eb9c31a9
update list generated refcounting functions for dev and wasm 2024-07-13 10:39:53 -07:00
Brendan Hansknecht
d5e91ed61e
Update dev and wasm backend to use new list bitcode args 2024-07-13 10:39:52 -07:00
Anton-4
b702cb634f
better mono repl error 2024-07-12 17:02:34 +02:00
Anton-4
15a7ed2e95
added error tip 2024-07-09 19:46:33 +02:00
Ayaz
eca229e3d1
Merge pull request #6887 from roc-lang/in-layout-unit 2024-07-07 17:22:56 -05:00
Folkert
80a83f3935
when inserting into an interner, re-use Layout::UNIT when possible
it is prettier in debug output, and should also be more efficient
2024-07-07 23:11:36 +02:00
Agus Zubiaga
0cbb352a89
Move unexpected params warning to solve 2024-07-06 21:36:26 -03:00
Folkert
2ec7f56643
add TODO comment 2024-07-06 16:21:03 +02:00
Folkert
ee3ac41a58
add assert to prevent UB?! 2024-07-06 16:14:34 +02:00
Folkert
26e6f1ca92
clippy 2024-07-06 16:14:34 +02:00
Folkert
90b70c3df0
slightly optimize modified tracking 2024-07-06 16:14:33 +02:00
Folkert
f4bd41352b
use BorrowSignature::from_layouts 2024-07-06 16:14:33 +02:00
Folkert
14b02c5827
remove clone 2024-07-06 16:14:32 +02:00
Folkert
047779d981
WIP infer join points too 2024-07-06 16:14:29 +02:00
Folkert
4a121a2348
nothing we can do for by-pointer calls 2024-07-06 16:08:59 +02:00
Folkert
f361d79249
make a real fixed point 2024-07-06 16:08:59 +02:00
Folkert
3cbec41d59
hook borrow inference up 2024-07-06 16:05:52 +02:00
Folkert
199558b661
basic transitive inference 2024-07-06 16:05:52 +02:00
Anton-4
1bcf30391b
Merge pull request #6819 from roc-lang/rust-1-77-2-upgrade
Rust 1.77.2 upgrade
2024-07-06 03:23:54 +02:00
Agus Zubiaga
400c156d81
Replace params mono todo with unimplemented 2024-07-02 11:10:00 -03:00
Agus Zubiaga
922b1c44ef
Report missing params 2024-07-02 11:10:00 -03:00
Agus Zubiaga
5ec4b042bb
Constrain and solve import params
No reporting yet
2024-07-02 04:10:46 -03:00
Agus Zubiaga
674adf1fad
Wrap import params expr so we can constrain later 2024-07-02 04:10:46 -03:00
Agus Zubiaga
1526fc4aee
can::Expr::ParamsVar for lookups with params 2024-07-02 04:10:44 -03:00
JRI98
f4551978ce
Handle multi pattern unbound list rest variables 2024-06-21 17:01:49 +01:00
Anton-4
05a61e2210
clippy + fmt 2024-06-19 12:34:10 +02:00