Jump to page: 1 26  
Page
Thread overview
February 02
Not to be a downer but just trying out D again with Vibe.d and getting confronted with the typical bug: Unexpected OPTLINK Termination at EIP=0040F60A

Tracing this back, bring up issues in the bugtracker from 2017 ( 17508 ), that is still open.

First impressions and such matter. And for some reason ever new "first impression" with D seems to result in annoying bugs being discovered ( Windows 10 ).

Yes, i already know. No Visual Studio linker installed ( and no, i do not want a 3GB installation just for the linker, when DMD already includes it ). But somebody forgot to tell dub!

So anybody using Vibe.d or any other project that rely on dub figuring out that DMD can be run without Visual Studios linker, can enjoy very nice and cryptic errors. User friendly it is not.

/Frustrated that this is still a issue.
February 02
On Saturday, 2 February 2019 at 02:32:28 UTC, Ben wrote:
> Not to be a downer but just trying out D again with Vibe.d and getting confronted with the typical bug: Unexpected OPTLINK Termination at EIP=0040F60A
> ...
> Yes, i already know. No Visual Studio linker installed ( and no, i do not want a 3GB installation just for the linker, when DMD already includes it ). But somebody forgot to tell dub!
> ...

This isn't dub or D problem, normally dub shouldn't know about linker, so you can set compiler flag to tell which linker to use(if there is such for dmd...) from dub project.

The actual problem in this case is DMD defaulting to old object file format/pipeline, but building with 'dub --arch=x86_mscoff' (dmd -m32mscoff) indeed should make dmd use lld if VS isn't available if it's not the case right now. Because even if you tell dmd -m32 to use lld it probably won't work because it produce stuff for OPTLINK for that target.

There is rumors about making the COFF default format when all major issues with lld will be ironed out.
February 02
On Saturday, 2 February 2019 at 02:32:28 UTC, Ben wrote:
> Not to be a downer but just trying out D again with Vibe.d and getting confronted with the typical bug: Unexpected OPTLINK Termination at EIP=0040F60A
>
> [...]

You can also set the default architecture to x86_64 for all dub projects as described here

https://dub.pm/settings.html

Kind regards
Andre
February 02
On Saturday, 2 February 2019 at 02:32:28 UTC, Ben wrote:
> Not to be a downer but just trying out D again with Vibe.d and getting confronted with the typical bug: Unexpected OPTLINK Termination at EIP=0040F60A
>
> Tracing this back, bring up issues in the bugtracker from 2017 ( 17508 ), that is still open.
>
> First impressions and such matter. And for some reason ever new "first impression" with D seems to result in annoying bugs being discovered ( Windows 10 ).
>
> Yes, i already know. No Visual Studio linker installed ( and no, i do not want a 3GB installation just for the linker, when DMD already includes it ). But somebody forgot to tell dub!
>
> So anybody using Vibe.d or any other project that rely on dub figuring out that DMD can be run without Visual Studios linker, can enjoy very nice and cryptic errors. User friendly it is not.
>
> /Frustrated that this is still a issue.

vibe.d doesn't compile with OPTLINK and it hasn't for years.

Just use the Microsoft linker by passing:

-a=x86_mscoff when building using dub.

Also look forward to the future when you don't need to install Visual Studio to get the linker as it will ship with DMD (If it doesn't already? It's been a while since I've checked.)


February 02
On Saturday, 2 February 2019 at 12:11:56 UTC, bauss wrote:
>
> Also look forward to the future when you don't need to install Visual Studio to get the linker as it will ship with DMD (If it doesn't already? It's been a while since I've checked.)

It is. But there is another problem. D is a SYSTEM programming language, not just some productivity language. It means there is still dependency on the system libs! Heck, even Rust given up with jemalloc in favor of system allocator by default, if this says something...
Of course the problem with packaging the libs with compiler installation can be solved by using same approach MinGW did, like people say, or even using the MinGW libs if it is possible.

