Thread overview
Dustmiting a dmft assert
Mar 30, 2016
Nicholas Wilson
Mar 30, 2016
Nicholas Wilson
Mar 30, 2016
Vladimir Panteleev
March 30, 2016
so
$core.exception.AssertError@/Users/nicholaswilson/d/phobos/std/conv.d(4061): emplace: Chunk is not aligned.
----------------
4   dfmt                                0x0000000109536ace _d_assert_msg + 142
5   dfmt                                0x00000001094d600f dparse.ast.IdentifierOrTemplateChain dparse.parser.Parser.parseIdentifierOrTemplateChain() + 363
6   dfmt                                0x00000001094e176e dparse.ast.Symbol dparse.parser.Parser.parseSymbol() + 474
7   dfmt                                0x00000001094e53bb dparse.ast.Type2 dparse.parser.Parser.parseType2() + 967
8   dfmt                                0x00000001094e4ce4 dparse.ast.Type dparse.parser.Parser.parseType() + 680
9   dfmt                                0x00000001094cecb6 dparse.ast.Declaration dparse.parser.Parser.parseDeclaration(bool, bool) + 10850
10  dfmt                                0x00000001094e05f9 dparse.ast.StructBody dparse.parser.Parser.parseStructBody() + 725
11  dfmt                                0x00000001094e0a50 dparse.ast.StructDeclaration dparse.parser.Parser.parseStructDeclaration() + 732
12  dfmt                                0x00000001094ce858 dparse.ast.Declaration dparse.parser.Parser.parseDeclaration(bool, bool) + 9732
13  dfmt                                0x00000001094da95b dparse.ast.Module dparse.parser.Parser.parseModule() + 951
14  dfmt                                0x0000000109409b83 void dfmt.formatter.format!(std.stdio.File.LockingTextWriter).format(immutable(char)[], ubyte[], std.stdio.File.LockingTextWriter, dfmt.config.Config*) + 639
15  dfmt                                0x00000001093dd72f _Dmain + 4575
16  dfmt                                0x0000000109548467 D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv + 39
17  dfmt                                0x000000010954839f void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 55
18  dfmt                                0x000000010954840c void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() + 44
19  dfmt                                0x000000010954839f void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 55
20  dfmt                                0x00000001095482f1 _d_run_main + 497
21  dfmt                                0x00000001093dd86f main + 15
22  libdyld.dylib                       0x00007fff8fa7e5fc start + 0
23  ???                                 0x0000000000000001 0x0 + 1

$ dustmite folder " dfmt out.d 2>&1 | grep -qF \"core.exception.AssertError@/Users/nicholaswilson/d/phobos/std/conv.d(4061): emplace: Chunk is not aligned.\"" | dev/null

$ cat folder/out.d
 T     ;

I don't really care about that as a reduced test case. Make it compile too.

$rm -r folder.reduced
$ dustmite folder " dfmt out.d 2>&1 | grep -qF \"core.exception.AssertError@/Users/nicholaswilson/d/phobos/std/conv.d(4061): emplace: Chunk is not aligned.\" && dmd -c out.d "
None => No
object.Exception@dustmite.d(244): Initial test fails
----------------
4   dustmite                            0x0000000103ddfecf _Dmain + 2847
5   dustmite                            0x0000000103e646e7 D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv + 39
6   dustmite                            0x0000000103e6461f void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 55
7   dustmite                            0x0000000103e6468c void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll() + 44
8   dustmite                            0x0000000103e6461f void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).tryExec(scope void delegate()) + 55
9   dustmite                            0x0000000103e64571 _d_run_main + 497
10  dustmite                            0x0000000103de075f main + 15
11  libdyld.dylib                       0x00007fff8fa7e5fc start + 0
12  ???                                 0x0000000000000002 0x0 + 2

any suggestions?
March 30, 2016
On Wednesday, 30 March 2016 at 09:06:20 UTC, Nicholas Wilson wrote:
> so
Oops. should be $ dfmt out.d
> core.exception.AssertError@/Users/nicholaswilson/d/phobos/std/conv.d(4061): emplace: Chunk is not aligned.
> ----------------

March 30, 2016
On Wednesday, 30 March 2016 at 09:06:20 UTC, Nicholas Wilson wrote:
> object.Exception@dustmite.d(244): Initial test fails

Works for me:

$ cat src/test.d
import std.stdio;

void main()
{
	writeln("foo");
	writeln("bar");
}

$ dustmite src "cat test.d 2>&1 | grep -qF foo && dmd -c test.d"
[...]
Done in 31 tests and 443 ms; reduced version is in src.reduced

$ cat src.reduced/test.d
import std.stdio;

void main()
{
	writeln("foo");
}

I guess make sure the dmd command succeeds on the initial file.