Commit graph

10297 commits

Author SHA1 Message Date
Jakub Konka
a4165b3642 linker: introduce SupportLevel to designate completeness
If a linker is `SupportLevel::Full` it can safely be used as a
substitute for the legacy linker. If on the other hand, it's
`SupportLevel::None` then only legacy linker is a viable option.
The third new option is `SupportLevel::Wip` which will enable
surgical linker warning the user that it is a work-in-progress,
your mileage may vary, a lot.
2024-12-30 16:27:50 +01:00
Jakub Konka
b0cd51f089
Revert "Revert "Merge pull request #7424 from kubkon/macho-surgery"" 2024-12-30 16:26:42 +01:00
Anton-4
2dec72a797
Revert "Merge pull request #7424 from kubkon/macho-surgery"
This reverts commit 723e35f11e, reversing
changes made to 0ce43ffd1e.
2024-12-30 14:32:56 +01:00
Luke Boswell
eda4db0589
Merge pull request #7422 from joshuawarner32/fix-can-issue-1
Fix can panic with unbound type variables
2024-12-30 14:11:46 +11:00
Luke Boswell
191efdfd1d
Merge pull request #7431 from joshuawarner32/refactor-nodes
Refactor annotation formatting to use Node
2024-12-30 11:51:17 +11:00
Luke Boswell
44c630037e
clippy 2024-12-30 10:34:54 +11:00
Luke Boswell
723e35f11e
Merge pull request #7424 from kubkon/macho-surgery
linker: refactor surgical Mach-O linker code
2024-12-29 15:12:11 +11:00
Joshua Warner
f8f762a0ff Fix clippy 2024-12-28 22:35:10 -05:00
Joshua Warner
b87635e34b
Add test that failed on main 2024-12-28 22:31:34 -05:00
Joshua Warner
5e08515ed5
Remove dbg 2024-12-28 22:31:34 -05:00
Joshua Warner
72da294d55
Move apply to NodeInfo 2024-12-28 22:31:33 -05:00
Joshua Warner
99efcee275
Fix outdenting 2024-12-28 22:31:33 -05:00
Joshua Warner
c9ba958101
Remove unused code 2024-12-28 22:31:32 -05:00
Joshua Warner
07101f10a0
Simplifying fmt_ty_ann 2024-12-28 22:31:32 -05:00
Joshua Warner
4d438d8693
Move TypeAnnotation::Where to to_node 2024-12-28 22:31:31 -05:00
Joshua Warner
24ebcf68d1
wip 2024-12-28 22:31:31 -05:00
Joshua Warner
7a7f8340b9
Refactor: Convert TypeAnnotation::Apply to to_node 2024-12-28 22:31:30 -05:00
Joshua Warner
9ae5dc1bbc
Refactor: Convert TypeAnnotation::TagUnion to to_node (already working) 2024-12-28 22:31:30 -05:00
Joshua Warner
95d8fd471b
Refactor: Convert TypeAnnotation::Tuple to to_node, which required changing precedence information to flow up instead of down 2024-12-28 22:31:28 -05:00
Joshua Warner
35fa82cbef
Refactor: Convert TypeAnnotation::Record to to_node 2024-12-28 22:31:28 -05:00
Joshua Warner
d2e1c12b96
Refactor: introduce NodeInfo and needs_indent 2024-12-28 22:31:27 -05:00
Joshua Warner
13ec99c16b
Move TypeAnnotation::Apply to to_node 2024-12-28 22:31:26 -05:00
Joshua Warner
f169329c0e
Move TypeAnnotation::Function to to_node 2024-12-28 22:31:26 -05:00
Joshua Warner
3a7265baed
More impls for to_node 2024-12-28 22:31:25 -05:00
Joshua Warner
dbbd097708
Always use to_node for TypeAnnotation::As 2024-12-28 22:31:25 -05:00
Joshua Warner
5b93e834f1
Refactor more things into TypeAnnotation::Nodify 2024-12-28 22:31:24 -05:00
Joshua Warner
d8d0b6ebb1
Disallow simplifying empty assignment of dbg 2024-12-28 22:29:46 -05:00
Joshua Warner
59fe0f06ea
Make sure to use keyword rather than word for parsing keywords 2024-12-28 22:29:45 -05:00
Joshua Warner
9e6c249dca
Disallow any keyword followed by an exclaimation mark 2024-12-28 22:29:45 -05:00
Joshua Warner
0acd59b4d6
Treat crash keyword uniformly 2024-12-28 22:29:42 -05:00
Brendan Hansknecht
0ce43ffd1e
Merge pull request #7427 from roc-lang/const-write
avoid writing to readonly refcounts
2024-12-28 17:37:47 -08:00
Brendan Hansknecht
a7e4a55e1e
add refcount constants 2024-12-28 15:01:00 -08:00
Brendan Hansknecht
ad41b509cf
avoid writing to readonly refcounts 2024-12-28 14:43:17 -08:00
Jakub Konka
d67371c351 Fix clippy warnings 2024-12-28 23:30:19 +01:00
Jakub Konka
9cb0c00b2a Remove a debugging hack 2024-12-28 21:43:36 +01:00
Brendan Hansknecht
c073f1fb03
clippy try 2 2024-12-28 11:56:11 -08:00
Brendan Hansknecht
a3fba8afbf
clippy 2024-12-28 11:48:01 -08:00
Brendan Hansknecht
8e402b507f
use default llvm pipelines directly 2024-12-28 10:53:54 -08:00
Joshua Warner
f4698e1517
Fix can panic with unbound type variables 2024-12-28 10:39:05 -05:00
Luke Boswell
9b13b19d08
Merge pull request #7419 from shua/exp10
RocDec::from_str accept 'e' exponent notation
2024-12-28 20:57:03 +11:00
Jakub Konka
707a6b6f0f macho: recognise some libc imports 2024-12-28 10:04:38 +01:00
Jakub Konka
90fe145900 trim leading _ when searching for symbol in host and app 2024-12-28 10:04:38 +01:00
Jakub Konka
378659dfa9 refactor and log more output 2024-12-28 10:04:38 +01:00
Jakub Konka
88962f9e98 ignore __eh_frame section for the time being in macho surgery 2024-12-28 10:04:38 +01:00
Jakub Konka
32b9274dad refactor collect_roc_definitions for MachO
I don't think we need to check for '@' in symbol naming as versioning
is not done on a symbol level for MachO as far as I remember (unlike for
Linux).
2024-12-28 10:04:38 +01:00
Jakub Konka
f847770f6e abstract away logic for finding symbol by index
I am still not quite sure what exactly I am looking at in this function
but this will have to do for now.

Assuming this function, aka `get_target_offset`, is correct, implement
handling of `RelocationKind::Absolute` which for now assume is `UNSIGNED`
and pointer sized.
2024-12-28 10:04:38 +01:00
Jakub Konka
14ad642296 object::macho forces us to handle MachO relocs low-level 2024-12-28 10:04:38 +01:00
Jakub Konka
322366bab3 save generated app_data to an object file 2024-12-28 10:04:36 +01:00
Luke Boswell
f7dbf850b9
Merge pull request #7409 from joshuawarner32/fuzzing-bugs-5
Fix another batch of parsing/formatting bugs found in fuzzing
2024-12-28 17:36:03 +11:00
shua
b5ce935d89
RocDec::from_str accept 'e' exponent notation
The intent of this change is to allow roc dec values to be parsed from
strings using the 'e' exponent notation, eg '1e3' as a notation for '1000'.

Fixes #7351
2024-12-27 22:44:20 -05:00