February 02
On 2019-02-02 13:11, bauss wrote:

> Also look forward to the future when you don't need to install Visual Studio to get the linker as it will ship with DMD (If it doesn't already? It's been a while since I've checked.)

The linker is already shipped with DMD.

-- 
/Jacob Carlborg
February 02
On Saturday, 2 February 2019 at 13:18:08 UTC, evilrat wrote:
> On Saturday, 2 February 2019 at 12:11:56 UTC, bauss wrote:
>>
>> Also look forward to the future when you don't need to install Visual Studio to get the linker as it will ship with DMD (If it doesn't already? It's been a while since I've checked.)
>
> It is. But there is another problem. D is a SYSTEM programming language, not just some productivity language. It means there is still dependency on the system libs! Heck, even Rust given up with jemalloc in favor of system allocator by default, if this says something...
> Of course the problem with packaging the libs with compiler installation can be solved by using same approach MinGW did, like people say, or even using the MinGW libs if it is possible.

Mingw libs and headers are also included in recent dmd. Except of rare cases you may not need anymore to install vs or build tools.

Kind regards
Andre
February 02
On Saturday, 2 February 2019 at 14:36:00 UTC, Andre Pany wrote:
> On Saturday, 2 February 2019 at 13:18:08 UTC, evilrat wrote:
>> On Saturday, 2 February 2019 at 12:11:56 UTC, bauss wrote:
>>>
>>> Also look forward to the future when you don't need to install Visual Studio to get the linker as it will ship with DMD (If it doesn't already? It's been a while since I've checked.)
>>
>> It is. But there is another problem. D is a SYSTEM programming language, not just some productivity language. It means there is still dependency on the system libs! Heck, even Rust given up with jemalloc in favor of system allocator by default, if this says something...
>> Of course the problem with packaging the libs with compiler installation can be solved by using same approach MinGW did, like people say, or even using the MinGW libs if it is possible.
>
> Mingw libs and headers are also included in recent dmd. Except of rare cases you may not need anymore to install vs or build tools.
>
> Kind regards
> Andre

I don't get people complaining about and they are usually misinformed as well. You can install VC++ for 1.5 GB using the Build Tool install. Of that 1.5 GB 1 GB are library files and most of that is for the static libraries for the runtime. The last time this came up someone was developing on a cheap tablet or something with 16 GB of space that isn't expandable.
February 02
On Saturday, 2 February 2019 at 15:43:56 UTC, Rubn wrote:
> On Saturday, 2 February 2019 at 14:36:00 UTC, Andre Pany wrote:
>> On Saturday, 2 February 2019 at 13:18:08 UTC, evilrat wrote:
>>> On Saturday, 2 February 2019 at 12:11:56 UTC, bauss wrote:
>>>> [...]
>>>
>>> It is. But there is another problem. D is a SYSTEM programming language, not just some productivity language. It means there is still dependency on the system libs! Heck, even Rust given up with jemalloc in favor of system allocator by default, if this says something...
>>> Of course the problem with packaging the libs with compiler installation can be solved by using same approach MinGW did, like people say, or even using the MinGW libs if it is possible.
>>
>> Mingw libs and headers are also included in recent dmd. Except of rare cases you may not need anymore to install vs or build tools.
>>
>> Kind regards
>> Andre
>
> I don't get people complaining about and they are usually misinformed as well. You can install VC++ for 1.5 GB using the Build Tool install. Of that 1.5 GB 1 GB are library files and most of that is for the static libraries for the runtime. The last time this came up someone was developing on a cheap tablet or something with 16 GB of space that isn't expandable.

I completely agree. On the other side, due to the hard work of some fantastic people, today you can just extract the dmd zip and immediately compile 64 bit applications on windows. This user experience will attract  a lot of new users.

