Re:Zig self hosted compiler is now capable of building itself
by guidoism on Saturday April 16, 2022 @06:50PM
(#31056802)
I’ve recently been writing personal code that leaks like a sieve. It’s just not worth my time to find every leak when the lifetime of the process is finite and short and it will only ever run on a machine with gigs of memory. I haven’t thought through your question enough but maybe a situation where memory usage would be super high if waiting until the end of scope? I’m probably trying to hard to come up with a situation but I have a gut feeling that freeing mid scope is important under certain circumstances to keep the code simple and understandable.
[ Parent
| on HN ]
Re:Zig self hosted compiler is now capable of building itself
by coder543 on Saturday April 16, 2022 @07:08PM
(#31056903)
> I’m probably trying to hard to come up with a situation but I have a gut feeling that freeing mid scope is important under certain circumstances to keep the code simple and understandable.
I explained in my previous comment that you can explicitly "drop" any value at any time in Rust, if you choose.[0] But if you don't, it will still be dropped at the end of the scope. The developer has control, but the language will watch your back.
Re:Zig self hosted compiler is now capable of building itself
by StefanKarpinski on Saturday April 16, 2022 @07:54PM
(#31057161)
Heck, this is the entire memory management model of PHP, which I found shocking when I learned it, but makes sense given that the language is intended to generate web pages: just allocate, never reclaim the memory, then kill the process when you’re done.
Re:Zig self hosted compiler is now capable of building itself
by coder543 on Saturday April 16, 2022 @08:42PM
(#31057405)
Do you have any sources? Maybe some truly ancient version? PHP has done garbage collection (seemingly mixed with some reference counting, like Python) for at least 10 or 15 years... I didn't bother to keep searching for even older information, but nothing I saw indicated that PHP only released memory when the process for a request exited.
I don't even think most mainstream uses of PHP have done the process-per-request model for decades, but I could be wrong.
Re:Zig self hosted compiler is now capable of building itself
by tored on Sunday April 17, 2022 @08:34AM
(#31060410)
Correct, garbage collector was added to PHP 5.3, prior to 5.3 PHP did only reference counting. PHP 5.3 was released in June of 2009.
Here is a series of articles that describes it in detail
https://www.php.net/manual/en/features.gc.php
Especially look at this example where the same script is executed with and without GC
https://www.php.net/manual/en/features.gc.performance-consid...