Oh awesome. Could you please tag @igbanam in the bug, so I see what's changing?
Thanks! *Igbanam* On Fri, Dec 5, 2025 at 5:25 PM Yegappan Lakshmanan <[email protected]> wrote: > Hi, > > On Fri, Dec 5, 2025 at 1:11 AM Igbanam Ogbuluijah <[email protected]> > wrote: > >> I am realizing you can reduce the problem to just the first three >> entries, so you don't have to copy much when reproducing >> >> :echo [(229539777187355, 229539777187355), (487766135067138, >> 491977135306566), (188325333471071, 188931909913550)]->sort({a, b -> a[0] - >> b[0]}) >> >> > This is a bug in the code. I will create a PR this weekend. > > - Yegappan > > >> >> *Igbanam* >> >> >> On Fri, Dec 5, 2025 at 9:00 AM Igbanam Ogbuluijah <[email protected]> >> wrote: >> >>> Hi all, >>> >>> It's the time of the year when I use Vimscript to do what it was not >>> designed for: AdventOfCode. >>> >>> For today's problem, I notice that `:h sort()`, with a Funcref, breaks >>> for large numbers — "breaks" here means that it does not keep to contract >>> in the docs, not that it throws an exception. Since it's not really an >>> exception, I don't think I can file it as a bug… so I'm bringing it here. >>> Maybe someone can help me catch what I'm doing wrong. >>> >>> In Vimscript… >>> >>> :echo [(229539777187355, 229539777187355), (487766135067138, >>> 491977135306566), (188325333471071, 188931909913550), (264028451845520, >>> 265514296554744), (245727634348687, 249469249579525), (375117820166731, >>> 378942174241518), (535474757750378, 535849288071548)]->sort({a, b -> a[0] - >>> b[0]}) >>> >>> yields >>> >>> [(229539777187355, 229539777187355), (487766135067138, 491977135306566), >>> (188325333471071, 188931909913550), (264028451845520, 265514296554744), >>> (245727634348687, 249469249579525), (375117820166731, 378942174241518), >>> (535474757750378, 535849288071548)] >>> >>> This is the same list because I got it from runtime working on the >>> larger list. >>> >>> Looking closely, I noticed that the third range is smaller than the >>> first range. This got me thinking about things like overflow. But I checked >>> and `v:numbermax == 9223372036854775807` which is bigger than all the >>> numbers here. >>> >>> This same operation in Python and Ruby yield the same results different >>> from Vimscript's >>> >>> In Python >>> >>> sorted([(229539777187355, 229539777187355), (487766135067138, >>> 491977135306566), (188325333471071, 188931909913550), (264028451845520, >>> 265514296554744), (245727634348687, 249469249579525), (375117820166731, >>> 378942174241518), (535474757750378, 535849288071548)]) >>> >>> In Ruby >>> >>> [[229539777187355, 229539777187355], [487766135067138, 491977135306566], >>> [188325333471071, 188931909913550], [264028451845520, 265514296554744], >>> [245727634348687, 249469249579525], [375117820166731, 378942174241518], >>> [535474757750378, 535849288071548]].sort { |a, b| a[0] - b[0] } >>> >>> …both yield >>> >>> [(188325333471071, 188931909913550), (229539777187355, 229539777187355), >>> (245727634348687, 249469249579525), (264028451845520, 265514296554744), >>> (375117820166731, 378942174241518), (487766135067138, 491977135306566), >>> (535474757750378, 535849288071548)] >>> >>> Is there some way to use sort that I'm missing here? >>> >>> >>> *Igbanam* >>> >> >> -- > -- > You received this message from the "vim_use" maillist. > Do not top-post! Type your reply below the text you are replying to. > For more information, visit http://www.vim.org/maillist.php > > --- > You received this message because you are subscribed to the Google Groups > "vim_use" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/vim_use/CAAW7x7ki7k4djawX6-4DkJjx7Vy2dFyy9QbD9Q8doNwNvJ3Ffg%40mail.gmail.com > <https://groups.google.com/d/msgid/vim_use/CAAW7x7ki7k4djawX6-4DkJjx7Vy2dFyy9QbD9Q8doNwNvJ3Ffg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > -- -- You received this message from the "vim_use" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_use" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/vim_use/CAOmRJrdkwj5-sz3wPvMt6F%2BQFoOoQ4Uw%3D2qpxhgSa3hZ_56YDQ%40mail.gmail.com.
