piegames
c1f75860d6
builtins.flakeRefToString: Force the arguments
...
Without this, the primop chokes on any thunks on attributes passed in
the attrset. It even is the reason why the test contained `builtins.seq`
to work around this. Supposedly, this might have been an intentional
restriction and changing this might break things in ways I cannot forsee
due to not knowing much about Flakes, however the status quo is equally
broken:
- The error message looks like an internal error and not like some
explicitly forbidden invariant violation.
- Seemingly simple syntax literals like "-1" compile to "__sub 0 1" and
thus create a thunk which then fails, which is utterly confusing ("why
does 1 work but not -1?")
- This is a stark violation of the principle of least surprise.
- Thunking relies on maybeThunk and thunk inlining optimizations, thus
not forcing thunks turns operational details of the evaluator into
language-observable behavior. That's bad.
I am changing this now regardless of the risk of breakage, because the
bytecode evaluator will have different thunk inlining optimizations and
thus inevitably cause mismatches in behavior anyways.
Change-Id: Ifc45c4d2900e40822383670b28e4e50ab8af317a
2026-04-16 15:53:38 +02:00
..
2025-09-18 23:38:46 +02:00
2025-11-24 16:31:29 +01:00
2025-06-02 21:52:34 +02:00
2025-11-25 19:50:24 +00:00
2026-01-31 15:32:28 +01:00
2026-01-31 21:58:33 +01:00
2026-01-31 15:32:27 +01:00
2026-02-11 12:24:35 +01:00
2026-01-31 15:32:28 +01:00
2025-06-01 20:19:37 +02:00
2025-06-02 21:52:34 +02:00
2025-11-18 13:48:32 +00:00
2025-09-18 23:38:46 +02:00
2025-11-18 13:48:32 +00:00
2025-11-18 19:45:15 +01:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-11-24 16:31:29 +01:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-11-18 19:45:15 +01:00
2025-09-18 23:38:46 +02:00
2026-02-16 14:25:40 +03:00
2025-09-18 23:38:46 +02:00
2026-04-16 15:53:38 +02:00
2025-11-24 16:31:29 +01:00
2025-11-17 22:10:11 +00:00
2026-01-31 15:32:27 +01:00
2025-11-17 22:10:11 +00:00
2025-11-18 13:48:32 +00:00
2026-01-23 15:06:51 +01:00
2025-09-18 23:38:46 +02:00
2025-11-17 22:10:11 +00:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-11-24 16:31:29 +01:00
2025-11-24 16:31:29 +01:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-11-17 22:10:11 +00:00
2026-01-23 15:06:51 +01:00
2026-01-23 15:06:51 +01:00
2025-11-17 22:10:11 +00:00
2026-01-23 15:06:51 +01:00
2025-11-18 13:48:32 +00:00
2025-09-18 23:38:46 +02:00
2025-11-17 22:10:11 +00:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-11-24 16:31:29 +01:00
2025-11-24 16:31:29 +01:00
2026-01-04 16:25:06 +00:00
2025-09-18 23:38:46 +02:00
2025-09-18 23:38:46 +02:00
2025-11-17 22:10:11 +00:00
2025-09-18 23:38:46 +02:00
2025-11-17 22:10:11 +00:00
2025-11-22 16:48:53 +01:00
2025-09-18 23:38:46 +02:00
2026-01-14 22:05:16 +00:00
2025-06-02 21:52:34 +02:00
2025-09-18 23:38:46 +02:00
2025-06-02 21:52:34 +02:00
2026-01-03 22:37:20 +01:00
2025-06-02 21:52:34 +02:00
2025-11-14 02:56:53 +00:00
2026-01-23 15:06:51 +01:00
2025-11-18 19:52:17 +01:00
2026-01-31 15:32:27 +01:00
2025-11-24 16:31:29 +01:00
2025-11-18 13:48:32 +00:00
2025-11-24 16:31:29 +01:00
2025-06-02 21:52:34 +02:00
2025-06-20 11:36:13 +02:00
2025-11-22 16:48:53 +01:00
2025-09-18 23:38:46 +02:00
2025-11-25 19:50:24 +00:00
2025-11-17 22:10:11 +00:00
2025-11-24 16:31:29 +01:00
2025-06-02 21:52:34 +02:00
2025-06-20 11:36:13 +02:00
2025-10-11 12:57:57 +02:00
2026-01-31 15:32:28 +01:00
2025-11-17 22:10:11 +00:00
2025-11-24 19:16:27 +00:00
2026-01-31 15:32:27 +01:00
2026-01-31 20:44:34 +01:00
2025-11-24 16:31:29 +01:00
2026-01-31 15:32:27 +01:00
2026-01-31 21:58:33 +01:00
2025-06-02 21:52:34 +02:00
2025-06-02 21:52:34 +02:00
2025-06-02 21:52:34 +02:00
2025-11-17 22:10:11 +00:00
2025-06-02 21:52:34 +02:00
2025-06-02 21:52:34 +02:00
2025-06-02 21:52:34 +02:00
2025-06-01 20:19:37 +02:00
2026-03-13 22:59:53 +01:00
2026-04-11 12:46:24 -04:00
2026-01-31 20:44:34 +01:00
2026-02-11 12:24:35 +01:00
2025-11-18 19:45:15 +01:00
2025-11-18 13:48:32 +00:00
2026-02-11 12:24:35 +01:00
2025-06-02 21:52:34 +02:00
2025-06-02 21:52:34 +02:00
2025-11-17 22:10:11 +00:00
2025-11-17 22:10:11 +00:00
2025-12-01 21:11:25 +01:00
2025-11-17 22:10:11 +00:00
2025-11-24 16:31:29 +01:00
2025-06-01 20:19:37 +02:00
2026-01-23 15:06:51 +01:00
2025-11-21 17:02:35 +00:00
2025-07-17 12:36:54 -07:00
2026-01-23 15:06:51 +01:00
2026-02-11 20:46:18 +00:00