Kind regards
Andre
February 02
On Saturday, 2 February 2019 at 15:43:56 UTC, Rubn wrote:
> On Saturday, 2 February 2019 at 14:36:00 UTC, Andre Pany wrote:
>> On Saturday, 2 February 2019 at 13:18:08 UTC, evilrat wrote:
>>> On Saturday, 2 February 2019 at 12:11:56 UTC, bauss wrote:
>>>>
>>>> Also look forward to the future when you don't need to install Visual Studio to get the linker as it will ship with DMD (If it doesn't already? It's been a while since I've checked.)
>>>
>>> It is. But there is another problem. D is a SYSTEM programming language, not just some productivity language. It means there is still dependency on the system libs! Heck, even Rust given up with jemalloc in favor of system allocator by default, if this says something...
>>> Of course the problem with packaging the libs with compiler installation can be solved by using same approach MinGW did, like people say, or even using the MinGW libs if it is possible.
>>
>> Mingw libs and headers are also included in recent dmd. Except of rare cases you may not need anymore to install vs or build tools.
>>
>> Kind regards
>> Andre
>
> I don't get people complaining about and they are usually misinformed as well. You can install VC++ for 1.5 GB using the Build Tool install. Of that 1.5 GB 1 GB are library files and most of that is for the static libraries for the runtime. The last time this came up someone was developing on a cheap tablet or something with 16 GB of space that isn't expandable.

I think that the reason why people complain is that not everybody thinks in the same way as you.

Seriously, the last time I had to install D on my freshly reinstalled Windows partition, I almost gave up before finishing the installation procedure, because it once seemed I was doomed to unavoidingly install the X GB of Visual Studio environment (or its build tools, same problem) just to install a small D compiler needed to build my tiny single-file tools (Basil, Pendown, etc) on Windows.

By luck, I tried the Mingw option, which worked and this saved my day, but I think you have no idea how unlikely people will click on this Mingw option, and how this little install menu design can turn off people from D if they were just trying to experiment it as a Python or Ruby alternative, because **not everyone** is willing to start that LONG and HUGE Visual Studio thing just to try the finally-not-so-swift D compiler which seems to need it.

IMO, the two most urgent things you should improve to avoid immediately pushing people away from their curiosity about D is :

1/ make D's web site landing page show D advantages from the user point of view : why D would be better than Python etc to make file processing scripts, GUI applications, web servers, etc
2/ make the installation process quick and easy : you download a <50MB installer executable, click install, and in less than 2 minutes you are ready to go.

For 1, you should really consider putting this text on the landing page :

"D is a powerful and expressive language which compiles directly to efficient, native machine code.

It is the culmination of decades of experience implementing compilers for many diverse languages and has a unique set of features:

    high level constructs for great modeling power
    high performance, compiled language
    static typing
    direct interface to the operating system API's and hardware
    blazingly fast compile-times
    memory-safe subset (SafeD)
    maintainable, easy to understand code
    gradual learning curve (C-like syntax, similar to Java and others)
    compatible with C application binary interface
    limited compatibility with C++ application binary interface
    multi-paradigm (imperative, structured, object oriented, generic, functional programming purity, and even assembly)
    built-in error detection (contracts, unittests)"

Followed by THREE examples :

1. a very simple one which shows D basic syntax "a la JavaScript", by showing how to declare an string array, initialize it with [ "apple", "banana", "orange" ], how to iterate on them, print them, etc

2. a small "hello world" web server example (the one using vibe.d you see IF you select that example)

3. a small GUI example (opening a window with a menu, two radio buttons and a scroll view, using dlangui)

All directly visible, with a small text explaining how it is easy to :
1. make JavaScript/Python/Ruby like file scripting
2. easily develop web servers with vibe.d
3. easily develop multiplatform (Win/Mac/Linux) desktop with dlangui (which rocks btw)

And for the second point, about the installer, put the quick & easy installation option (Mingw) above and selected by default.

Or completely ignore those advices, and be happy what you think is already perfect for D's newcomers :)





« First   ‹ Prev
1 2 3 4 5 6