News for hackers. Stuff that matters.

dev_dwarf

Re:My personal C coding style as of late 2023 on Monday October 09, 2023 @07:02PM (#37826544)
You'll find by looking at their older posts that the author has actually written quite a lot of elisp.
Re:Arena Allocator Tips and Tricks on Wednesday September 27, 2023 @03:52PM (#37680302)
Your second paragraph doesn't make sense because the whole point of this type of allocation is to guarantee that you will reuse the same address space you just freed.
Re:Always Bump Downwards (2019) on Tuesday September 19, 2023 @04:59PM (#37576515)
Thats an interesting idea. I'm not sure I'm sold on it v.s. just having two seperate allocators and growing them seperately. The arena allocators I use take advantage of virtual memory to grow which might change my perception of the tradeoffs involved, as I wouldn't typically need to resize one of my allocators (you can just aggressively over-reserve memory and then only commit what is actually used).
Re:Always Bump Downwards (2019) on Tuesday September 19, 2023 @04:45PM (#37576284)
For the alignment parameter I agree.
Re:Always Bump Downwards (2019) on Tuesday September 19, 2023 @02:51PM (#37574483)
Agreed. The question really is if you should demand the user to enforce that constraint on the size they pass to you, or if the function itself should signal an error in that case.
Re:Always Bump Downwards (2019) on Tuesday September 19, 2023 @02:22PM (#37574024)
Nice. Seems to work for case you mentioned under my comment: https://godbolt.org/z/TYorcd8b6
Re:Always Bump Downwards (2019) on Tuesday September 19, 2023 @02:03PM (#37573754)
Interesting point. I modified my example to test what you described. I had to play with the compilation flags to get the allocs to not be optimized out and to not panic when the integer overflow happens, but otherwise I didn't change the logic. I'm pretty sure my implementation is correctly handling the case you mention, evidenced by it returning a null pointer.

Link: https://godbolt.org/z/f1jGW6Pa3

Update: NVM, definitely not being handled correctly. https://godbolt.org/z/cMTe1o979

Re:Always Bump Downwards (2019) on Tuesday September 19, 2023 @01:38PM (#37573395)
Ok, I get it now. It would add an extra ptr to the struct, but wouldn't be significant overhead.

I do wonder what benefit there is for you over just having two separate allocators, one for long term and one for short term. I imagine there could be benefits in very memory constrained scenarios.

Re:Always Bump Downwards (2019) on Tuesday September 19, 2023 @01:09PM (#37572997)
This sounds like it would make the alloc logic much more complicated and branch-y, defeating the purpose of bumping down anyway, unless your implying some compile-time way to do this.
Re:Always Bump Downwards (2019) on Tuesday September 19, 2023 @12:40PM (#37572535)
In the "bump up" version you could remove both the checked_add branches and replace them with a single check at the end, making the amount of branches the same.

Quick example: https://godbolt.org/z/bqWrEqoov.