Thread overview
format with floating points GC allocating in DMD 2.090
Jan 31, 2020
cc
Jan 31, 2020
bauss
Jan 31, 2020
Andrea Fontana
Feb 08, 2020
Rainer Schuetze
January 31, 2020
	char[4096] buf;
	writeln(GC.stats.usedSize);
	foreach (i; 0 .. 10) {
		sformat(buf, "%f", 1.234f);
		writeln(GC.stats.usedSize);
	}

Output with DMD32 D Compiler v2.089.1-dirty (Win10 x64):
16
16
16
...

Output with DMD32 D Compiler v2.090.0-dirty:
16
848
1664
2480
3296
4112
4944
5760
6576
7392
8208
January 31, 2020
On Friday, 31 January 2020 at 07:20:17 UTC, cc wrote:
> 	char[4096] buf;
> 	writeln(GC.stats.usedSize);
> 	foreach (i; 0 .. 10) {
> 		sformat(buf, "%f", 1.234f);
> 		writeln(GC.stats.usedSize);
> 	}
>
> Output with DMD32 D Compiler v2.089.1-dirty (Win10 x64):
> 16
> 16
> 16
> ...
>
> Output with DMD32 D Compiler v2.090.0-dirty:
> 16
> 848
> 1664
> 2480
> 3296
> 4112
> 4944
> 5760
> 6576
> 7392
> 8208

Report it as a bug because it's definitely a bug and there was changes to the GC in 2.090.0
January 31, 2020
On Friday, 31 January 2020 at 08:45:55 UTC, bauss wrote:
> On Friday, 31 January 2020 at 07:20:17 UTC, cc wrote:
>> 	char[4096] buf;
>> 	writeln(GC.stats.usedSize);
>> 	foreach (i; 0 .. 10) {
>> 		sformat(buf, "%f", 1.234f);
>> 		writeln(GC.stats.usedSize);
>> 	}
>>
>
> Report it as a bug because it's definitely a bug and there was changes to the GC in 2.090.0

2.086 x64 on linux:

0
64
112
160
208
256
304
352
400
448
496

February 08, 2020

On 31/01/2020 09:45, bauss wrote:
> On Friday, 31 January 2020 at 07:20:17 UTC, cc wrote:
>>     char[4096] buf;
>>     writeln(GC.stats.usedSize);
>>     foreach (i; 0 .. 10) {
>>         sformat(buf, "%f", 1.234f);
>>         writeln(GC.stats.usedSize);
>>     }
>>
>> Output with DMD32 D Compiler v2.089.1-dirty (Win10 x64):
>> 16
>> 16
>> 16
>> ...
>>
>> Output with DMD32 D Compiler v2.090.0-dirty:
>> 16
>> 848
>> 1664
>> 2480
>> 3296
>> 4112
>> 4944
>> 5760
>> 6576
>> 7392
>> 8208
> 
> Report it as a bug because it's definitely a bug and there was changes to the GC in 2.090.0

It's a change in std.format: https://issues.dlang.org/show_bug.cgi?id=20566