digitalmars.D.bugs - DMD 0.101: Internal error on array concatenation
- Kramer (19/19) Sep 02 2004 I'm not sure if this is a bug or even a legal assignment, but the follow...
- Stewart Gordon (10/13) Sep 02 2004 Every internal error is a bug. Or, at least, every internal error
- Kramer (9/17) Sep 02 2004 It seems that getcwd() has a an extra character in the string in returns...
- Bent Rasmussen (4/10) Sep 02 2004 This isn't quite on-topic but when I last tried std.file.getcwd it retur...
- Kramer (3/13) Sep 02 2004 Yup, that's spot on what I was attempting. Thanks for the tip.
- Regan Heath (15/31) Sep 02 2004 So the corrected code is simply:
I'm not sure if this is a bug or even a legal assignment, but the following causes an internal error: import std.file; void main() { char[] curdir; curdir[0..(getcwd().length-1)] ~= getcwd(); // not sure if this is allowed? } Compiling with v0.101 on Windows 2000 with flags -inline -O gives: Internal error: ..\ztc\cod2.c 4207 I just started using D and am a bit rusty with the old c/c++ skills, let alone knowing how to do things proper in D, but I'm quite excited to learn... :) I have been following the NG for a while now and let me say, Walter, fantastic language! I've learned so much (just about programming and language design in general) from everyone who posts; I was quite happy just reading, but I've decided to join the fray. :P Looking forward to sharpening my D skills and letting some others get a bit rustier! (not by avoidance of course, just ramping up the D usage) :) -Kramer
Sep 02 2004
Kramer wrote:I'm not sure if this is a bug or even a legal assignment, but the following causes an internal error:Every internal error is a bug. Or, at least, every internal error that's reproducible. <snip>curdir[0..(getcwd().length-1)] ~= getcwd(); // not sure if this is allowed?<snip> What were you expecting it to do? Stewart. -- My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.
Sep 02 2004
In article <ch6prk$738$1 digitaldaemon.com>, Stewart Gordon says...<snip>It seems that getcwd() has a an extra character in the string in returns. I can't tell what it is, but I was trying to remove it. As for the assignment, I didn't know if I needed to size the array first or if I could attempt the above, so I just went for it. Debug question: How would I find out what that character is using a printf type debug technique. (I've never used gdb or similar debuggers in windows/unix before). Thanks for the help! -Kramercurdir[0..(getcwd().length-1)] ~= getcwd(); // not sure if this is allowed?<snip> What were you expecting it to do?Stewart. -- My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.
Sep 02 2004
void main() { char[] curdir; curdir[0..(getcwd().length-1)] ~= getcwd(); // not sure if this is allowed? }This isn't quite on-topic but when I last tried std.file.getcwd it returned a string with a superfluous space at the end. I guess this is why you're trying to create a sliced string. I suggest this getcwd[0 .. length - 1]
Sep 02 2004
In article <ch6qch$77n$1 digitaldaemon.com>, Bent Rasmussen says...Yup, that's spot on what I was attempting. Thanks for the tip. -Kramervoid main() { char[] curdir; curdir[0..(getcwd().length-1)] ~= getcwd(); // not sure if this is allowed? }This isn't quite on-topic but when I last tried std.file.getcwd it returned a string with a superfluous space at the end. I guess this is why you're trying to create a sliced string. I suggest this getcwd[0 .. length - 1]
Sep 02 2004
On Thu, 2 Sep 2004 16:35:49 +0000 (UTC), Kramer <Kramer_member pathlink.com> wrote:In article <ch6qch$77n$1 digitaldaemon.com>, Bent Rasmussen says...So the corrected code is simply: char[] curdir; curdir ~= getcwd()[0 .. length -1]; or: char[] curdir; curdir = getcwd()[0 .. length -1]; or: char[] curdir; curdir = getcwd(); curdir.length = curdir.length - 1; Regan -- Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/Yup, that's spot on what I was attempting. Thanks for the tip.void main() { char[] curdir; curdir[0..(getcwd().length-1)] ~= getcwd(); // not sure if this is allowed? }This isn't quite on-topic but when I last tried std.file.getcwd it returned a string with a superfluous space at the end. I guess this is why you're trying to create a sliced string. I suggest this getcwd[0 .. length - 1]
Sep 02 2004