buggins / dlangide

D language IDE based on DlangUI
Boost Software License 1.0
451 stars 56 forks source link

Windows build error: cannot implicitly convert expression #402

Open tekord opened 5 years ago

tekord commented 5 years ago

Hi! I am noobie in D, interested in it and tried to build dlangide. I use Window 8.1 x64, installed latest DMD (rdmd build 20190210, reference compiler) and tried to build dlang as instruction said: clone the repo, run dub run. If see any build errors then run dub clean-caches...

But I got the same result:

# dub build --force
Running pre-generate commands for dcd...
Performing "debug" build using D:\Dlang\dmd2\windows\bin\dmd.exe for x86.
stdx-allocator 2.77.5: building configuration "library"...
emsi_containers 0.8.0-alpha.12: building configuration "library"...
libdparse 0.9.10: building configuration "library"...
dsymbol 0.4.8: building configuration "library"...
C:\Users\Tekord\AppData\Local\dub\packages\emsi_containers-0.8.0-alpha.12\emsi_containers\src\containers\unrolledlist.d(568,29): **Error: cannot implicitly convert expression ~this.registry of type const(ulong) to immutable(uint)**
D:\Dlang\dmd2\windows\bin\dmd.exe failed with exit code 1.

Any ideas?

leh103 commented 5 years ago

This is a known error and a solution has been offered to the emsi-container developers. I had this some problem. If you go to emsi-containers git page and click on the pull request tab you will see the solution. If it has been committed already look for it on the closed pull request tab. You can make the small change to your local copy of unrolledlist.d or wait for the lib maintainer to release the next version probably version 0.8.0-alpha13 when it should be fixed.

DreadKyller commented 5 years ago

The pull request you're referring to has been closed by the person who opened it, and was not merged.

sccamp commented 5 years ago

Since the pr was closed and the branch deleted, here is the link to the code change that works if you want to manually update: https://github.com/dlang-community/containers/pull/137/commits/4b9d4567077a8db0d2b169529bc45b2f7c944664

leh103 commented 5 years ago

I just checked the emsi-containers github page and the necessary change has been approved and merged into version 0.8.0-alpha.13. However, the library that has a dependency for emsi-containers has not updated the dependency version in there dub.json file. But you can update the dependency in your local repository.