tracking issue: remove Value& out parameters #1136

Open
opened 2026-02-23 22:52:55 +00:00 by pennae · 1 comment
Owner

main has pretty resonable support for returning values directly since pointer tagging happened. we should remove out parameters from all signatures and return proper values instead.

and numerous others probably

`main` has pretty resonable support for returning values directly since pointer tagging happened. we should remove out parameters from all signatures and return proper values instead. - [x] Expr::eval (https://gerrit.lix.systems/c/lix/+/5219) - [ ] primops - [x] EvalState::callFunction (https://gerrit.lix.systems/c/lix/+/5253) - [ ] EvalState::autoCallFunction - [ ] EvalState::concatLists - [x] EvalState::eval\* (https://gerrit.lix.systems/c/lix/+/5254) - [ ] EvalState::mk\* - [ ] Evaluator::evalLazily - [ ] getDerivation - [ ] parseJSON and numerous others probably
Member

This issue was mentioned on Gerrit on the following CLs:

  • comment in cl/5219 ("libexpr: migrate Expr::eval to return a Value, take 2")
  • commit message in cl/5305 ("libexpr: Migrate EvalState::mkOutputString to return a Value")
  • commit message in cl/5307 ("libexpr/primops/fromTOML: Migrate visit lambda to return a value")
  • commit message in cl/5303 ("libexpr: Migrate mkStorePathString to return a Value")
  • commit message in cl/5301 ("libexpr: Migrate makePositionThunks to return Value tuple")
  • commit message in cl/5308 ("libexpr: Migrate EvalState::mkPos to return a Value")
  • commit message in cl/5309 ("libexpr: Migrate emitTreeAttrs to return a Value")
<!-- GERRIT_LINKBOT: {"cls": [{"backlink": "https://gerrit.lix.systems/c/lix/+/5219", "number": 5219, "kind": "comment"}, {"backlink": "https://gerrit.lix.systems/c/lix/+/5305", "number": 5305, "kind": "commit message"}, {"backlink": "https://gerrit.lix.systems/c/lix/+/5307", "number": 5307, "kind": "commit message"}, {"backlink": "https://gerrit.lix.systems/c/lix/+/5303", "number": 5303, "kind": "commit message"}, {"backlink": "https://gerrit.lix.systems/c/lix/+/5301", "number": 5301, "kind": "commit message"}, {"backlink": "https://gerrit.lix.systems/c/lix/+/5308", "number": 5308, "kind": "commit message"}, {"backlink": "https://gerrit.lix.systems/c/lix/+/5309", "number": 5309, "kind": "commit message"}], "cl_meta": {"5219": {"change_title": "libexpr: migrate Expr::eval to return a Value, take 2"}, "5305": {"change_title": "libexpr: Migrate EvalState::mkOutputString to return a Value"}, "5307": {"change_title": "libexpr/primops/fromTOML: Migrate `visit` lambda to return a value"}, "5303": {"change_title": "libexpr: Migrate mkStorePathString to return a Value"}, "5301": {"change_title": "libexpr: Migrate makePositionThunks to return Value tuple"}, "5308": {"change_title": "libexpr: Migrate EvalState::mkPos to return a Value"}, "5309": {"change_title": "libexpr: Migrate emitTreeAttrs to return a Value"}}} --> This issue was mentioned on Gerrit on the following CLs: * comment in [cl/5219](https://gerrit.lix.systems/c/lix/+/5219) ("libexpr: migrate Expr::eval to return a Value, take 2") * commit message in [cl/5305](https://gerrit.lix.systems/c/lix/+/5305) ("libexpr: Migrate EvalState::mkOutputString to return a Value") * commit message in [cl/5307](https://gerrit.lix.systems/c/lix/+/5307) ("libexpr/primops/fromTOML: Migrate `visit` lambda to return a value") * commit message in [cl/5303](https://gerrit.lix.systems/c/lix/+/5303) ("libexpr: Migrate mkStorePathString to return a Value") * commit message in [cl/5301](https://gerrit.lix.systems/c/lix/+/5301) ("libexpr: Migrate makePositionThunks to return Value tuple") * commit message in [cl/5308](https://gerrit.lix.systems/c/lix/+/5308) ("libexpr: Migrate EvalState::mkPos to return a Value") * commit message in [cl/5309](https://gerrit.lix.systems/c/lix/+/5309) ("libexpr: Migrate emitTreeAttrs to return a Value")
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lix-project/lix#1136
No description provided.