On Tue, 6 Oct 2020, Vincent Lefevre wrote:
On 2020-10-06 11:51:29 +0200, Marc Glisse wrote:
On Tue, 6 Oct 2020, Vincent Lefevre wrote:
On 2020-10-06 04:41:42 +0100, Colin Caine wrote:
This is used by Julia to raise an OutOfMemory exception rather than having
the Julia process itself abort.
Others on stackoverflow, etc, have experienced similar problems with
undesired aborts(), so this patch would probably be useful to a variety of
users. (see:
https://github.com/JuliaLang/julia/issues/8286#issuecomment-323500953)
More information is available here and in the linked issues and PRs:
https://github.com/JuliaLang/julia/pull/31215
Since the function could have allocated memory for intermediate
computations, how do you avoid memory leaks?
You would need something like
https://gmplib.org/list-archives/gmp-devel/2014-December/003868.html
But this is only for C++
Yes, that's for people willing to compile GMP with a C++ compiler. I don't
think that's such a big issue, except on windows.
and only for temporary memory (while normal allocation seems to be
sometimes used, like in mpz/mul.c with "wp = __GMP_ALLOCATE_FUNC_LIMBS
(wsize);").
With a single allocation, quite often you won't leak, since either it
succeeds and you are fine, or it fails and you don't have any new memory
to leak. But yes, making it work 100% would require auditing a lot of
code...
--
Marc Glisse
_______________________________________________
gmp-bugs mailing list
gmp-bugs@gmplib.org
https://gmplib.org/mailman/listinfo/gmp-bugs