www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Strange vibe.d build error

reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
After pulling from vibe.d git master today, my vibe.d project doesn't
compile anymore. `dub build` dies with:

	/usr/src/d/vibe.d/stream/vibe/stream/memory.d(56,42): Error: constructor
vibe.utils.array.AllocAppender!(ubyte[], ubyte).AllocAppender.this (IAllocator
alloc, ubyte[] initial_buffer = null) is not callable using argument types
(IAllocator)

No idea where to even start looking, because the error message doesn't
make sense. The ctor is stated to take an IAllocator as first parameter,
and an optional second parameter defaulting to null. So why does calling
the ctor with an instance of IAllocator fail?!


--T
Dec 21 2017
next sibling parent reply WebFreak001 <d.forum webfreak.org> writes:
On Thursday, 21 December 2017 at 21:10:39 UTC, H. S. Teoh wrote:
 After pulling from vibe.d git master today, my vibe.d project 
 doesn't compile anymore. `dub build` dies with:

 	/usr/src/d/vibe.d/stream/vibe/stream/memory.d(56,42): Error: 
 constructor vibe.utils.array.AllocAppender!(ubyte[], 
 ubyte).AllocAppender.this (IAllocator alloc, ubyte[] 
 initial_buffer = null) is not callable using argument types 
 (IAllocator)

 No idea where to even start looking, because the error message 
 doesn't make sense. The ctor is stated to take an IAllocator as 
 first parameter, and an optional second parameter defaulting to 
 null. So why does calling the ctor with an instance of 
 IAllocator fail?!


 --T
have you tried `dub upgrade && dub build --force` yet and pulled potential submodules?
Dec 21 2017
parent reply "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Thu, Dec 21, 2017 at 10:04:29PM +0000, WebFreak001 via Digitalmars-d wrote:
 On Thursday, 21 December 2017 at 21:10:39 UTC, H. S. Teoh wrote:
 After pulling from vibe.d git master today, my vibe.d project
 doesn't compile anymore. `dub build` dies with:
 
 	/usr/src/d/vibe.d/stream/vibe/stream/memory.d(56,42): Error:
 constructor vibe.utils.array.AllocAppender!(ubyte[],
 ubyte).AllocAppender.this (IAllocator alloc, ubyte[] initial_buffer
 = null) is not callable using argument types (IAllocator)
 
 No idea where to even start looking, because the error message
 doesn't make sense. The ctor is stated to take an IAllocator as
 first parameter, and an optional second parameter defaulting to
 null. So why does calling the ctor with an instance of IAllocator
 fail?!
 
 
 --T
have you tried `dub upgrade && dub build --force` yet and pulled potential submodules?
Hmm, that seemed to do the trick. Thanks! But still, that error message is exceedingly unhelpful. If possible I'd love to track it down and file an enhancement to improve the error message. T -- When solving a problem, take care that you do not become part of the problem.
Dec 21 2017
parent Jacob Carlborg <doob me.com> writes:
On 2017-12-22 00:43, H. S. Teoh wrote:

 But still, that error message is exceedingly unhelpful.  If possible I'd
 love to track it down and file an enhancement to improve the error
 message.
You can get that error when using two different symbols with the same local name but different fully qualified names. Since the compiler doesn't use the fully qualified name in the error message it can be very confusing. Although I'm not sure if this was the problem you had. -- /Jacob Carlborg
Dec 22 2017
prev sibling parent reply Petar Kirov [ZombineDev] <petar.p.kirov gmail.com> writes:
On Thursday, 21 December 2017 at 21:10:39 UTC, H. S. Teoh wrote:
 After pulling from vibe.d git master today, my vibe.d project 
 doesn't compile anymore. `dub build` dies with:

 	/usr/src/d/vibe.d/stream/vibe/stream/memory.d(56,42): Error: 
 constructor vibe.utils.array.AllocAppender!(ubyte[], 
 ubyte).AllocAppender.this (IAllocator alloc, ubyte[] 
 initial_buffer = null) is not callable using argument types 
 (IAllocator)

 No idea where to even start looking, because the error message 
 doesn't make sense. The ctor is stated to take an IAllocator as 
 first parameter, and an optional second parameter defaulting to 
 null. So why does calling the ctor with an instance of 
 IAllocator fail?!


 --T
Most likely, it's because of this: https://github.com/vibe-d/vibe.d/pull/1983 If you use dmd nightly you should see a better error message, courtesy of: https://github.com/dlang/dmd/pull/7405 https://github.com/dlang/dmd/pull/7441 https://github.com/dlang/dmd/pull/7448
Dec 23 2017
next sibling parent Seb <seb wilzba.ch> writes:
On Saturday, 23 December 2017 at 10:39:37 UTC, Petar Kirov 
[ZombineDev] wrote:
 On Thursday, 21 December 2017 at 21:10:39 UTC, H. S. Teoh wrote:
 After pulling from vibe.d git master today, my vibe.d project 
 doesn't compile anymore. `dub build` dies with:

 	/usr/src/d/vibe.d/stream/vibe/stream/memory.d(56,42): Error: 
 constructor vibe.utils.array.AllocAppender!(ubyte[], 
 ubyte).AllocAppender.this (IAllocator alloc, ubyte[] 
 initial_buffer = null) is not callable using argument types 
 (IAllocator)

 No idea where to even start looking, because the error message 
 doesn't make sense. The ctor is stated to take an IAllocator 
 as first parameter, and an optional second parameter 
 defaulting to null. So why does calling the ctor with an 
 instance of IAllocator fail?!


 --T
Most likely, it's because of this: https://github.com/vibe-d/vibe.d/pull/1983 If you use dmd nightly you should see a better error message, courtesy of: https://github.com/dlang/dmd/pull/7405 https://github.com/dlang/dmd/pull/7441 https://github.com/dlang/dmd/pull/7448
There was also a similar PR for vibe-core: https://github.com/vibe-d/vibe-core/pull/43 I'm pretty sure that either of them is using stdx-allocator and the other isn't. The merged PRs might only be tagged/released in alphas.
Dec 23 2017
prev sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Sat, Dec 23, 2017 at 10:39:37AM +0000, Petar via Digitalmars-d wrote:
 On Thursday, 21 December 2017 at 21:10:39 UTC, H. S. Teoh wrote:
 After pulling from vibe.d git master today, my vibe.d project doesn't
 compile anymore. `dub build` dies with:
 
 	/usr/src/d/vibe.d/stream/vibe/stream/memory.d(56,42): Error:
 constructor vibe.utils.array.AllocAppender!(ubyte[],
 ubyte).AllocAppender.this (IAllocator alloc, ubyte[] initial_buffer =
 null) is not callable using argument types (IAllocator)
 
 No idea where to even start looking, because the error message
 doesn't make sense. The ctor is stated to take an IAllocator as
 first parameter, and an optional second parameter defaulting to
 null. So why does calling the ctor with an instance of IAllocator
 fail?!
[...]
 Most likely, it's because of this:
 https://github.com/vibe-d/vibe.d/pull/1983
Ah, figures!
 If you use dmd nightly you should see a better error message, courtesy of:
 https://github.com/dlang/dmd/pull/7405
 https://github.com/dlang/dmd/pull/7441
 https://github.com/dlang/dmd/pull/7448
I was using dmd git master. T -- Everybody talks about it, but nobody does anything about it! -- Mark Twain
Dec 27 2017