Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

-v command line switch should show import sources #20855

Open
schveiguy opened this issue Feb 12, 2025 · 4 comments · May be fixed by #20873
Open

-v command line switch should show import sources #20855

schveiguy opened this issue Feb 12, 2025 · 4 comments · May be fixed by #20873

Comments

@schveiguy
Copy link
Member

-v gives a list of imports and what files they are when parsing.

However, it doesn't tell you why the module was imported. Adding an additional field of the import source (and line number would be good too), might help diagnose unexpected import sources.

@MrcSnm
Copy link

MrcSnm commented Feb 12, 2025

import std.concurrency;
void main(){}

Built with ldc2 app.d --mtriple=wasm32-unknown-unknown

Shows the errors:

C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(34): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(34): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(37): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(37): Error: undefined identifier `tm`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(40): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(40): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(43): Error: undefined identifier `tm`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(46): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(49): Error: undefined identifier `tm`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(49): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(52): Error: undefined identifier `tm`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(52): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(54): Error: undefined identifier `tm`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(142): Error: undefined identifier `wchar_t`, did you mean `dchar`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(186): Error: undefined identifier `FILE`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(186): Error: undefined identifier `wchar_t`, did you mean `dchar`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(188): Error: undefined identifier `FILE`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(188): Error: undefined identifier `wchar_t`, did you mean `dchar`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(190): Error: undefined identifier `wchar_t`, did you mean `dchar`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(190): Error: undefined identifier `wchar_t`, did you mean `dchar`?

Completely unrelated to the faulting import.

IMO, this should even be extended to default messages

@schveiguy
Copy link
Member Author

try again with the -v switch as specified in the title.

@MrcSnm
Copy link

MrcSnm commented Feb 12, 2025

binary    C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\ldc2.exe
version   1.39.0 (DMD v2.109.1, LLVM 18.1.6)
config    C:\D\ldc2\ldc2-1.39.0-windows-multilib\etc\ldc2.conf (wasm32-unknown-unknown)
predefs   LDC all D_Version2 assert D_PreConditions D_PostConditions D_Invariants D_ModuleInfo D_Exceptions D_TypeInfo WebAssembly LittleEndian FreeStanding LDC_LLVM_1801
parse     app
importall app
import    object        (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\object.d)
import    core.internal.hash    (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\hash.d)
import    core.internal.traits  (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\traits.d)
import    core.internal.entrypoint      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\entrypoint.d)
import    core.internal.array.appending (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\array\appending.d)
import    core.internal.array.comparison        (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\array\comparison.d)
import    core.internal.array.equality  (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\array\equality.d)
import    core.internal.array.casting   (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\array\casting.d)
import    core.internal.array.concatenation     (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\array\concatenation.d)
import    core.internal.array.construction      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\array\construction.d)
import    core.internal.array.arrayassign       (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\array\arrayassign.d)
import    core.internal.array.capacity  (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\array\capacity.d)
import    core.internal.dassert (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\dassert.d)
import    core.internal.destruction     (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\destruction.d)
import    core.internal.moving  (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\moving.d)
import    core.internal.postblit        (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\postblit.d)
import    core.internal.switch_ (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\switch_.d)
import    core.lifetime (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\lifetime.d)
import    core.internal.attributes      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\attributes.d)
import    core.builtins (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\builtins.d)
import    ldc.intrinsics        (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\ldc\intrinsics.di)
import    std.concurrency       (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\concurrency.d)
import    std.range.interfaces  (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\range\interfaces.d)
import    std.meta      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\meta.d)
import    std.traits    (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\traits.d)
import    std.range.primitives  (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\range\primitives.d)
import    std.variant   (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\variant.d)
import    std.typecons  (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\typecons.d)
import    std.format.spec       (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\format\spec.d)
import    std.format.write      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\format\write.d)
import    std.format.internal.write     (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\format\internal\write.d)
import    std.internal.attributes       (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\std\internal\attributes.d)
import    core.atomic   (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\atomic.d)
import    core.internal.atomic  (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\atomic.d)
import    core.sync.condition   (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\sync\condition.d)
import    core.exception        (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\exception.d)
import    core.sync.exception   (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\sync\exception.d)
import    core.sync.mutex       (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\sync\mutex.d)
import    core.time     (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\time.d)
import    core.stdc.time        (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d)
import    core.stdc.config      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\config.d)
import    core.stdc.stdio       (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\stdio.d)
import    core.stdc.stdint      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\stdint.d)
import    core.stdc.stddef      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\stddef.d)
import    core.stdc.signal      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\signal.d)
import    core.stdc.wchar_      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d)
import    core.stdc.stdarg      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\stdarg.d)
import    core.internal.string  (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\internal\string.d)
import    core.thread   (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\thread\package.d)
import    core.thread.fiber     (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\thread\fiber.d)
import    core.memory   (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\memory.d)
import    core.stdc.errno       (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\errno.d)
import    core.stdc.stdlib      (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\stdlib.d)
import    core.thread.threadbase        (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\thread\threadbase.d)
import    core.thread.context   (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\thread\context.d)
import    core.thread.types     (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\thread\types.d)
import    core.thread.threadgroup       (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\thread\threadgroup.d)
import    core.thread.osthread  (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\thread\osthread.d)
import    ldc.attributes        (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\ldc\attributes.d)
import    ldc.llvmasm   (C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\ldc\llvmasm.di)
semantic  app
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(34): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(34): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(37): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(37): Error: undefined identifier `tm`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(40): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(40): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(43): Error: undefined identifier `tm`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(46): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(49): Error: undefined identifier `tm`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(49): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(52): Error: undefined identifier `tm`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(52): Error: undefined identifier `time_t`, did you mean function `time`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\time.d(54): Error: undefined identifier `tm`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(142): Error: undefined identifier `wchar_t`, did you mean `dchar`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(186): Error: undefined identifier `FILE`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(186): Error: undefined identifier `wchar_t`, did you mean `dchar`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(188): Error: undefined identifier `FILE`
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(188): Error: undefined identifier `wchar_t`, did you mean `dchar`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(190): Error: undefined identifier `wchar_t`, did you mean `dchar`?
C:\D\ldc2\ldc2-1.39.0-windows-multilib\bin\..\import\core\stdc\wchar_.d(190): Error: undefined identifier `wchar_t`, did you mean `dchar`?

@schveiguy
Copy link
Member Author

So if this enhancement were implemented, you'd see that core.time was imported by core.sync.condition, and that core.sync.condition was imported by std.concurrency. It would be easy to trace the path.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants