On Sun, Sep 24, 2017 at 11:39 AM, johannes hanika <hana...@gmail.com> wrote: > hi, Hi.
> i disagree. i really like variable length arrays > and std::vectors dynamically allocate memory on the heap https://llvm.org/docs/ProgrammersManual.html#dss-smallvector > with standard implementations locking a global mutex > on the way causing slowdown for multithreaded cases. That *might* be not so true today https://sourceware.org/glibc/wiki/MallocInternals#Arenas_and_Heaps > just incrementing the stack pointer is a simple thing, it's > thread local and light weight. and memory resources will run out > whether i do a complicated or a simple memory allocation scheme (with > linux overcommitting, you can't even test malloc == 0, so i don't see > how heap allocation is any safer). also, variable sized arrays mean > it's not known compile time, but once you enter the function you know > exactly how large you need it (no need for dynamically growing > complicated structures). To add to that, it's somewhat even worse than with overcommitting, if the VLA stack allocation fails, i believe it results in a SIGSEGV.. Though, less stack usage, less pages the kernel has to swap out, mark dirty, etc Also, i guess, having some default stack size can be compared to each application [thread] doing malloc(512Mb), and then maybe using it or maybe not. Assuming no overcommit, that already puts some limits on the number of simultaneously running apps. > i understand however that some libc implementations have issues with > that and that it makes people feel uncomfortable about predicting > whether the code is correct or not. so we do the inconvenient grown-up > thing and warn about it in dt. > > cheers, > jo Roman. > On Sat, Sep 23, 2017 at 8:07 AM, Heiko Bauke <heiko.ba...@mail.de> wrote: >> Hi, >> >> Am 22.09.2017 um 15:35 schrieb Tobias Ellinghaus: >>> >>> No, you are missing the point of those pragmas: darktable from git always >>> builds with "-Werror", thus the "-Wvla" switch actually throws an hard >>> error >>> when using VLAs. With the pragma we are relaxing that back to a warning >>> again >>> to be able to use VLAs in some places. >> >> >> I understand, makes sense. After reading the article about the save usage >> of variable length arrays mentioned in my other mail, I thing variable >> length arrays are actually not as great as I thought. What one really wants >> is probably a std::vector. But this has not yet been invented in C. >> >> >> >> Heiko >> >> -- >> -- Number Crunch Blog @ https://www.numbercrunch.de >> -- Cluster Computing @ http://www.clustercomputing.de >> -- Professional @ https://www.mpi-hd.mpg.de/personalhomes/bauke >> -- Social Networking @ https://www.researchgate.net/profile/Heiko_Bauke >> ___________________________________________________________________________ >> darktable developer mailing list >> to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org >> > ___________________________________________________________________________ > darktable developer mailing list > to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org > ___________________________________________________________________________ darktable developer mailing list to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org