HackerTrans
TopNewTrendsCommentsPastAskShowJobs

dev_dwarf

no profile record

comments

dev_dwarf
·3 ปีที่แล้ว·discuss
You'll find by looking at their older posts that the author has actually written quite a lot of elisp.
dev_dwarf
·3 ปีที่แล้ว·discuss
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.
dev_dwarf
·3 ปีที่แล้ว·discuss
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).
dev_dwarf
·3 ปีที่แล้ว·discuss
For the alignment parameter I agree.
dev_dwarf
·3 ปีที่แล้ว·discuss
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.
dev_dwarf
·3 ปีที่แล้ว·discuss
Nice. Seems to work for case you mentioned under my comment: https://godbolt.org/z/TYorcd8b6
dev_dwarf
·3 ปีที่แล้ว·discuss
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
dev_dwarf
·3 ปีที่แล้ว·discuss
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.
dev_dwarf
·3 ปีที่แล้ว·discuss
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.
dev_dwarf
·3 ปีที่แล้ว·discuss
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/rdv4qnrs8.

*edited to update the example, realized I messed up the comparison logic.