in reply to Re^3: returning large arrays from functions
in thread returning large arrays from functions

Perl could recognise that the contents of the internal array, once transfered to the external array, will be garbage collected, and avoid both the copying and the GC, by simple transferring the already allocated and populated internal storage of the internal array to the external array.

COW does not come into it.

  • Comment on Re^4: returning large arrays from functions

Replies are listed 'Best First'.
Re^5: returning large arrays from functions
by ikegami (Patriarch) on Nov 19, 2010 at 08:22 UTC

    I see that as a special case of copy on write. COW refers to multiple objects sharing the same data storage until one changes. Copying the pointer over shares the data storage. What's special is that it never reaches the point where copying is necessary. If you'd rather use a different word for it, pretend I used that word.

      So 'copying without regard to whether writing will ever occur or not'--or as the rest of us like to call it, just "copying"--is to you a special case of copy on write.

      Not just techno-babble used to dress up an otherwise meaningless post for no more purpose than XP-whoring.

        So 'copying without regard to whether writing will ever occur or not'-,

        ???? I said not copying because there is no write is special case of COW.

        So 'copying without regard to whether writing will ever occur or not'

        ???? I said not copying because there is no write is special case of COW.