Commit graph

343 commits

Author SHA1 Message Date
Richard Feldman
79a08d5d0f
Fix List.get with method syntax causing cycle in layout computation
When calling List.get with method syntax (my_list.get(0)), the
interpreter was causing a cycle in layout computation because rigid
type variables weren't being properly resolved.

The fix unifies the method's first parameter type with a copy of the
receiver type before instantiation. This properly resolves rigid type
variables (like `item` in List.get) to concrete types. A copy of the
receiver type is created before unification to avoid corrupting the
original type, since unification modifies both sides.

This is the same approach used for no-args method dispatch (like
List.first), but with the additional copy step needed because the
multi-args path may reuse types across multiple method invocations.

Fixes #8662

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-13 15:43:09 -05:00
Anton-4
aa2e1b80cd
All roc syntax test (#8622)
* added all_roc_syntax_test

* fmt + test

* full test

---------

Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2025-12-12 18:07:03 +01:00
Richard Feldman
9cd58ee4ab
Merge pull request #8649 from roc-lang/fix-double-decref
Fix double-decref
2025-12-12 10:05:53 -05:00
Richard Feldman
b2dea15a3e
Add test for small string input in Stdin.line! while loop 2025-12-12 09:08:34 -05:00
Richard Feldman
fae5ddbbe3
Fix double-decref bug in binop_apply and unary_op_apply
When handling low-level lambdas (like Str.is_eq), the code was decrefing
arguments with borrow semantics, but the defer statements at the top of
these functions already handle decrefing. This caused a double-free when
comparing heap-allocated strings (24+ characters).

The fix removes the explicit decrefs in the low-level lambda paths since
the defer statements already handle cleanup.
2025-12-12 09:01:54 -05:00
Richard Feldman
e1019be2ef
Merge pull request #8627 from roc-lang/fix-another-aoc
Fix tag union handling
2025-12-12 07:09:54 -05:00
Anton-4
0608d4c338
Fix #8517 (#8613)
temp fix expect stack overflow

Signed-off-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2025-12-12 11:30:33 +01:00
Richard Feldman
f0cf4e2007
Merge origin/main into fix-another-aoc
Resolved merge conflicts in:
- src/cli/test/fx_test_specs.zig (combined test entries from both branches)
- test/snapshots/fuzz_crash/fuzz_crash_027.md (took main's error message format)
- test/snapshots/fuzz_crash/fuzz_crash_028.md (took main's error message format)
2025-12-11 23:18:39 -05:00
Richard Feldman
cdafc209b9
Merge origin/main into fix-list-first-panic-8633
Resolved conflict in fx_test_specs.zig by including both:
- list_append_stdin_uaf.roc test from main
- list_first_method.roc and list_first_function.roc regression tests from this branch

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-11 21:43:44 -05:00
Richard Feldman
2d863e9073
Fix panics 2025-12-11 21:13:15 -05:00
Richard Feldman
a3d68dbc37
Add a missing refcount 2025-12-11 16:32:07 -05:00
Richard Feldman
f92d84323e
Fix tests 2025-12-11 11:49:45 -05:00
Richard Feldman
b660d54c40
Update test 2025-12-11 11:46:15 -05:00
Richard Feldman
ca1a1fa5a6
Fix tag union handling 2025-12-11 11:46:15 -05:00
Luke Boswell
24957cf7af
make bundle more lenient, and improve errors 2025-12-11 17:24:41 +11:00
Luke Boswell
dc58f8a719
ensures all symbols from the static library are included 2025-12-11 17:24:40 +11:00
Luke Boswell
28a46fd33d
bug fixes 2025-12-11 16:06:14 +11:00
Luke Boswell
2c1a3f15ed
Merge remote-tracking branch 'remote/main' into build-static-lib 2025-12-11 15:40:26 +11:00
Luke Boswell
32deed5ec8
fix leak 2025-12-11 12:54:49 +11:00
Richard Feldman
7efcc6ab59
Fix rank unification bug 2025-12-10 20:13:20 -05:00
Luke Boswell
c31209f615
big cleanup 2025-12-11 11:20:08 +11:00
Luke Boswell
22b1ffce82
Merge remote-tracking branch 'remote/main' into build-static-lib 2025-12-11 09:05:01 +11:00
Luke Boswell
eac452ce6e
always use portable serialization when embedding modules 2025-12-11 09:01:53 +11:00
Luke Boswell
f385ed7ae5
rename wasi to freestanding 2025-12-11 08:40:56 +11:00
Luke Boswell
1bd62f05ab
increase stack size for wasm builds 2025-12-11 08:36:06 +11:00
Richard Feldman
d91a8aa534
Add lint for no // ======= comments 2025-12-10 15:31:53 -05:00
Richard Feldman
2f6fe8867c
Fix fold_rev static dispatch bug 2025-12-10 12:58:45 -05:00
Luke Boswell
38c474176c
initial implementation 2025-12-10 15:37:13 +11:00
Richard Feldman
d86b85e99f
Reproduce index out of bounds crash 2025-12-09 22:26:11 -05:00
Richard Feldman
4bdaae210d
Rename Str.inspekt to Str.inspect
(now that inspect is no longer a keyword)
2025-12-09 20:03:58 -05:00
Richard Feldman
8dc837faee
Delete inspect keyword 2025-12-09 20:03:58 -05:00
Richard Feldman
7281d98833
Fix inspect 2025-12-09 20:03:58 -05:00
Luke Boswell
6043320d33
convert more user facing errors to use reporting system, remove dead
code
2025-12-10 08:50:55 +11:00
Richard Feldman
f61e7312fd
Merge pull request #8597 from roc-lang/scratch-bound-vars
Use scratch_bound_vars in canonicalization, fix fcntl
2025-12-09 15:51:48 -05:00
Richard Feldman
1d04b742f4
Call fcntl as variadic 2025-12-09 13:53:14 -05:00
Luke Boswell
67a4f655e8
fix CC shims and add mmap to glibc stub 2025-12-09 20:08:48 +11:00
Luke Boswell
dcb602c5ad
fix windows support for platforms and glibc symbols 2025-12-09 15:39:46 +11:00
Luke Boswell
3703737766
Cleanup target handling and deuplication 2025-12-09 13:30:36 +11:00
Luke Boswell
716ed4c804
wire allow-errors through for roc build 2025-12-09 11:42:28 +11:00
Luke Boswell
4885c439f5
Merge remote-tracking branch 'remote/main' into roc-build 2025-12-09 11:08:22 +11:00
Luke Boswell
17b87a954f
refactor to use common runner for test platforms 2025-12-09 11:06:04 +11:00
Luke Boswell
5c6350336d
WIP - adding more reporting, restore glibc support 2025-12-09 09:51:47 +11:00
Luke Boswell
189fc7ff07
require targets, remove hardcoding 2025-12-09 08:59:12 +11:00
Ameen Radwan
ea76b7b1ee
check for parse/token errors and print them on run (#8586)
* check for parse/token errors and print them on run

* return early on parse fail if errors are not allowed

* fix merge issue
2025-12-08 21:10:16 +01:00
Richard Feldman
c1b088e870
Merge pull request #8580 from roc-lang/fix-flaky-bug
Fix recursive self-capture aliasing bug
2025-12-08 13:59:35 -05:00
Yanni Papandreou
ebb36868ab
Improve error message when platform specified by absolute path (#8574)
* improve error message

Improves error message when platform is wrongly specified by an absolute
path

* improve error message further

* throw error if platform not built yet

* move to better spot

* DRY

---------

Co-authored-by: Anton-4 <17049058+Anton-4@users.noreply.github.com>
2025-12-08 17:36:32 +01:00
Richard Feldman
e2a60faa35
Fix segfault by adding type annotations 2025-12-08 09:08:55 -05:00
Richard Feldman
4b6876ce98
Merge remote-tracking branch 'origin/main' into fix-flaky-bug 2025-12-08 07:44:42 -05:00
Luke Boswell
8abc3519a7
display helpful error is platform file missing 2025-12-08 20:59:27 +11:00
Luke Boswell (Linux-Desktop)
0e964059b1
add debug info and flag 2025-12-08 20:09:31 +11:00