Discussion on Go and D
bearophile
bearophileHUGS at lycos.com
Sun Apr 8 16:41:06 PDT 2012
Walter:
> Anyhow, D has a lot of facilities for putting things on the
> stack rather than the heap,
In a system language heap allocations are often among the spots
where the program is slower. So a good system language must offer
good ways to use the stack as much as possible. D offers some
ways to use the stack, but surely there is a good amount of space
for improvements, some examples:
1) Some kind of optimization to avoid heap allocations for lines
of code like this will improve the situation:
int[3] a = [10,20,30];
2) Some kind of (safer) stack-allocated variable-length arrays
are handy (see Ada language too that uses stack-allocated arrays
a lot):
http://d.puremagic.com/issues/show_bug.cgi?id=5348
3) Currently emplace has several problems and limits.
4) A compilation switch to list all points where a heap-allocetd
closure is created will help avoid unwanted heap usage:
http://d.puremagic.com/issues/show_bug.cgi?id=5070
5 extra) Currently there are no ways to put an immutable
associative array on the stack, or as global immutable variable
:-) Many of my small associative arrays don't need to mutate
after I have created them at the start of the program. Having a
way to put them on the stack seems an interesting thing.
Bye,
bearophile
More information about the Digitalmars-d
mailing list