Zig: Pointer Stability for ArrayLists

(ziglang.org)

35 points | by tosh 3 hours ago

1 comments

  • _bohm 1 hour ago
    It's a nice feature but I can't help feeling like, if you need a stable pointer to an item in a collection, ArrayList is the wrong data structure to use? Maybe someone can chime in and give me an example of when you'd do this instead of, e.g., just storing an index. Alternatively, you could use an Unrolled Linked List (FKA SegmentedList in Zig before it was removed in 0.16, not sure why).
    • nvme0n1p1 52 minutes ago
      SegmentedList had a weird API, especially the way you control the list growth factor by the size of an inline array. And it hadn't kept up with stdlib norms in recent versions. I do hope it comes back eventually with an improved API.

      At least we got Deque in exchange. I use that far more often than I used SegmentedList.

      • _bohm 46 minutes ago
        Aha, gotcha. To tell you the truth, I don't think I ever used it. I have a custom implementation I wrote because I didn't realize at the time that SegmentedList was an unrolled linked list :p
    • beepbooptheory 9 minutes ago
      Maybe one use case is if you are interfacing with external C library and you're stuck with pointers?