Bug 7918 – Crash when using heredoc syntax in DMD v2.05[89] on Win7 [64bit]

Status
RESOLVED
Resolution
WORKSFORME
Severity
minor
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
x86_64
OS
Windows
Creation time
2012-04-15T10:36:48Z
Last change time
2020-03-21T03:56:42Z
Assigned to
No Owner
Creator
Redger

Attachments

IDFilenameSummaryContent-TypeSize
1089crash.dCrash when using heredoc syntax in DMD v2.05[89] on Win7 [64bit]application/octet-stream563

Comments

Comment #0 by redger.liensun — 2012-04-15T10:36:48Z
Created attachment 1089 Crash when using heredoc syntax in DMD v2.05[89] on Win7 [64bit] A sample program is attached : I tried to call the powershell, passing a script to get a value. When using a string it works, when using the heredoc syntax to create the string it compiles but then it fails at runtime. PS C:\misc> .\crash.exe std.file.FileException@std\file.d(294): 44b7b89aba64d47f8cdf665a20c8b22fe0947a3c0664e7c8dbe730911161fef: The system cannot find the file specified. ---------------- 413670 4134FB 406CA5 402056 4025E8 402622 402243 4342F5 ---------------- Here is the code: string sh = "powershell -Sta -NoProfile -NonInteractive -Command "; //when uncommented the line below works! :) //string script = "$date = get-date; $date.ToString('o');"; //using the heredoc syntax it fails :( string script = q"SCR $date = get-date; $date.ToString('o'); SCR"; //escape script for powershell string cmd = sh~'"'~script~'"'; writeln( "result: " ~ shell(cmd) );
Comment #1 by dejan.lekic — 2012-04-20T05:55:39Z
Can you do something like this on Windows 7: C:\work> powershell -Sta -NoProfile -NonInteractive -Command " $date = get-date; $date.ToString('o'); " [ENTER] Can you?
Comment #2 by dejan.lekic — 2012-04-20T05:58:27Z
(In reply to comment #1) > Can you do something like this on Windows 7: > > C:\work> powershell -Sta -NoProfile -NonInteractive -Command " > $date = get-date; > $date.ToString('o'); > " [ENTER] > > Can you? Actually, it is like this: C:\work> powershell -Sta -NoProfile -NonInteractive -Command "$date = get-date; $date.ToString('o'); " [ENTER]