Skip to content

How am I supposed to fix STAN-0103 diagnostic? #550

@Bodigrim

Description

@Bodigrim

I have a call of length xs in the middle of a function, which Stan is unhappy with because of STAN-0103: "Usage of the length function that hangs on infinite lists".

How am I supposed to act on this? Stan offers two suggestions:

  • "Don't use length if you expect your function to work with infinite lists" - nope, I bloody well need the length of the list.
  • "Use the slist library for fast and safe functions on infinite lists" - but it does not seem that Slist.size (Slist.slist xs) is any safer than length xs in case if xs happens to be infinite! Am I supposed to make a non-local refactoring, probably migrate the entire module to Slist? This is likely to be unfeasible or prohibitively expensive in the majority of real-world cases.

I personally do not think that STAN-0103 is worth to complain about, but that's fine, we can agree to disagree. I don't mind opinionated diagnostics, I do mind unactionable ones: if a policy mandates to maintain a clean Stan report, it's virtually impossible to do so.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions