Questions tagged [memory-management]
For questions related to managing memory in programming languages, whether manually or automatically.
22 questions
5
votes
1
answer
262
views
Why to choose row-major vs column-major for matrix storage/processing efficiency?
When implementing matrices/two-dimensional arrays, some languages choose to store them row-major, whereas others choose column-major (for example, fortran and C).
This makes equivalent sequential ...
4
votes
0
answers
203
views
Prior Art on implementing memory arenas or thread- or work-package-local allocators in systems programming languages
Local allocators can be beneficial in situations where tracking memory usage or releasing all allocated memory without running destructors at the end of an activity is possible. From that perspective, ...
13
votes
4
answers
2k
views
Did an unsigned size_t do anything good?
In many languages, the integer type of array sizes are unsigned. This as the value type is not wrong, as array sizes are always non-negative. But the implications that their arithmetic also returns ...
10
votes
2
answers
697
views
Idiomatic memory allocation and garbage collection in LLVM
I am working on a new backend for a programming language using LLVM IR. This language makes a distinction between basic values and pointers to nodes on the heap, and uses a copying collector for ...
14
votes
3
answers
4k
views
A kind of "weak reference" which keeps the object alive, as long as there is otherwise-unused memory
Modern operating systems usually use some of the main memory for caching files, as loading those files from the cache will be faster than loading them from disk; but this memory can be reclaimed by ...
8
votes
2
answers
755
views
Analysis of methods to ensure memory safety
Overview
Ensuring memory safety is a core facet of modern programming language design. Memory safety can be guaranteed in many different ways.
For the purposes of this question, I am defining memory ...
5
votes
1
answer
292
views
Alternatives to tracing GC for dynamically-typed languages
What are some alternatives to tracing GC for dynamically-typed languages?
I've been interested in dynamically typed languages with predictable behavior since learning about lua in the NetBSD kernel. ...
4
votes
2
answers
720
views
Are there actual languages using fat pointers to store types?
In the normal implementations of C++, while not guaranteed by the standard, there is a vtable pointer as the header of every inherited class that needs a vtable pointer. There will be multiple vtable ...
3
votes
0
answers
373
views
Is there a downside to using offsets instead of raw pointers in a virtual machine?
Say I'm designing a virtual machine for a bytecode compiler/interpreter, using C as the implementation language. Some kind of “tagged” representation of values is simplest for this language, where ...
3
votes
6
answers
644
views
Are there languages or compilers having optimizations to deallocate variables early?
In a scope that defines two variables a and b, the code firstly does things only on a. Then <...
6
votes
4
answers
1k
views
If garbage collection always sacrifice performance in multi-threaded languages, then how do some languages approch this problem?
Mark-and-Sweep garbage collection need to work over the graph of all objects in the process, and would stall threads to make the operation safe with regard to threads. I can think of no way to work ...
22
votes
2
answers
4k
views
To box or not to box? (how to determine if a value can be more efficiently passed by value or by reference)
I want to remove explicit addressing from my type system.
In low level languages like C or Rust, you always have a choice whether to store some data by value or by reference. There are some advantages ...
16
votes
3
answers
825
views
What was the rationale for making realloc(ptr, 0) have UB in C23
This is the first breaking change that C made, which was making realloc(ptr, 0) have UB instead of being roughly equivalent to ...
2
votes
1
answer
336
views
Are there languages making addresses to have other significant meaning?
Some examples:
To support checking whether an object is of a subclass of a specific class in constant time, in a language using single inheritance, the compiler could arrange the vtables of classes ...
17
votes
6
answers
4k
views
Possible to mix garbage collection and manual memory management?
Do you think it is possible to have a language that uses garbage collection (GC) by default, but allows you take more control with manual memory management like C++ or Rust, in areas of the software ...