Jump to page: 1 2
Thread overview
[Issue 16962] rdmd --build-only --force -c main.d fails: ./main: No such file or directory
Dec 11, 2016
Timothee Cour
Dec 11, 2016
Timothee Cour
Dec 11, 2016
Timothee Cour
Dec 11, 2016
Andrej Mitrovic
Dec 11, 2016
Andrej Mitrovic
Dec 11, 2016
ag0aep6g@gmail.com
Dec 11, 2016
Vladimir Panteleev
Dec 11, 2016
Vladimir Panteleev
Dec 11, 2016
Timothee Cour
Dec 12, 2016
Vladimir Panteleev
Dec 12, 2016
Vladimir Panteleev
Dec 12, 2016
Vladimir Panteleev
Dec 17, 2016
Vladimir Panteleev
Dec 17, 2016
Vladimir Panteleev
Jan 07, 2017
Timothee Cour
December 11, 2016
https://issues.dlang.org/show_bug.cgi?id=16962

Timothee Cour <timothee.cour2@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |timothee.cour2@gmail.com

--- Comment #1 from Timothee Cour <timothee.cour2@gmail.com> ---
these also fail:

mkdir temp
rdmd --build-only --force -lib -od=temp/ main.d
core.exception.AssertError@rdmd.d(489): should have been created by
compileRootAndGetDeps


rdmd --build-only --force -lib -of=temp/main.a main.d core.exception.AssertError@rdmd.d(489): should have been created by compileRootAndGetDeps


rdmd --build-only --force -lib -oftemp/main.a main.d std.file.FileException@std/file.d(679): temp/main.a: No such file or directory


rdmd --build-only --force -lib -odtemp/ main.d std.file.FileException@std/file.d(679): temp/main.a: No such file or directory

--
December 11, 2016
https://issues.dlang.org/show_bug.cgi?id=16962

--- Comment #2 from Timothee Cour <timothee.cour2@gmail.com> ---
as well as:

rdmd --build-only --force -lib -odtemp/ -o- main.d object.Exception@rdmd.d(95): Option -o- currently not supported by rdmd

--
December 11, 2016
https://issues.dlang.org/show_bug.cgi?id=16962

--- Comment #3 from Timothee Cour <timothee.cour2@gmail.com> ---
also broken:
rdmd --build-only --force -od=/tmp/bar/ main.d

std.file.FileException@std/file.d(679): =/tmp/bar/main: No such file or
directory
=> rdmd doesn't seem to understand the new '=' syntax in '-od=' even though dmd
does (DMD64 D Compiler v2.072.1)

the only thing that works is:

rdmd --build-only --force -lib -od/tmp/bar/ main.d
rdmd --build-only --force -od/tmp/bar/ main.d

but NOT these:
s/-od/-od=/
s/-lib/-c/
or when we replace absolute path in od by relative path

--
December 11, 2016
https://issues.dlang.org/show_bug.cgi?id=16962

Andrej Mitrovic <andrej.mitrovich@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrej.mitrovich@gmail.com

--- Comment #4 from Andrej Mitrovic <andrej.mitrovich@gmail.com> ---
https://github.com/dlang/tools/commit/a63233c22dce33ff91141c5706cdc7d66a8c0099 seems to have caused the regression for the first test-case.

--
December 11, 2016
https://issues.dlang.org/show_bug.cgi?id=16962

--- Comment #5 from Andrej Mitrovic <andrej.mitrovich@gmail.com> ---
(In reply to Andrej Mitrovic from comment #4)
> https://github.com/dlang/tools/commit/ a63233c22dce33ff91141c5706cdc7d66a8c0099 seems to have caused the regression for the first test-case.

That's a merge commit, it was specifically 10ca158.

--
December 11, 2016
https://issues.dlang.org/show_bug.cgi?id=16962

ag0aep6g@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ag0aep6g@gmail.com

--- Comment #6 from ag0aep6g@gmail.com ---
Found another one while looking into this: https://issues.dlang.org/show_bug.cgi?id=16966

Regarding the bugs here:

The -of=/-od= thing (comment 3) seems to be a simple oversight. rdmd has just not been thought of when the feature was implemented in dmd. Should be easy to fix.

-o- not working (comment 2) seems to a deliberate restriction.

Supporting -c as in the summary may be some work. I must have missed that scenario completely when doing <https://github.com/dlang/tools/pull/194>. Problem is that rdmd now treats the root module specially: compiles it separately, links everything together in a separate step. That doesn't go naturally with -c, as far as I see. May have to detect -c and do things completely different then.

-lib not working with relative paths (comment 3) seems odd. I hope it's just a simple bug, and not a design flaw. I haven't investigated.

I'm going to look into this further, but it may take me a while. If anyone else wants to have a go, that would be great.

--
December 11, 2016
https://issues.dlang.org/show_bug.cgi?id=16962

Vladimir Panteleev <thecybershadow@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |thecybershadow@gmail.com

--- Comment #7 from Vladimir Panteleev <thecybershadow@gmail.com> ---
Sorry, what is the use case of using -c ? I think it working was a mere accident. If you want to syntax-check the file, use dmd (not rdmd) with -o-. Or do you want to compile everything into a single object file for some reason?

--
December 11, 2016
https://issues.dlang.org/show_bug.cgi?id=16962

--- Comment #8 from Vladimir Panteleev <thecybershadow@gmail.com> ---
There is a known problem with -lib and -od:

https://issues.dlang.org/show_bug.cgi?id=14296

Admittedly it's my fault as my commit introduced the regression, however the underlying bug is that DMD treats -od differently depending on whether -lib is passed or not, which I did not expect.

--
December 11, 2016
https://issues.dlang.org/show_bug.cgi?id=16962

--- Comment #9 from Timothee Cour <timothee.cour2@gmail.com> ---
>> Sorry, what is the use case of using -c ? I think it working was a mere accident. If you want to syntax-check the file, use dmd (not rdmd) with -o-. Or do you want to compile everything into a single object file for some reason?

Use case: when dmd's built-in linker magic isn't good enough (eg http://forum.dlang.org/post/mailman.765.1481492407.9448.digitalmars-d@puremagic.com where i have to first compile then link to get -pie but I keep running into similar issues where i want to link seperately because the default isn't good enough)

--
December 12, 2016
https://issues.dlang.org/show_bug.cgi?id=16962

Andrei Alexandrescu <andrei@erdani.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrei@erdani.com

--- Comment #10 from Andrei Alexandrescu <andrei@erdani.com> ---
It may indeed be worthwhile to support -c as in "solve all dependencies and produce a big .o file ready for linking". There is no easy way to do that with either dmd or rdmd. Alternatively we could use a --no-link flag but -c seems more direct. Vladimir, what do you think?

--
« First   ‹ Prev
1 2