Skip to content

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

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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