Release D 2.085.0

aliak something at something.com
Mon Mar 4 09:08:55 UTC 2019


On Sunday, 3 March 2019 at 17:44:21 UTC, Andre Pany wrote:
> On Sunday, 3 March 2019 at 14:01:03 UTC, aliak wrote:
>> On Saturday, 2 March 2019 at 18:19:37 UTC, Martin Nowak wrote:
>>> Glad to announce D 2.085.0, ♥ to the 49 contributors.
>>>
>>> This release comes with context-aware assertion messages, 
>>> lower GC memory usage, a precise GC, support to link custom 
>>> GCs, lots of Objective-C improvements¹, and 
>>> toolchainRequirements for dub. This release also ended 
>>> official support for OSX-32.
>>>
>>> http://dlang.org/download.html 
>>> http://dlang.org/changelog/2.085.0.html
>>>
>>> ¹: There is a pending Objective-C fix
>>> (https://github.com/dlang/dmd/pull/9402) that slipped 2.085.0 
>>> but will
>>> be released with 2.085.1 soon (~1.5 weeks).
>>>
>>> -Martin
>>
>> I'm not sure what's happening here but with 2.085.0 I'm 
>> getting linking errors all of a sudden. Could it be dub?
>>
>> To reproduce, init a new dub project, add dependency on 
>> "ddash" and use this main:
>>
>> import std.stdio;
>>
>> void main() {
>> 	import ddash: stringifySeperatedBy;
>> 	writeln([1, 2, 3].stringifySeperatedBy("."));
>> }
>>
>> Linking results in:
>>
>> Linking...
>> Undefined symbols for architecture x86_64:
>>   "__D5ddash12__ModuleInfoZ", referenced from:
>>       __D3app12__ModuleInfoZ in blah.o
>> ld: symbol(s) not found for architecture x86_64
>> clang: error: linker command failed with exit code 1 (use -v 
>> to see invocation)
>>
>>
>> When I set compiler back to 2.084.1 then:
>>
>> Linking...
>> To force a rebuild of up-to-date targets, run again with 
>> --force.
>> Running ./blah
>> 1.2.3
>>
>> Any ideas?
>
> After upgrading DMD in most cases I have to either delete the 
> cached dub packages in the user directory or execute dub with 
> the --force argument to rebuild all dependent dub packages.
> In theory dub should be able to recognize a changed compiler 
> version and automatically rebuild all dependencies but I do not 
> know how hard it would be to implement this.
>
> Kind regards
> Andre

Thanks for the tip, but it was on deployment on clean machines so 
everything is downloaded from scratch. No caches as far as i 
could tell. Double checked on my machine as well and still the 
same.

I did however notice that it also works on 2.085.0 if i import it 
a different way:

i.e. this works:

void main() {
  	import ddash.functional: stringifySeperatedBy; // difference is 
in import statement
  	writeln([1, 2, 3].stringifySeperatedBy("."));
}

So I guess maybe dub is off somewhere, or something which 
shouldn't have been working was.



More information about the Digitalmars-d-announce mailing list