Visual D 1.3.0 released

2022-06-05 Thread Rainer Schuetze via Digitalmars-d-announce

Hi,

happy to announce the release of Visaul D 1.3.0. The most important 
change is the update of semantic analysis for highlighting, browsing and 
code completion to the frontend of dmd 2.100.0.


See the list of further changes and bug fixes at 
https://rainers.github.io/visuald/visuald/VersionHistory.html


Visual D is a Visual Studio extension providing project management, 
language services and debugger integration for the D language. You can 
install it from the Visual Studio Marketplace or download it from


https://rainers.github.io/visuald/visuald/StartPage.html

Best,
Rainer


Re: Beta 2.099.0

2022-02-15 Thread Rainer Schuetze via Digitalmars-d-announce




On 16/02/2022 06:53, forkit wrote:

On Wednesday, 16 February 2022 at 04:14:01 UTC, max haughton wrote:

On Wednesday, 16 February 2022 at 01:38:08 UTC, forkit wrote:

On Tuesday, 15 February 2022 at 13:06:47 UTC, Martin Nowak wrote:




I was so hoping I could now begin using -betterC on Windows...

but no .. :-(

i.e. stdout, stdin, stderr ...still cannot link...


Can you not define them yourself in the meantime?


err.. howdy doody dat?



The PR was too late for the beta, but this is the basic change: 
https://github.com/dlang/druntime/pull/3740/files#diff-5cbe9748431681a766784b1bd997444d58d436a26a345b32397daae478f85c5dR907


Please note that this only supports the C runtimes for VS 2015 or later. 
If you are using the mingw import libraries, you'll have to switch to 
the corresponding version, too. Without a VS environment, 
-mscrtlib=vcruntime140 should do, but the tests had to add


-Lvcruntime140.lib -Llegacy_stdio_definitions.lib 
-L/NODEFAULTLIB:msvcrt120.lib


on the command line to do that.


Visual D 1.2.0 supports Visual Studio 2022

2022-01-15 Thread Rainer Schuetze via Digitalmars-d-announce

Hi,

Visual D 1.2.0 has just been released. Visual D is a Visual Studio 
package providing project management, language services and debugger 
integration for the D language. You download it from


https://rainers.github.io/visuald/visuald/StartPage.html

Major new features:

 * added support for Visual Studio 2022

 * semantic engine updated to frontend of dmd 2.098.1

 * added option to restart the semantic analysis if memory
   usage goes above a given threshold

See the list of further changes at 
https://rainers.github.io/visuald/visuald/VersionHistory.html


Known issues:

 * the signing certificate of the D Language Foundation has
   recently expired, so the installer cannot be signed digitally ATM
   (the same as the dmd installer).

 * Visual Studio 2022 is the first VS version running as a 64-bit
   process which means all extensions had to be ported to 64-bit
   aswell. Please consider support for it experimental and report
   issues to bugzilla.

Best,
Rainer


Re: On the D Blog -- Teaching D from Scratch: Is it a viable first language?

2021-12-24 Thread Rainer Schuetze via Digitalmars-d-announce




On 24/12/2021 16:24, rumbu wrote:

On Thursday, 23 December 2021 at 12:44:04 UTC, Mike Parker wrote:
Steven Schveighoffer has been using D to teach a group of children to 
program. He wrote about his experience for the D blog. Is D a viable 
first language? See what Steve has to say about it :-)


The blog:
https://dlang.org/blog/2021/12/23/teaching-d-from-scratch-is-it-a-viable-first-language/ 



I have read that Visual D has a better debugging experience, but I 
need dub support for these projects, and Visual D focuses on Visual 
Studio integration, something I don’t necessarily want to deal with in 
teaching these kids


This is truly an understatement about Visual D, the debugging experience 
is at par with the native C++ one in VS. If I was a kid from that group, 
I would feel tormented by the dub/vscode experience :) Rainer Schuetze 
deserves a statue.




Thanks, but no statue please ;-) BTW: the mago debug engine was 
originally written by Aldo Nunez. I adopted it and made it work as an 
extension to the VS Concord debugger.


Please note that the native debug engine for VS Code is the same as for 
Visual Studio, and it only took some changes to make the former load 
extensions, too: 
https://github.com/microsoft/vscode-cpptools/issues/2932#issuecomment-853774543


Integrating it with code-d is just some installation issues away, see 
https://github.com/WebFreak001/code-debug/issues/271


Re: Visual D 1.1.0 released

2021-03-09 Thread Rainer Schuetze via Digitalmars-d-announce



On 06/03/2021 12:55, Imperatorn wrote:
> On Saturday, 6 March 2021 at 06:59:28 UTC, Rainer Schuetze wrote:
>>
>>
>> On 05/03/2021 12:26, Imperatorn wrote:
>>> On Friday, 5 March 2021 at 10:57:05 UTC, Kagamin wrote:
 On Thursday, 4 March 2021 at 13:42:47 UTC, Imperatorn wrote:
> https://filebin.net/19gupoeedfdjx5tx
>
> One GIF is the behaviour in C# I would like to have in D as well
> with static if, and the other is displaying typeid on hover.

 The second is a debug session. Visual Studio doesn't show type
 information in debug session for C# either, only variable name and
 value.
>>>
>>> True, but could it?
>>
>> Visual D already does that with the help of the semantic highlighting:
>> if an identifier is classified as a type or compile time value, it
>> suppresses the debugger data tool tip and presents the usual one.
> 
> Oh, I see. What about dub integration. How much effort would it be to
> have something similar to what code-d has in vsc? Guesstimation?

I'm not much of a dub user. Last time I checked, using it as a package
manager was fine, but not as a build tool. Dependency checks were
incomplete and rather slow. The visuald project generation is pretty
dated and doesn't support multiple configurations which kind of breaks
the usual VS workflow.

I think for better integration dub project generation needs to be
improved (and extended to vcxproj files), or Visual D has to do it
itself from "dub describe" (if that's possible). The latter would also
allow seamless updates of the project in the background.

Then, integration of package management can be considered.


Re: Visual D 1.1.0 released

2021-03-05 Thread Rainer Schuetze via Digitalmars-d-announce



On 05/03/2021 12:26, Imperatorn wrote:
> On Friday, 5 March 2021 at 10:57:05 UTC, Kagamin wrote:
>> On Thursday, 4 March 2021 at 13:42:47 UTC, Imperatorn wrote:
>>> https://filebin.net/19gupoeedfdjx5tx
>>>
>>> One GIF is the behaviour in C# I would like to have in D as well with
>>> static if, and the other is displaying typeid on hover.
>>
>> The second is a debug session. Visual Studio doesn't show type
>> information in debug session for C# either, only variable name and value.
> 
> True, but could it?

Visual D already does that with the help of the semantic highlighting:
if an identifier is classified as a type or compile time value, it
suppresses the debugger data tool tip and presents the usual one.


Re: Visual D 1.1.0 released

2021-03-05 Thread Rainer Schuetze via Digitalmars-d-announce



On 04/03/2021 14:43, James Lu wrote:
> On Tuesday, 2 March 2021 at 08:58:15 UTC, Rainer Schuetze wrote:
>> Hi,
>>
>> development on Visual D, the Visual Studio extension that adds D
>> language support to VS 2008-2019, has been rather slow recently, but
>> finally the results of recent months have been released.
>>
>> Some highlights of this new version:
>>
>> - semantic engine updated to frontend 2.095.1
>>
>> - adds "adornments" (Visual Studio terminology) to the call
>> site of parameters that are passed by (mutable) ref, out or lazy. See
>> https://rainers.github.io/visuald/visuald/images/parameterstorage.png
>> for some examples.
>>
>> - integrates dfmt for command "Format Document"
>>
>> See https://rainers.github.io/visuald/visuald/VersionHistory.html for
>> a full list of changes.
>>
>> You can find the update installer or a full installer bundled with
>> latest versions of DMD and LDC here:
>>
>> https://rainers.github.io/visuald/visuald/StartPage.html
>>
>> Cheers,
>> Rainer
> 
> Hi,
> 
> I've gotten D articles to the frontpage of Hacker News 4 times.
> 
> I think this would be a good candidate to get to the frontpage of Hacker
> News again.
> 
> I want you to submit it to Hacker News, then add a comment saying:
> 
> * Explain why you made this
> * Explain what's interesting about Visual D
> * Offer to explain questions

> 
> Use the title: "Visual Studio Code for D Language 1.1.0"

Thanks for the suggestion. I'm not a user of these social news sites,
though, and even don't have time to keep track of discussions on the D
forums lately.

BTW: Visual D is not an extension for VS Code, but plain ol' Visual Studio.


Re: Visual D 1.1.0 released

2021-03-05 Thread Rainer Schuetze via Digitalmars-d-announce



On 04/03/2021 14:29, Imperatorn wrote:
> A few questions.
> 
> How hard would the following be:
> 
> 1. Highlight code as dead or alive in static if
> 
> 2. Show typeid when hovering over a variable
> 

Adding to what Bastiaan said:

"Lowlighting" disabled code in static if() similar to debug/version
conditions is on my list of things to implement, but indeed, it might
get confusing in templates because a random instantiation is currently
used to show semantic information for its members.

Hovering a variable should show its type in the tool tip (note that you
can click the type in the tip to jump to its definition). But your
example shows that there is a problem with the expression "typeid(T)",
as no information is shown when hovering T inside the parenthesis.
Probably an omission in the visitor.


Re: Visual D 1.1.0 released

2021-03-03 Thread Rainer Schuetze via Digitalmars-d-announce



On 04/03/2021 00:07, Bastiaan Veelo wrote:
> On Tuesday, 2 March 2021 at 08:58:15 UTC, Rainer Schuetze wrote:
>> You can find the update installer or a full installer bundled with
>> latest versions of DMD and LDC here:
>>
>> https://rainers.github.io/visuald/visuald/StartPage.html
> 
> For clarity, the converse is not true. If you use the official dmd
> installer (.exe) and select "Download Visual D" in it then you end up
> with only version 0.50 of VisualD.

Version 0.50 was the first to include automatic checks for updates, so
it is hopefully not that much of a problem.

But point taken, the DMD installer should be updated from time to time,
too. Or just check for the latest version...


Visual D 1.1.0 released

2021-03-02 Thread Rainer Schuetze via Digitalmars-d-announce
Hi,

development on Visual D, the Visual Studio extension that adds D
language support to VS 2008-2019, has been rather slow recently, but
finally the results of recent months have been released.

Some highlights of this new version:

- semantic engine updated to frontend 2.095.1

- adds "adornments" (Visual Studio terminology) to the call
site of parameters that are passed by (mutable) ref, out or lazy. See
https://rainers.github.io/visuald/visuald/images/parameterstorage.png
for some examples.

- integrates dfmt for command "Format Document"

See https://rainers.github.io/visuald/visuald/VersionHistory.html for a
full list of changes.

You can find the update installer or a full installer bundled with
latest versions of DMD and LDC here:

https://rainers.github.io/visuald/visuald/StartPage.html

Cheers,
Rainer


Re: Visual D 1.0.1 released

2020-08-25 Thread Rainer Schuetze via Digitalmars-d-announce



On 25/08/2020 22:37, Per Nordlöw wrote:
> On Sunday, 23 August 2020 at 07:33:01 UTC, Rainer Schuetze wrote:
>> The most important part of the update is that the semantic engine is
>> now based on the latest compiler release 2.093.1.
> 
> - Does the engine have a feature list?

Unfortunately the feature list in the documentation has bitrotten a bit.
You can get an idea of the functionality from the interface file:
https://github.com/dlang/visuald/blob/master/vdc/ivdserver.d

> - Is the engine relatively independent of Windows?

Mostly, but the interface to the IDE, which is a Local COM server.

> - Does engine integrate with language server (in a platform independent
> way)?

The concept is similar, but predates the Language Server protocol.

Last time I tried, LSP based language services don't work well together
with other services for the same language in Visual Studio.

> - Are there any plans for cross-platform (Linux) support?

Not really. I think most of the code could be integrated with the dmd
code base (changeset is
https://github.com/dlang/dmd/compare/stable...rainers:dmdserver), but I
currently don't have too much time for that. That way an LSP based
service could be adopted to provide similar functionality.

> 
> I'm dying to get a semantic engine that supports code navigation to (and
> completion of) overloaded functions at their call site including
> UFCS-calls. DCD doesn't support these two features.

Navigation should be fine, but completion is usually on non-compilable
code, so it's not always perfect. IMO it has improved in comparison to
the DParser based engine, though.


Re: Visual D 1.0.1 released

2020-08-25 Thread Rainer Schuetze via Digitalmars-d-announce



On 25/08/2020 07:25, mw wrote:
> On Sunday, 23 August 2020 at 07:33:01 UTC, Rainer Schuetze wrote:
>> Hi,
>>
>> an update for Visual D has just been made available. Visual D is a
>> Visual Studio extension that adds D language support to VS 2008-2019.
>>
>> The most important part of the update is that the semantic engine is
>> now based on the latest compiler release 2.093.1. There are a few
>> other improvements and bug fixes, e.g. support for navigation with
>> forward/backward mouse buttons and fixed documentation tool tips for
>> template functions.
>>
>> See the full version history here:
>> https://rainers.github.io/visuald/visuald/VersionHistory.html
>>
>> You can download the update installer or the full installer bundled
>> with DMD 2.093.1 and LDC 1.23.0 from
>>
>>   https://rainers.github.io/visuald/visuald/StartPage.html
>>
> 
> 
> Thanks for the update.
> 
> I just tried, and found two issues:
> 
> https://issues.dlang.org/show_bug.cgi?id=21193
> https://issues.dlang.org/show_bug.cgi?id=21194
> 
> Basically, I cannot build unit-threaded_property.lib (saying corrupt MS
> Coff object) with VisualD, but I can build on Windows using command line:
> 
> C:\project\dlang\dmd-2.093.1\windows\bin64\dub.exe test --build=unittest
> 

I responded in the bug reports, I suspect some issue with dub's project
generation.


Re: Release D 2.093.1

2020-08-24 Thread Rainer Schuetze via Digitalmars-d-announce
On 24/08/2020 10:09, Martin Nowak wrote:
> Glad to announce D 2.093.1, ♥ to the 13 contributors.
> 
> http://dlang.org/download.html

Thanks, Martin.

The Visual D update mechanism notified about this release about a week
ago, even earlier than the usual 1 or 2 days. This probably happens
because the LATEST link in the release archive had already been updated
at the time.

Did the release binaries change after the link has been updated? In that
case I might have to update the Visual D full installers, too.


Visual D 1.0.1 released

2020-08-23 Thread Rainer Schuetze via Digitalmars-d-announce
Hi,

an update for Visual D has just been made available. Visual D is a
Visual Studio extension that adds D language support to VS 2008-2019.

The most important part of the update is that the semantic engine is now
based on the latest compiler release 2.093.1. There are a few other
improvements and bug fixes, e.g. support for navigation with
forward/backward mouse buttons and fixed documentation tool tips for
template functions.

See the full version history here:
https://rainers.github.io/visuald/visuald/VersionHistory.html

You can download the update installer or the full installer bundled with
DMD 2.093.1 and LDC 1.23.0 from

  https://rainers.github.io/visuald/visuald/StartPage.html

Cheers,
Rainer


Re: Visual D 1.0.0 released

2020-07-13 Thread Rainer Schuetze via Digitalmars-d-announce



On 12/07/2020 23:35, Rainer Schuetze wrote:
> 
> 
> On 12/07/2020 11:11, greatsam4sure wrote:
> [...]
>> set WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
>> set WindowsSdkVersion=10.0.18362.0
>> set UniversalCRTSdkDir=C:\Program Files (x86)\Windows Kits\10\
>> set UCRTVersion=10.0.18362.0
> [...]
>> echo legacy_stdio_definitions.lib /LIBPATH:"C:\Program Files
>> (x86)\Microsoft Visual
>> Studio\2019\Community\VC\Tools\MSVC\14.24.28314\lib\x86"
>> /LIBPATH:"C:\Program Files (x86)\Windows
>> Kits\10\Lib\10.0.18362.0\ucrt\x86"
> [...]
>>
>> LINK : fatal error LNK1181: cannot open input file 'user32.lib'
>> Building Win32\Debug\WindowsApp2.exe failed!
> 
> 
> I suspect you don't have the Windows SDK installed with Visual Studio.
> user32.lib is usually found in "C:\Program Files (x86)\Windows
> Kits\10\lib\10.0.18362.0\um\x86", but that path is not passed on the
> command line with /LIBPATH.
> 

On second thought: if you installed the SDK after Visual D, the settings
in "Tools -> Options -> Projects and Solutions -> Visual D Settings ->
DMD directories -> Win32 COFF32 -> Library Paths" might not reflect that
(it should contain something like
$(WindowsSdkDir)lib\$(WindowsSdkVersion)\um\x86).

You can also click "Reset Settings" on the Visual D settings page to
correct that.


Re: Visual D 1.0.0 released

2020-07-12 Thread Rainer Schuetze via Digitalmars-d-announce



On 12/07/2020 11:11, greatsam4sure wrote:
[...]
> set WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
> set WindowsSdkVersion=10.0.18362.0
> set UniversalCRTSdkDir=C:\Program Files (x86)\Windows Kits\10\
> set UCRTVersion=10.0.18362.0
[...]
> echo legacy_stdio_definitions.lib /LIBPATH:"C:\Program Files
> (x86)\Microsoft Visual
> Studio\2019\Community\VC\Tools\MSVC\14.24.28314\lib\x86"
> /LIBPATH:"C:\Program Files (x86)\Windows
> Kits\10\Lib\10.0.18362.0\ucrt\x86"
[...]
> 
> LINK : fatal error LNK1181: cannot open input file 'user32.lib'
> Building Win32\Debug\WindowsApp2.exe failed!


I suspect you don't have the Windows SDK installed with Visual Studio.
user32.lib is usually found in "C:\Program Files (x86)\Windows
Kits\10\lib\10.0.18362.0\um\x86", but that path is not passed on the
command line with /LIBPATH.


Re: Visual D 1.0.0 released

2020-07-10 Thread Rainer Schuetze via Digitalmars-d-announce



On 10/07/2020 09:14, Jacob Carlborg wrote:
> On Friday, 10 July 2020 at 06:46:53 UTC, Rainer Schuetze wrote:
> 
>> There is an extension using DLS as an LSP:
>> https://marketplace.visualstudio.com/items?itemName=LaurentTreguier.visual-studio-dlang
>>
>>
>> It's been some time, but when I tried to use that along side Visual D,
>> it caused problems because both are trying to be a language service
>> for the same language.
> 
> I was more hoping for the engine in VisualD to be the new DCD or DLS,
> since it's already using the DMD frontend for some things. Then it can
> be used by other editors and IDEs, hint hint, wink wink ;)

The semantic engine shouldn't be too hard to extract, as it is already
running as a separate process. It just uses a protocol that predates LSP.


Re: Visual D 1.0.0 released

2020-07-10 Thread Rainer Schuetze via Digitalmars-d-announce



On 09/07/2020 14:14, Jacob Carlborg wrote:
> On Thursday, 9 July 2020 at 08:40:24 UTC, Petar Kirov [ZombineDev] wrote:
> 
>> What I really wish is we had a single shared codebase for dlang editor
>> support, that could be shared among editor extension writers, instead
>> of having many community members working on competing solutions.
> 
> That would be really nice. Doesn't Visual Studio (not VSCode) supports
> LSP these days?
> 

There is an extension using DLS as an LSP:
https://marketplace.visualstudio.com/items?itemName=LaurentTreguier.visual-studio-dlang

It's been some time, but when I tried to use that along side Visual D,
it caused problems because both are trying to be a language service for
the same language.


Re: Visual D 1.0.0 released

2020-07-10 Thread Rainer Schuetze via Digitalmars-d-announce



On 10/07/2020 07:07, Petar Kirov [ZombineDev] wrote:
> I don't care about the VS debug engine since it's Windows only. Some of
> the UX may be nice to replicate, but think this falls outside big the
> scope of a dlang editor extension, if said editor already has general
> native code debugging functionality.

Actually the Microsoft C++ extension for VS Code also uses the Concord
debug engine, but unfortunately it is not extendible as in VS (yet), see
https://github.com/microsoft/vscode-cpptools/issues/2932

> Also some people even disagree that VS is better than GDB in general:
> https://www.quora.com/Why-is-the-Visual-Studio-C%2B%2B-debugger-much-better-than-GDB-LLDB-or-any-other-debugger-for-C%2B%2B?ch=10=b4f38907=3E2D0
> 
> 
> Even if if I agree that VS provides a better debugging experience than
> VS Code, GDB is more powerful tool overall, so I don't miss Concorde on
> Linux.

I think gdb can be compared with windbg. They both have great in-depth
functionality.

UX wise both are not so well, but it all depends on the front-end built
on top of them. The usual downside is that remoting the text-interface
can be incredibly slow.


Re: Visual D 1.0.0 released

2020-07-10 Thread Rainer Schuetze via Digitalmars-d-announce



On 08/07/2020 10:11, Walter Bright wrote:
> On 7/7/2020 6:26 PM, Manu wrote:
>> The difference is night vs day... VisualD is, by far, like REALLY FAR,
>> the most mature and useful IDE and debug environment for D.
>> TL;DR: if you are a D dev, and you use Windows, you should definitely
>> try Visual Studio + VisualD. I for one couldn't work without it!
> 
> One great thing about Rainer doing VisualD is he has leveraged that to
> make crucial changes to dmd's output to better work with the Visual
> debugger.

My first open source project was cv2pdb, a tool that converts old-style
CodeView debug information generated by optlink to a PDB file. Now that
this functionality is more or less available in dmd itself when
compiling to COFF object files, cv2pdb seems to be more popular among
C++ people using gcc on Windows, because it also allows to convert DWARF
to PDB.


Re: Visual D 1.0.0 released

2020-07-05 Thread Rainer Schuetze via Digitalmars-d-announce



On 04/07/2020 15:00, Rainer Schuetze wrote:
> - debugger extension mago will now evaluate struct or class properties
> (methods or fields) __debugOverview, __debugExpanded and __debugTextView
> to customize the debugger display. mago can even display forward ranges
> as a list, but that is currently rather slow, so it is disabled by
> default (see debugger options).
> 

I have added some documentation and screenshots here:
https://rainers.github.io/visuald/visuald/Debugging.html#customization


Re: Visual D 1.0.0 released

2020-07-04 Thread Rainer Schuetze via Digitalmars-d-announce



On 04/07/2020 17:16, Arafel wrote:
> On 4/7/20 15:00, Rainer Schuetze wrote:
>> Hello,
>>
>> after having passed the 10 year anniversary of public availability
>> recently, it is finally time to release version 1.0 of Visual D, the
>> Visual Studio extension that adds D language support to VS 2008-2019.
>>
>> You can find the installer at
>> http://rainers.github.io/visuald/visuald/StartPage.html
>>
>> Highlights from this release:
>>
>> - semantic engine based on dmd front end now enabled by default and
>> updated to 2.092. If you are low on memory or run a 32-bit Windows, you
>> should switch back to the legacy engine.
>>
>> - debugger extension mago will now evaluate struct or class properties
>> (methods or fields) __debugOverview, __debugExpanded and __debugTextView
>> to customize the debugger display. mago can even display forward ranges
>> as a list, but that is currently rather slow, so it is disabled by
>> default (see debugger options).
>>
>> - the bar on the top of the edit window now displays the current edit
>> scope and allows faster navigation within a source file (needs the dmd
>> based engine)
>>
>> - ever wondered how to navigate to the type of a variable declared by
>> `auto` inference? clicking an identifier in a tool tip from intellisense
>> will now jump to its definition (only with the dmd based engine)
>>
>> See https://rainers.github.io/visuald/visuald/VersionHistory.html for
>> the complete list of changes.
>>
>> Cheers,
>> Rainer
>>
> 
> Looks great!
> 
> I could only see windows installers though, and at first sight it seems
> to be Win only... is there any chance it would work with VSCode for
> linux / VSCodium (even if built manually)?
> 

Indeed, this is Windows only. Visual Studio Code is a different platform
than Visual Studio. Not sure why Microsoft named them so that they are
easily confused.


Visual D 1.0.0 released

2020-07-04 Thread Rainer Schuetze via Digitalmars-d-announce
Hello,

after having passed the 10 year anniversary of public availability
recently, it is finally time to release version 1.0 of Visual D, the
Visual Studio extension that adds D language support to VS 2008-2019.

You can find the installer at
http://rainers.github.io/visuald/visuald/StartPage.html

Highlights from this release:

- semantic engine based on dmd front end now enabled by default and
updated to 2.092. If you are low on memory or run a 32-bit Windows, you
should switch back to the legacy engine.

- debugger extension mago will now evaluate struct or class properties
(methods or fields) __debugOverview, __debugExpanded and __debugTextView
to customize the debugger display. mago can even display forward ranges
as a list, but that is currently rather slow, so it is disabled by
default (see debugger options).

- the bar on the top of the edit window now displays the current edit
scope and allows faster navigation within a source file (needs the dmd
based engine)

- ever wondered how to navigate to the type of a variable declared by
`auto` inference? clicking an identifier in a tool tip from intellisense
will now jump to its definition (only with the dmd based engine)

See https://rainers.github.io/visuald/visuald/VersionHistory.html for
the complete list of changes.

Cheers,
Rainer


Re: Visual D 0.52.0 released

2020-03-24 Thread Rainer Schuetze via Digitalmars-d-announce



On 24/03/2020 12:01, ShadoLight wrote:
> On Tuesday, 24 March 2020 at 10:55:28 UTC, ShadoLight wrote:
>> On Monday, 23 March 2020 at 09:54:46 UTC, Rainer Schuetze wrote:
>>> Hi,
>>>
>>> a new version of Visual D, the Visual Studio extension that adds D
>>> language support to VS2008-2019, is available at
>>>
>> [snip]
>>
>> As always - VisualD is highly appreciated Rainer!
>>
>> A minor issue (typo probably), the installer shows "Install in VS2005"
>> as the 1st option, not "Install in VS2008".
>>
>> In fact, there is no option for installation to target VS2008, so I
>> suspect this is just a typo since, AFAIK, you don't support VS2005
>> anymore.
>>
>> This does not affect me, so no need to fix this on my behalf. Don't
>> know about others, but I suspect VS2008 usage is sufficiently rare
>> that this is not urgent.
> 
> Hmm, I re-checked and it doesn't show VS2010 either... maybe it is
> picking up that I had to install VS2005 recently to repair some old
> project that had to remain in VS2005 project format?
> 
> In my case VisualD installer only shows VS2005, and then all options
> from vS2013 onwards (even if not installed).

Versions before VS2013 are no longer shown, if they are not detected to
be installed (the installer already does this for a couple of releases).
This is to avoid a long list of ancient versions that very few use and
that are only partly supported anyway. The installer even detects VS.NET
2003.


Re: Visual D 0.52.0 released

2020-03-24 Thread Rainer Schuetze via Digitalmars-d-announce



On 24/03/2020 03:31, Dylan Graham wrote:
> On Monday, 23 March 2020 at 09:54:46 UTC, Rainer Schuetze wrote:
>> Hi,
>>
>> a new version of Visual D, the Visual Studio extension that adds D
>> language support to VS2008-2019, is available at
>>
>> [...]
> 
> Nvm it didn't hang. Just took a very long time to complete semantic
> highlighting.

I guess dmd doesn't take as long to compile the file, does it? Does it
happen on specific code? Are you able to share it?

I usually try the engine on Visual D and dmd, and semantic highlighting
can take a couple of seconds, but it doesn't feel very different from C++.


Re: Visual D 0.52.0 released

2020-03-24 Thread Rainer Schuetze via Digitalmars-d-announce



On 24/03/2020 03:30, Dylan Graham wrote:
> Restarting Visual Studio and terminating the server seems to fix the
> issue, until it happens again 15 minutes later.

BTW: you don't need to restart Visual Studio, killing dmdserver.exe is
enough, it will be automatically restarted and reconnected.


Visual D 0.52.0 released

2020-03-23 Thread Rainer Schuetze via Digitalmars-d-announce
Hi,

a new version of Visual D, the Visual Studio extension that adds D
language support to VS2008-2019, is available at

https://rainers.github.io/visuald/visuald/StartPage.html

Major highlights of this release are

- improvements to the DMD based semantic engine: it has been updated to
the frontend version 2.091, and code-completion has improved quite a
bit, so much that I would recommend everyone to actually try it (unless
you have too little RAM installed to cope with the frontends hunger for
memory). Use "Visual D -> Open Language options..." from the menu to
enable the "DMD parsing engine" as well as "Colorize identifiers from
semantic analysis" on the "Editor" options page.

- the debugger expression evaluation now has support for tuples and
simpler display of global variables (it's no longer necessary to specify
the fully qualified name)

- updated support for all language options (e.g. -preview), these are
also forwarded to the DMD based code analysis

The full version history can be found at

https://rainers.github.io/visuald/visuald/VersionHistory.html

Cheers,
Rainer


Re: Beta 2.091.0

2020-03-05 Thread Rainer Schuetze via Digitalmars-d-announce



On 05/03/2020 06:15, Andre Pany wrote:
>>> Small remark: To get dub working you need to copy it from bin folder
>>> to bin64 folder manually. Just adding folders `bin64` and `bin` to
>>> PATH does not work because Dub will you `dmd` from current folder.
>>
[...]
> 
> Yes, adding a64 bit version of dub to bin64 would solve the issue.
> I also agree with you, there is no need to make the 64 version the default.
> It should just be possible, by extracting the DMD zip archive and setting
> environment variable PATH to bin64 to have a working dmd & dub integration.
> 
> Another solution would also be to have 2 dmd windows zip archives like
> you have it
> for FreeBSD:
> dmd.2.090.0.freebsd-32.zip
> dmd.2.090.0.freebsd-64.zip
> But this requires more effort I assume, maybe this is a solution for the
> long ran

The 64-bit binaries only add a couple of MB to the installer exe/7z, so
it's probably not required to split them up.

> and the low hanging fruit for the moment is to add a 64 dub executable
> to the dmd zip archive.

https://github.com/dlang/installer/pull/445

> 
> Kind regards
> André


Re: Beta 2.091.0

2020-03-03 Thread Rainer Schuetze via Digitalmars-d-announce



On 26/02/2020 15:23, Andre Pany wrote:
> On Wednesday, 26 February 2020 at 14:11:58 UTC, Andre Pany wrote:
>> On Wednesday, 26 February 2020 at 12:17:43 UTC, Martin Nowak wrote:
>>
>> Thank you so much Rainer for adding the 64 bit dmd compiler to the
>> windows installation package. Also building DMD with LDC is such a
>> huge improvement. Thank you Sebastian.
>> This is really great news!
>>
>> Kind regards
>> André
> 
> Small remark: To get dub working you need to copy it from bin folder to
> bin64 folder manually. Just adding folders `bin64` and `bin` to PATH
> does not work because Dub will you `dmd` from current folder.

I guess by "working" you mean that dub uses the 64-bit version of dmd.
We could add a 64-bit version of dub to the bin64 folder, too, but I'm
not sure the bin64 version of the compiler has to be the default. It
uses almost twice as much memory and hence is a bit slower:

dmd.exe -m64 -c -unittest std\regex\internal\tests.d

32-bit dmd:  853 MB, 3.280 sec
64-bit dmd: 1445 MB, 3.740 sec

> 
> I just tested the performance improvement and it feels twice as fast as
> before!

dmd 2.090.0: 879 MB, 10.230 sec (released without optimizations)
dmd 2.090.1: 873 MB,  5.300 sec


Re: DIP 1027---String Interpolation---Format Assessment

2020-02-27 Thread Rainer Schuetze via Digitalmars-d-announce



On 27/02/2020 01:20, Walter Bright wrote:
> On 2/26/2020 3:13 AM, Petar Kirov [ZombineDev] wrote:
>> In all other languages with string interpolation that I'm familiar
>> with, `a` is not passed to the `i` parameter.
> 
> All rely on a garbage collected string being generated as an
> intermediate variable.

The string buffer could also be stack allocated or manually managed with
malloc/free by the string interpolation type.


Re: Visual D 0.51.0 - semantic engine based on dmd frontend

2020-01-20 Thread Rainer Schuetze via Digitalmars-d-announce



On 21/01/2020 00:07, kinke wrote:
> On Monday, 20 January 2020 at 22:10:58 UTC, Rainer Schuetze wrote:
>> That can happen when the semantic analysis asserts and crashes the
>> background process.
>>
>> It works better if you also configure the LDCshared project to define
>> version identifiers MARS and IN_LLVM (separated by a ';' as in
>> "MARS;IN_LLVM"), set the string import path "../ldc/res" and disable
>> warnings for deprecations.
> 
> Thx again, now I'm finally getting somewhere! Wrt. earlier,
> dmdserver.exe was still running in the background (but had only consumed
> 3 secs of CPU time and didn't seem to do anything anymore). Btw nice
> that that's a 64-bit executable, lots of memory for huge projects...

I could avoid the crashes with this change to dmd:
https://github.com/rainers/dmd/commit/2b3fc197bd86fc358f349182798d8142f1564177

BTW: Don't miss to enable "Colorize identifiers from semantic analysis"
for more colorful editing. This also helps the debugger a bit by
identifying compile time entities that should not be displayed in a data
tooltip, but the regular one which can show aliases and enum values not
found in the debug information.


Re: Visual D 0.51.0 - semantic engine based on dmd frontend

2020-01-20 Thread Rainer Schuetze via Digitalmars-d-announce



On 20/01/2020 14:48, kinke wrote:
> On Sunday, 19 January 2020 at 07:04:35 UTC, Rainer Schuetze wrote:
>> If you switch "Item Type" of one of the D files to use the "D
>> Compiler", you can set the import path to "..\ldc" so the engine can
>> find imported files.
> 
> After figuring that one has to open the file properties via right-click
> (i.e., not available in the quick properties or however they are
> called), that worked, thx.
> 
> It doesn't get past the 'Analyzing...' stage though (in tooltips), no
> [IntelliSense] errors show up in the errors pane.

That can happen when the semantic analysis asserts and crashes the
background process.

It works better if you also configure the LDCshared project to define
version identifiers MARS and IN_LLVM (separated by a ';' as in
"MARS;IN_LLVM"), set the string import path "../ldc/res" and disable
warnings for deprecations.


Re: Visual D 0.51.0 - semantic engine based on dmd frontend

2020-01-18 Thread Rainer Schuetze via Digitalmars-d-announce



On 19/01/2020 04:32, kinke wrote:
> On Saturday, 18 January 2020 at 22:32:00 UTC, Rainer Schuetze wrote:
>> It's not in the project configuration, but the global options
>> "Tools->Options->Text Editor->D->Intellisense"
> 
> Thx! I've immediately stumbled on an apparent missing import dir with
> the LDC solution, i.e., the project's src dir root doesn't seem to get
> added - no problem with the old engine.
> 
> To reproduce:
> * cmake -G "Visual Studio 16 2019" -A x64 -DLLVM_ROOT_DIR=...
> -DD_COMPILER=...\ldmd2 ...\ldc-src
> * Open solution
> * Open any .d file in the LDCShared project and notice that all imports
> fail with the new engine

It seems the problem is that LDC doesn't use the Visual D integration
into msbuild, but custom build rules. That hides the import settings.

If you switch "Item Type" of one of the D files to use the "D Compiler",
you can set the import path to "..\ldc" so the engine can find imported
files.

The old engine scans the source folder for any D files, but that can
also cause problems if there are multiple versions of the same module in
some subdirectory.


Re: Visual D 0.51.0 - semantic engine based on dmd frontend

2020-01-18 Thread Rainer Schuetze via Digitalmars-d-announce



On 18/01/2020 22:25, kinke wrote:
> On Saturday, 18 January 2020 at 14:22:41 UTC, Rainer Schuetze wrote:
>> It is still considered experimental and has to be enabled on the
>> respective language options page.
> 
> Is there a way to enforce it, e.g., via registry or by hacking the
> project files, for regular VS projects (such as the VS solution for LDC
> generated by CMake)? I can't find any such options page.
> 

It's not in the project configuration, but the global options
"Tools->Options->Text Editor->D->Intellisense" or via the Visual D menu
"Open Language Options...".


Re: Visual D 0.51.0 - semantic engine based on dmd frontend

2020-01-18 Thread Rainer Schuetze via Digitalmars-d-announce



On 18/01/2020 17:43, Sebastiaan Koppe wrote:
> On Saturday, 18 January 2020 at 14:22:41 UTC, Rainer Schuetze wrote:
>> This version features a first version of an intellisense engine that
>> is based on the DMD frontend (as of version 2.090) for semantic
>> analysis. It is still considered experimental and has to be enabled on
>> the respective language options page.
>>
>> Cheers,
>> Rainer
> 
> Nice, that is awesome. Could the engine also be re-used for in e.g. the
> D lsp server?

Sure, this should be possible. This is the used dmd fork:
https://github.com/rainers/dmd/tree/dmdserver and most of the client
code is here: https://github.com/dlang/visuald/tree/master/vdc/dmdserver

The frontend doesn't make it easy to implement other functionality like
refactoring and formatting, though. On the other hand, running both
libdparse and another engine in parallel doesn't seem desirable, too. So
it is not easy to get the best of both engines (it is currently similar
with DParser and dmdserver).


Visual D 0.51.0 - semantic engine based on dmd frontend

2020-01-18 Thread Rainer Schuetze via Digitalmars-d-announce
Hello,

I'm happy to announce the release of Visual D 0.51.0.

Visual D is a Visual Studio extension that adds D language support to
VS2008-2019. The installers can be found at
http://rainers.github.io/visuald/visuald/StartPage.html


This version features a first version of an intellisense engine that is
based on the DMD frontend (as of version 2.090) for semantic analysis.
It is still considered experimental and has to be enabled on the
respective language options page. When comparing this new engine to the
regular engine which is based on DParser that used to power Mono-D:

- it does a full semantic analysis and shows the same errors as dmd
would do. DParser only marks parser issues.

- browsing compilable code works quite well (e.g. inference of auto
types is not an issue anymore).

- semantic highlighting is faster and more accurate.

- completion is yet not very good, especially while the currently edited
code has parsing errors.

- as dmd itself it can require quite a bit of memory, though a variety
of false and stale pointer issues have been fixed to help the precise GC.

Other highlights of this release:

- Ctrl+Click goto definition added for VS2017+

- visualdproj projects: basic DUB support: upgrade and refresh if
project contains dub.json or dub.sdl

See https://rainers.github.io/visuald/visuald/VersionHistory.html for
the complete list of changes

Cheers,
Rainer


Re: DIP 1024---Shared Atomics---Accepted

2020-01-11 Thread Rainer Schuetze via Digitalmars-d-announce



On 02/01/2020 09:01, Manu wrote:
> On Thu, Jan 2, 2020 at 4:45 PM Walter Bright via
> Digitalmars-d-announce  wrote:
>>
>> On 1/1/2020 9:53 PM, Manu wrote:
>>> On Thu, Jan 2, 2020 at 3:40 PM Mike Parker via Digitalmars-d-announce
>>>  wrote:

 DIP 1024, "Shared Atomics", was accepted without comment.

 https://github.com/dlang/DIPs/blob/master/DIPs/accepted/DIP1024.md
>>>
>>> This has been a long time coming!
>>
>> A New Year's present for all of us!
> 
> Quick quick, we need a PR to issue deprecation messages for those
> invalid read/writes! :)
> 

Before making the new semantics the default, the next step should be to
make druntime and phobos compile with the preview-switch. That didn't
seem like a no-brainer to me when I recently tried that (but only for a
couple of minutes), especially with shared being applied to class/struct
declarations.


Re: On the Blog: Recent D Compiler Releases

2020-01-08 Thread Rainer Schuetze via Digitalmars-d-announce



On 08/01/2020 09:50, Mike Parker wrote:
> I've posted an overview of LDC 1.19.0 and DMD 2.090.0 on the blog, and a
> reminder that GDC is available as part of the GCC 9 series.
> 
> The blog:
> https://dlang.org/blog/2020/01/08/recent-d-compiler-releases/
> 
> Reddit:
> https://www.reddit.com/r/programming/comments/elq5yx/recent_d_compiler_releases_ldc_dmd_and_gdc/
> 

Thanks Mike!

>With the current GC implementation, it’s illegal to perform any GC
operations during finalization.

There are some exceptions, namely addRoot/addRange and
removeRoot/removeRange and the iterators over roots or ranges.

I guess it might be possible to support some querying functions during
finalization, too.


Re: Release Candidate [was: Re: Beta 2.090.0]

2019-12-30 Thread Rainer Schuetze via Digitalmars-d-announce



On 30/12/2019 12:07, Martin Nowak wrote:
> On Sunday, 22 December 2019 at 15:23:32 UTC, Martin Nowak wrote:
>> Glad to announce the first beta for the 2.090.0 release, ♥ to the 48
>> contributors.
>>
>> http://dlang.org/download.html#dmd_beta
>> http://dlang.org/changelog/2.090.0.html
>>
>> As usual please report any bugs at
>> https://issues.dlang.org
>>
>> -Martin
> 
> Release candidate is live now.

The windows build is still considered "dirty", i.e.it reports version
DMD32 D Compiler v2.090.0-rc.1-dirty.

Is there something that can be done about that?


Re: Visual D 0.50.0 released

2019-09-03 Thread Rainer Schuetze via Digitalmars-d-announce



On 23/06/2019 19:58, Rainer Schuetze wrote:
> Hi,
> 
> today a new version of Visual D has been released. Its main new features are
> 
> - additional installer available that includes DMD and LDC
> 
> - now checks for updates for Visual D, DMD and LDC, assisted download
> and install
> 
> - debugger improvements: better support for dynamic type of classes,
> show exception messages, conditional breakpoints
> 
> - highlight references to symbol at caret (experimental)
> 
> See https://rainers.github.io/visuald/visuald/VersionHistory.html for
> the complete list of changes
> 
> Visual D is a Visual Studio extension that adds D language support to
> VS2008-2019. It is written in D, its source code can be found on github:
> https://github.com/D-Programming-Language/visuald, pull requests welcome.
> 
> The installers can be found at
> http://rainers.github.io/visuald/visuald/StartPage.html
> 
> Visual D is now also available in the Visual Studio Marketplace:
> https://marketplace.visualstudio.com/items?itemName=RainerSchuetze.visuald
> 
> Happy coding,
> Rainer
> 

I just released a bug fix version 0.50.1 with a few enhancements:

- fixes some integration issues with VS 2019 16.2
- mago: improve function call in watch window
- better version highlighting for files not in project

Full list of changes as usual here:
https://rainers.github.io/visuald/visuald/VersionHistory.html


Re: Release Candidate [was: Re: Beta 2.087.0]

2019-06-30 Thread Rainer Schuetze via Digitalmars-d-announce



On 30/06/2019 00:21, Martin Nowak wrote:
> On Sunday, 16 June 2019 at 22:47:57 UTC, Martin Nowak wrote:
>> Glad to announce the first beta for the 2.087.0 release, ♥ to the 66
>> contributors.
> 
> Release Candidate is live.
> 
>> http://dlang.org/download.html#dmd_beta
>> http://dlang.org/changelog/2.087.0.html
>>
>> As usual please report any bugs at
>> https://issues.dlang.org
>>
>> -Martin

Thanks. It seems https://github.com/dlang/druntime/pull/2620 hasn't made
it into the RC although it was merged into stable 2 days ago. I guess
that coincided with preparations for the release candidate. Will it
still be included in the release?


Re: Visual D 0.50.0 released

2019-06-26 Thread Rainer Schuetze via Digitalmars-d-announce



On 26/06/2019 04:35, Bart wrote:
> On Tuesday, 25 June 2019 at 19:47:40 UTC, Rainer Schuetze wrote:
>>
>>
>> On 25/06/2019 15:53, a11e99z wrote:
>>> On Tuesday, 25 June 2019 at 12:24:03 UTC, a11e99z wrote:
 On Sunday, 23 June 2019 at 17:58:27 UTC, Rainer Schuetze wrote:
> today a new version of Visual D has been released.

 and now I have some issues with new VD 0.50:
 and now main troubles: I cant build any D project any more from VS.
 - compiling as "LDC x64": again used OPTLINK. why? LDC has own
 lld-link.
>>>
>>> I deinstalled Build Tools, installed VC++ from VS-Installer to Community
>>> folder as 99% does.
>>> same problems.
>>> deinstalled VD0.50, install it again, all settings restored from olds (I
>>> want to do clean installation)
>>> deinstalled VD0.50, installed 0.49.2, same problems and same old
>>> settings.
>>> pic of LDC x64 w OPTLINK https://pasteboard.co/Il3uc0E.png
>>> well, now i can not compile D projects at all with any version of VD.
>>
>> "Image not found" for the link.
>>
>> I suspect that there is something wrong with the order of folders in
>> the PATH environment variable. You can check the generated batch
>> (*.cmd) in the output folder.
> 
> 
> Maybe what might help is for VD to output all relevant information such
> as the locations of the compiler, linker, library imports, etc... all in
> an easily one per line file.
> 
> I tend to have trouble parsing the logs and such because the information
> is not easily readable unless one knows exactly what they are looking
> for. Specially with large projects.
> 
> This may not help with the compiler and linker itself unless you were to
> monitor the file system for changes(like process monitor) and then
> report what it is using but that would be a bit of work.
> 
> On my comp LDC does not work and I just get a crash but I don't know
> why. I simply don't use LDC for now.
> 
> For example, if you could override all the file commends in VD (e.g., if
> you use std.file you could hijack it) and then output all open files to
> a log along with VD's __FILE__ and __LINE__ info to get the source where
> they are being used at.  Would also require doing it with the shell but
> you basically already do it... just maybe pretty print the info so it is
> more readable. E.g.,
> 
> VD Options
>    ---
> 
> Paths:
>    Libraries: C:\Lib
>    Imports: C:\Imports
>    Compiler: C:\dmd\bin
> 
> Import libraries:
>    C:\libraries\
>    D:\foxtrot\tango.m
>    ...
>  Command line options:
>    -m64
>    -g
>    -IC:\libraries\
>    ...
> ...
> 
> Opened Files:
>     C:\project\happy.m 
>     D:\projects\dance.m 
>     
> 
> The point is to be as verbose as possible to provide as much contextual
> information for figuring out problems.
> 
> 
> 
> or whatever...
> 
> 
> If you setup the framework you could slowly convert everything over time
> by simply logging stuff and as you come across old usage you can update
> it. Maybe get the most relevant first and then the rest of the stuff
> could follow.
> 
> There are dll injection libraries that can be used to inject in to a
> process to monitor file system access... could be used on the compiler
> and linker and all the files it uses could be stored(the log file would
> be very large but it would be helpful).
> 
> 

You can already find all this information in the output/intermediate
folder, e.g. the dep/lnkdep files are from monitoring compiler and
linker, respectively.

The logs are not as verbose as the ones generated by msbuild, but that
makes them easier to digest.


Re: Visual D 0.50.0 released

2019-06-25 Thread Rainer Schuetze via Digitalmars-d-announce



On 25/06/2019 15:53, a11e99z wrote:
> On Tuesday, 25 June 2019 at 12:24:03 UTC, a11e99z wrote:
>> On Sunday, 23 June 2019 at 17:58:27 UTC, Rainer Schuetze wrote:
>>> today a new version of Visual D has been released.
>>
>> and now I have some issues with new VD 0.50:
>> and now main troubles: I cant build any D project any more from VS.
>> - compiling as "LDC x64": again used OPTLINK. why? LDC has own lld-link.
> 
> I deinstalled Build Tools, installed VC++ from VS-Installer to Community
> folder as 99% does.
> same problems.
> deinstalled VD0.50, install it again, all settings restored from olds (I
> want to do clean installation)
> deinstalled VD0.50, installed 0.49.2, same problems and same old settings.
> pic of LDC x64 w OPTLINK https://pasteboard.co/Il3uc0E.png
> well, now i can not compile D projects at all with any version of VD.

"Image not found" for the link.

I suspect that there is something wrong with the order of folders in the
PATH environment variable. You can check the generated batch (*.cmd) in
the output folder.


Re: Visual D 0.50.0 released

2019-06-25 Thread Rainer Schuetze via Digitalmars-d-announce



On 25/06/2019 15:38, a11e99z wrote:
> On Tuesday, 25 June 2019 at 12:24:03 UTC, a11e99z wrote:
> and should exists total uninstallation with removing ALL setting and
> folders.
> probably its good for updating to new version but should exist
> possibility to make clean new installation with removing all old settings.
> for now uninstall & new install restore all old settings. dunno where it
> stores. I remove folder in program files, appdata\roaming and
> some keys from registry but it doesnt helps. probably I missed something.

The problem is that Visual Studio keeps the settings in a private
registry that is only mounted when you run VS. This private registry is
not accessible by the installer.

Adding a "Reset all settings to default" sounds like a good idea,
though. I'll see if it can be added in the next release.

You could try running "devenv /ResetSettings" for a global reset.


Re: Visual D 0.50.0 released

2019-06-25 Thread Rainer Schuetze via Digitalmars-d-announce



On 25/06/2019 14:24, a11e99z wrote:
> On Sunday, 23 June 2019 at 17:58:27 UTC, Rainer Schuetze wrote:
>> today a new version of Visual D has been released.
> 
> before I used VS2017 with VD 0.49. was ok. then I uninstalled it both.
> then installed VS2019 (.NET only), installed VD 0.50, installed Build
> Tools for 2019 (C++), installed DMD & LDC as unpack distros to some
> folder and added PATH to their bin dirs

That's where your troubles start.

> - CLI is working now.
> 
> and now I have some issues with new VD 0.50:
> - (weird but can live with it) mode "betterC" looks in settings like
> "remove some runtime info and helper functions"

That's the description given by dmd in the CLI help.

 - not clear too much coz
> I thoughts that this option decrease compiled EXE size. please give to
> it more clear text like "betterC"

I can add betterC/worseD to the description if that helps. The VC++
integration already calls the option "Better C".

> - (in concert) Visual D Settings\Updates\Base directory
> for what needed that directory? for D projects? (oh, we are in tab
> "Updates") then what I should point here DMD directory (that can be in
> ProgramFiles if i used DMD installer)? LDC directory (that can be in any
> other user dir)? or I should point just "C:\"? weird name and option.

There is not a lot of space for verbose descriptions in this dialog, the
installer explains it a bit less terse. But I'll try to cover it in a
line above or below the option.

> - Path to VS Linker exists only in DMD Directories tab for x64. What for
> GDC and LDC in case I dont install DMD at all?

GDC uses ld and LDC the Microsoft linker, nothing from the dmd installation.

> 
> and now main troubles: I cant build any D project any more from VS.
> - compiling as "DMD x64": OPTLINK can not build EXE coz VD gives to it
> probably weird option. OPTLINK points to "/OUT:.." option and I dont
> used any nonASCII chars. dunno whats wrong. DMD still can build EXE from
> CLI.

That's probably because link.exe cannot be found in the standard
locations (Build tools not supported, as probably C++ integration
doesn't do aswell). Then PATH is searched, but the dmd folder contains
some badly named executables, link.exe being the worst.

> - compiling as "LDC x64": again used OPTLINK. why? LDC has own lld-link.
> - ok. remove DMD from VS options and from PATH var. LDC tried to use
> link.exe. why? it has own lld-link again. see next point.

lld-link is pretty new, and is unlikely to work well enough in
combination with C++. For example, Microsoft keeps adding new debug
information records.

> - coz I installed Build Tools(C++) separate form VS my folder to libs
> and tools located at "C:\Program Files (x86)\Microsoft Visual
> Studio\2019\BuildTools" not in the "..\Community". Probably its MS
> problem but I have what I have. so using VCINSTALLDIR is not good option
> for all cases. Try to check folder BuildTools too and VCINSTALLDIR for
> lastest build tools and libs. I can point VD settings manually but VD
> can do it automatically - just to check two folders instead one.

Sorry, can't support all possible combinations of installations. I think
it's not too bad if you can still configure the odd cases.


Re: Visual D 0.50.0 released

2019-06-25 Thread Rainer Schuetze via Digitalmars-d-announce



On 25/06/2019 08:49, Bart wrote:
> On Tuesday, 25 June 2019 at 05:32:37 UTC, Rainer Schuetze wrote:
>>
>>
>> On 24/06/2019 21:58, Bart wrote:
>>> On Sunday, 23 June 2019 at 17:58:27 UTC, Rainer Schuetze wrote:
 Hi,

 today a new version of Visual D has been released. Its main new
 features are

 [...]
>>>
>>>
>>> Did you break showing interfaces in the debug window? None of my
>>> interfaces are able to be expanded as the objects they are after
>>> updating. Was working fine right before.
>>
>> I think the bug has been in there since beta1, but doesn't always show
>> up (never in a debug build). The class name is cached for a
>> vtbl-pointer, but that cached value can be overwritten if there are
>> uninitialized references evaluated afterwards. Fixed for the next
>> release.
> 
> Never in a debug build? I'm using debug build ;/ Before sometimes it
> woudln't show up but after the update no interface was expandable(well,
> at least when I noticed it I could not expand any)

I was talking about the debug build of the debugger extension.


Re: Visual D 0.50.0 released

2019-06-24 Thread Rainer Schuetze via Digitalmars-d-announce



On 24/06/2019 21:58, Bart wrote:
> On Sunday, 23 June 2019 at 17:58:27 UTC, Rainer Schuetze wrote:
>> Hi,
>>
>> today a new version of Visual D has been released. Its main new
>> features are
>>
>> [...]
> 
> 
> Did you break showing interfaces in the debug window? None of my
> interfaces are able to be expanded as the objects they are after
> updating. Was working fine right before.

I think the bug has been in there since beta1, but doesn't always show
up (never in a debug build). The class name is cached for a
vtbl-pointer, but that cached value can be overwritten if there are
uninitialized references evaluated afterwards. Fixed for the next release.


Re: Visual D 0.50.0 released

2019-06-23 Thread Rainer Schuetze via Digitalmars-d-announce



On 24/06/2019 00:25, Greatsam4sure wrote:
>>
>> Visual D works for VS 2008 up to VS 2019. The new project dialog in VS
>> 2019 makes it hard to discover the new projects because the categories
>> are hardcoded and cannot be extended. You have to scroll down the list
>> of "All" project templates. Once used the project types appear in the
>> recently used projects list.
> 
> 
> Thanks, I just installed the package with DMD and LDC but my old version
> of DMD was not replaced. Is there a reason for this? I now have two
> versions of DMD on my laptop now-dmd 2.086 and 2.086.1

It doesn't (yet) delete old versions of the compilers because I didn't
want to break existing setups. In case something fails to compile for
your code with the new compiler release, you can easily go back to the
previous one.

The compiler update also doesn't change your environment as the DMD
installer (optionally) does, so you have to set PATH yourself.


Re: Visual D 0.50.0 released

2019-06-23 Thread Rainer Schuetze via Digitalmars-d-announce



On 23/06/2019 21:06, Greatsam4sure wrote:
> On Sunday, 23 June 2019 at 17:58:27 UTC, Rainer Schuetze wrote:
>> Hi,
>>
>> today a new version of Visual D has been released. Its main new
>> features are
>>
>> - additional installer available that includes DMD and LDC
>>
>> - now checks for updates for Visual D, DMD and LDC, assisted download
>> and install
>>
>> - debugger improvements: better support for dynamic type of classes,
>> show exception messages, conditional breakpoints
>>
>> - highlight references to symbol at caret (experimental)
>>
>> See https://rainers.github.io/visuald/visuald/VersionHistory.html for
>> the complete list of changes
>>
>> Visual D is a Visual Studio extension that adds D language support to
>> VS2008-2019. It is written in D, its source code can be found on
>> github: https://github.com/D-Programming-Language/visuald, pull
>> requests welcome.
>>
>> The installers can be found at
>> http://rainers.github.io/visuald/visuald/StartPage.html
>>
>> Visual D is now also available in the Visual Studio Marketplace:
>> https://marketplace.visualstudio.com/items?itemName=RainerSchuetze.visuald
>>
>>
>> Happy coding,
>> Rainer
> 
> 
> Thanks to all, who make this possible.
> 
> Which version of dmd and ldc is bundle with visual-D 0.50 and which
> version of visual studio 2019 does it support.

dmd 2.086.1 and ldc 1.16.0 are bundled. These are mentioned in the
filename of the download, but that isn't obvious on the front page. I
guess this should be shown there, too.

> The latest version studio
> 2019 I have does not support previous version of visual D. I could not
> create a Dlang project with it
> 

Visual D works for VS 2008 up to VS 2019. The new project dialog in VS
2019 makes it hard to discover the new projects because the categories
are hardcoded and cannot be extended. You have to scroll down the list
of "All" project templates. Once used the project types appear in the
recently used projects list.


Visual D 0.50.0 released

2019-06-23 Thread Rainer Schuetze via Digitalmars-d-announce
Hi,

today a new version of Visual D has been released. Its main new features are

- additional installer available that includes DMD and LDC

- now checks for updates for Visual D, DMD and LDC, assisted download
and install

- debugger improvements: better support for dynamic type of classes,
show exception messages, conditional breakpoints

- highlight references to symbol at caret (experimental)

See https://rainers.github.io/visuald/visuald/VersionHistory.html for
the complete list of changes

Visual D is a Visual Studio extension that adds D language support to
VS2008-2019. It is written in D, its source code can be found on github:
https://github.com/D-Programming-Language/visuald, pull requests welcome.

The installers can be found at
http://rainers.github.io/visuald/visuald/StartPage.html

Visual D is now also available in the Visual Studio Marketplace:
https://marketplace.visualstudio.com/items?itemName=RainerSchuetze.visuald

Happy coding,
Rainer


Re: Visual D 0.49.0 released

2019-04-28 Thread Rainer Schuetze via Digitalmars-d-announce



On 22/04/2019 00:57, Alex wrote:
> On Sunday, 7 April 2019 at 19:41:43 UTC, Rainer Schuetze wrote:
>> Hello,
>>
>> the new release of Visual D has just been uploaded. Some major
>> improvements of 0.49.0:
>>
>> * support for Visual Studio 2019
>> * parallel compilation supported by VC projects
>> * catch up with recent language changes
>> * new "Language" configuration page for -transition=/-preview=/-revert=
>> options
>>
>> See http://rainers.github.io/visuald/visuald/VersionHistory.html for
>> the full list of changes.
>>
>> Visual D is a Visual Studio extension that adds D language support to
>> VS2008-2019. It is written in D, its source code can be found on
>> github: https://github.com/D-Programming-Language/visuald, pull
>> requests welcome.
>>
>> The installer can be found at
>> http://rainers.github.io/visuald/visuald/StartPage.html
>>
>> Rainer
> 
> Thanks, do you know of any reason to upgrade to VS 2019? Does VD make
> any use of it?

Unfortunately, "historical debugging" doesn't (yet) work with Visual
D/mago. Other than that new workflow features should work just fine if
they are not specific to some other language.

The new project dialog makes it a bit difficult to discover D projects
as the "Language" selector is not extensible.


Re: Visual D 0.49.0 released

2019-04-28 Thread Rainer Schuetze via Digitalmars-d-announce



On 21/04/2019 10:40, Rainer Schuetze wrote:
> 
> 
> On 07/04/2019 21:41, Rainer Schuetze wrote:
>> Hello,
>>
>> the new release of Visual D has just been uploaded. Some major
>> improvements of 0.49.0:
>>
>> * support for Visual Studio 2019
>> * parallel compilation supported by VC projects
>> * catch up with recent language changes
>> * new "Language" configuration page for -transition=/-preview=/-revert=
>> options
>>
>> See http://rainers.github.io/visuald/visuald/VersionHistory.html for the
>> full list of changes.
>>
>> Visual D is a Visual Studio extension that adds D language support to
>> VS2008-2019. It is written in D, its source code can be found on github:
>> https://github.com/D-Programming-Language/visuald, pull requests welcome.
>>
>> The installer can be found at
>> http://rainers.github.io/visuald/visuald/StartPage.html
>>
>> Rainer
>>
> 
> In case you are having some troubles with the semantic analysis (with
> LDC or with VC2017 projects), there is a new version available now:
> 
> https://github.com/dlang/visuald/releases/tag/v0.49.1
> 

And if you are still using VS 2015/2013, 0.49.1 is likely to be causing
trouble, so this one's for you:

https://github.com/dlang/visuald/releases/tag/v0.49.2


Re: Visual D 0.49.0 released

2019-04-21 Thread Rainer Schuetze via Digitalmars-d-announce



On 07/04/2019 21:41, Rainer Schuetze wrote:
> Hello,
> 
> the new release of Visual D has just been uploaded. Some major
> improvements of 0.49.0:
> 
> * support for Visual Studio 2019
> * parallel compilation supported by VC projects
> * catch up with recent language changes
> * new "Language" configuration page for -transition=/-preview=/-revert=
> options
> 
> See http://rainers.github.io/visuald/visuald/VersionHistory.html for the
> full list of changes.
> 
> Visual D is a Visual Studio extension that adds D language support to
> VS2008-2019. It is written in D, its source code can be found on github:
> https://github.com/D-Programming-Language/visuald, pull requests welcome.
> 
> The installer can be found at
> http://rainers.github.io/visuald/visuald/StartPage.html
> 
> Rainer
> 

In case you are having some troubles with the semantic analysis (with
LDC or with VC2017 projects), there is a new version available now:

https://github.com/dlang/visuald/releases/tag/v0.49.1


Re: Visual D 0.49.0 released

2019-04-21 Thread Rainer Schuetze via Digitalmars-d-announce



On 09/04/2019 22:34, Crayo List wrote:
> On Sunday, 7 April 2019 at 19:41:43 UTC, Rainer Schuetze wrote:
>> Hello,
>>
>> the new release of Visual D has just been uploaded. Some major
>> improvements of 0.49.0:
>>
>> * support for Visual Studio 2019
>> * parallel compilation supported by VC projects
>> * catch up with recent language changes
>> * new "Language" configuration page for -transition=/-preview=/-revert=
>> options
>>
>> See http://rainers.github.io/visuald/visuald/VersionHistory.html for
>> the full list of changes.
>>
>> Visual D is a Visual Studio extension that adds D language support to
>> VS2008-2019. It is written in D, its source code can be found on
>> github: https://github.com/D-Programming-Language/visuald, pull
>> requests welcome.
>>
>> The installer can be found at
>> http://rainers.github.io/visuald/visuald/StartPage.html
>>
>> Rainer
> 
> Is there a way to donate to this project?

Thanks for considering a donation, but there is nothing setup to do so.

> Or maybe buy you a beer or a six-pack?

Maybe at DConf, though I'm not yet sure I can make it.


Visual D 0.49.0 released

2019-04-07 Thread Rainer Schuetze via Digitalmars-d-announce
Hello,

the new release of Visual D has just been uploaded. Some major
improvements of 0.49.0:

* support for Visual Studio 2019
* parallel compilation supported by VC projects
* catch up with recent language changes
* new "Language" configuration page for -transition=/-preview=/-revert=
options

See http://rainers.github.io/visuald/visuald/VersionHistory.html for the
full list of changes.

Visual D is a Visual Studio extension that adds D language support to
VS2008-2019. It is written in D, its source code can be found on github:
https://github.com/D-Programming-Language/visuald, pull requests welcome.

The installer can be found at
http://rainers.github.io/visuald/visuald/StartPage.html

Rainer


Re: Beta 2.085.0

2019-02-16 Thread Rainer Schuetze via Digitalmars-d-announce



On 16/02/2019 22:03, Per Nordlöw wrote:
> On Saturday, 16 February 2019 at 15:06:51 UTC, Martin Nowak wrote:
>> Glad to announce the first beta for the 2.085.0 release, ♥ to the 49
>> contributors.
>>
>> http://dlang.org/download.html#dmd_beta
>> http://dlang.org/changelog/2.085.0.html
> 
> I can't find any mentioning of Rainer Schützes work on memory reductions
> of the GC for non-power-of-two sizes. Was it reverted?

It is listed as "Bugzilla 19455: GC wastes too much memory".

What's not found in the changelog is an optimization sweeping large
allocations that is inspired by your report
https://forum.dlang.org/thread/zrouxhbkssrncyinh...@forum.dlang.org:
https://github.com/dlang/druntime/pull/2430


Re: Beta 2.085.0

2019-02-16 Thread Rainer Schuetze via Digitalmars-d-announce



On 16/02/2019 19:53, JN wrote:
> On Saturday, 16 February 2019 at 15:06:51 UTC, Martin Nowak wrote:
>> Glad to announce the first beta for the 2.085.0 release, ♥ to the 49
>> contributors.
>>
>> http://dlang.org/download.html#dmd_beta
>> http://dlang.org/changelog/2.085.0.html
>>
>> As usual please report any bugs at
>> https://issues.dlang.org
>>
>> -Martin
> 
> What is the precise scanning GC? I only see how to enable it, but don't
> really see why would I want to enable it.

It's purpose is to avoid not collecting memory due to false pointers.
Here are some related bug reports:

https://issues.dlang.org/show_bug.cgi?id=3463
https://issues.dlang.org/show_bug.cgi?id=4358
https://issues.dlang.org/show_bug.cgi?id=9094
https://issues.dlang.org/show_bug.cgi?id=13801
https://issues.dlang.org/show_bug.cgi?id=18900

Precise heap and data segment scanning isn't the complete solution,
though, The stack and registers might still contain false pointers.


Re: Beta 2.084.1

2019-02-06 Thread Rainer Schuetze via Digitalmars-d-announce



On 05/02/2019 11:53, Andre Pany wrote:
> On Tuesday, 5 February 2019 at 04:18:55 UTC, Martin Nowak wrote:
>> Glad to announce the first beta for the 2.084.1 point release, ♥ to
>> the 6 contributors.
>>
>> http://dlang.org/download.html#dmd_beta
>> http://dlang.org/changelog/2.084.1.html
>>
>> As usual please report any bugs at
>> https://issues.dlang.org
>>
>> -Martin
> 
> This beta again has this issue:
> lld-link.exe: error: could not open msvcrt100.lib: no such file or
> directory
> lld-link.exe: error: could not open OLDNAMES.lib: no such file or directory
> 
> (It is caused if you have a visual studio / build tools installation, then
> lld gets confused).
> 
> It was already solved in the nightly build, I downloaded some days ago.
> 
> Kind regards
> André

I think this happens because the Windows SDK is detected, but VC is not.
As the replacement import libraries for both are in the
dmd\windows\lib64\mingw folder, adding it to the library search path
would be causing some bad mixture of libraries.

VC is probably no longer detected because recent versions of the VS
installations do not write an expected registry key, but assume the COM
API to be used for detection (as added by
https://github.com/dlang/dmd/pull/9243).

So pedantically, this is not a regression in dmd, but a changed
environment. You should still be able to link when running the
vcvarsall.bat to setup the VS/VC environment variables.


Re: Visual D 0.48.0 released

2018-12-22 Thread Rainer Schuetze via Digitalmars-d-announce
Hi,

I have uploaded a bugfix release 0.48.1, among other things fixed:

- goto definition on alias: jump to base definition if caret on alias
- cv2pdb: fix missing line numbers for new versions of mspdb*.dll
- mago: variables captured from stack of outer function not displayed in
locals

Head over to http://rainers.github.io/visuald/visuald/StartPage.html
or directly to https://github.com/dlang/visuald/releases/tag/v0.48.1

Happy holidays,
Rainer

On 02/12/2018 17:02, Rainer Schuetze wrote:
> Hi,
> 
> I have made a new release of Visual D available. Some highlights of
> version 0.48.0:
> 
> * installer and binaries now digitally signed by the "D Language Foundation"
> * experimental: option to enable semantic identifier highlighting
> * mago debugger: show return value, closure and capture variables as
> locals (with dmd 2.084/nightly)
> 
> See http://rainers.github.io/visuald/visuald/VersionHistory.html for the
> full list of changes.
> 
> Visual D is a Visual Studio extension that adds D language support to
> VS2008-2017. It is written in D, its source code can be found on github:
> https://github.com/D-Programming-Language/visuald, pull requests welcome.
> 
> The installer can be found at
> http://rainers.github.io/visuald/visuald/StartPage.html
> 
> Happy coding,
> Rainer
> 


Re: Visual D 0.48.0 released

2018-12-04 Thread Rainer Schuetze via Digitalmars-d-announce



On 03/12/2018 22:10, Neia Neutuladh wrote:
> On Mon, 03 Dec 2018 15:08:33 +, greatsam4sure wrote:
>> It will be nice if you can port this code base to vs code. It is the
>> same visual studio code base.
> 
> Pardon? VS Code is an Electron application written mainly in TypeScript, 
> while Visual Studio is a Windows application written in C++ and C#. 
> They're quite different codebases with quite different plugin 
> architectures.
> 

I also doubt there is much that can be easily transferred from Visual D
to VS Code. Browsing the documentation I found this, though: "VS Code
uses a tools service architecture that enables it to integrate with many
of the same technologies that power Visual Studio, including Roslyn for
.NET, TypeScript, the Visual Studio debugging engine, and more."

Being mostly interested in the claim about the debugger I took a short
look at the C++ extension: it actually uses a debug engine that looks
very similar to the one used in VS. This might allow adding the mago
Concord extension for D style expression evaluation to VS Code, too. I
haven't found a way to configure it to match the source language to the
extension, though.


Visual D 0.48.0 released

2018-12-02 Thread Rainer Schuetze via Digitalmars-d-announce
Hi,

I have made a new release of Visual D available. Some highlights of
version 0.48.0:

* installer and binaries now digitally signed by the "D Language Foundation"
* experimental: option to enable semantic identifier highlighting
* mago debugger: show return value, closure and capture variables as
locals (with dmd 2.084/nightly)

See http://rainers.github.io/visuald/visuald/VersionHistory.html for the
full list of changes.

Visual D is a Visual Studio extension that adds D language support to
VS2008-2017. It is written in D, its source code can be found on github:
https://github.com/D-Programming-Language/visuald, pull requests welcome.

The installer can be found at
http://rainers.github.io/visuald/visuald/StartPage.html

Happy coding,
Rainer


Re: Profiling DMD's Compilation Time with dmdprof

2018-11-08 Thread Rainer Schuetze via Digitalmars-d-announce



On 09/11/2018 00:12, kinke wrote:
> On Thursday, 8 November 2018 at 20:19:47 UTC, Vladimir Panteleev wrote:
>> Sounds like we're narrowing it down to the Visual Studio solution.
> 
> Mildly interested, I gave DMD master a shot with my 5-years old i5-3550
> (@4 GHz) in VS 2017 (+ a recent Visual D beta):
> 
> DMD v2.083.0-beta1 host compiler
> ---
> Win32-Debug:  12 secs
> Win32-Release: 1m 58 secs
> 
> LDC v1.13.0-beta1 host compiler
> ---
> Win32-Debug:  22 secs
> Win32-Release: 1m 28 secs
> 

Similar numbers for me too. Please note that the auto-tester shows
similar values for release builds on all platforms, so I suspect very
low numbers reported here are debug build timings.

> DMD's `-inline` is known to be *slow*.

Pedantically, it's not the inliner by itself, but the optimizer that
cannot cope with large functions. With some improved inlining
capabilities that got worse over time.

Visual Studio only provides parallel compilation of projects out of the
box, you have to add it yourself for your favorite language for
parallelization within a project. Igor has done that for the msbuild
integration of dmd and LDC (https://github.com/dlang/visuald/pull/94),
but the PR has kind of stalled due to some undesirable side effects.

Unfortunately, single file compilation is pretty slow, so there is not
so much gain from switching from building per package to single file
parallel compilation unless you have many cores.


Re: Visual D 0.47.0 released

2018-06-24 Thread Rainer Schuetze via Digitalmars-d-announce




On 24/06/2018 19:56, Brian wrote:

On Sunday, 24 June 2018 at 13:08:53 UTC, Rainer Schuetze wrote:

Hi,

a new release of Visual D has just been uploaded. Major changes are

* improved Visual C++ project integration: better dependencies,
  automatic libraries, name demangling
* new project wizard
* mago debugger: show vtable, dynamic type of interfaces,
  symbol names of pointer address

See http://rainers.github.io/visuald/visuald/VersionHistory.html for 
the full version history.


Visual D is a Visual Studio extension that adds D language support to 
VS2008-2017. It is written in D, its source code can be found on 
github: https://github.com/D-Programming-Language/visuald, pull 
requests welcome.


An installer can be found at 
http://rainers.github.io/visuald/visuald/StartPage.html


Happy coding,
Rainer


Thanks!

Can use dub.json to manager project?


You can use "dub generate visuald" to generate a project and solution 
for Visual D.


Visual D 0.47.0 released

2018-06-24 Thread Rainer Schuetze via Digitalmars-d-announce

Hi,

a new release of Visual D has just been uploaded. Major changes are

* improved Visual C++ project integration: better dependencies,
  automatic libraries, name demangling
* new project wizard
* mago debugger: show vtable, dynamic type of interfaces,
  symbol names of pointer address

See http://rainers.github.io/visuald/visuald/VersionHistory.html for the 
full version history.


Visual D is a Visual Studio extension that adds D language support to 
VS2008-2017. It is written in D, its source code can be found on github: 
https://github.com/D-Programming-Language/visuald, pull requests welcome.


An installer can be found at 
http://rainers.github.io/visuald/visuald/StartPage.html


Happy coding,
Rainer


Re: Ecoji-d v1.0.0 is released - Base1024 using emojis 

2018-03-16 Thread Rainer Schuetze via Digitalmars-d-announce



On 15/03/2018 19:45, Anton Fediushin wrote:

$ dd if=test.raw | ./ecoji-d | gzip -c | wc -c
67108864 bytes (67 MB, 64 MiB) copied, 27.9972 s, 2.4 MB/s
32178275 # 48% improvement


If you can compress random data to 52% of the original data, you should 
repeat this step until there is a single byte left.


Re: Beta 2.079.0

2018-02-20 Thread Rainer Schuetze via Digitalmars-d-announce



On 20/02/2018 01:58, Basile B. wrote:

On Monday, 19 February 2018 at 21:50:02 UTC, Rainer Schuetze wrote:



On 19/02/2018 21:17, Andre Pany wrote:

On Monday, 19 February 2018 at 10:49:03 UTC, Martin Nowak wrote:
Glad to announce the first beta for the 2.079.0 release, ♥ to the 77 
contributors for this release.


[...]


This release is fantastic!

In the change log information about lld linker is missing. Maybe you 
can add

some info how to use it instead of link.exe (the OMF one).

Kind regards
André


LLD does not replace the OMF linker, but the MS linker for COFF.

The Windows installer also comes with platform libraries built


Just one step left to get an unified debug experience then: dward2 debug 
info for windows COFF objects.


Is that right ?


I don't think that is planned in the near future.

AFAICT DWARF debug support in dmd is not better than COFF (GDC might 
have an edge here), but using gdb instead of the VS debugger (or any 
other debugger suporting standard debug info) on Windows is pretty uncommon.


Re: Beta 2.079.0

2018-02-19 Thread Rainer Schuetze via Digitalmars-d-announce



On 19/02/2018 21:17, Andre Pany wrote:

On Monday, 19 February 2018 at 10:49:03 UTC, Martin Nowak wrote:
Glad to announce the first beta for the 2.079.0 release, ♥ to the 77 
contributors for this release.


[...]


This release is fantastic!

In the change log information about lld linker is missing. Maybe you can 
add

some info how to use it instead of link.exe (the OMF one).

Kind regards
André


LLD does not replace the OMF linker, but the MS linker for COFF.

The Windows installer also comes with platform libraries built from the 
mingw definitions and a wrapper library for the VC distributable C 
runtime libraries. This allows using dmd with -m64 and -m32mscoff 
without having to install Visual Studio, the VC build tools or the 
Windows SDK.


I'll add a PR for the changelog...


Re: Release D 2.078.1

2018-02-01 Thread Rainer Schuetze via Digitalmars-d-announce



On 23/01/2018 14:08, thedeemon wrote:

On Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:

Glad to announce D 2.078.1.



The Windows 7z archive version now has much simpler sc.ini, in fact too 
simple.

With Visual C++ 2015 x64 Native Build Tools now trying to run
dmd -m64 hi.d
I get
LINK : fatal error LNK1104: cannot open file 'libucrt.lib'
Error: linker exited with status 1104

So I needed to edit sc.ini and add back
LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64"
to the [Environment64] section.

Then it went just as 2.078.0 - still missing 
legacy_stdio_definitions.lib that I need to add manually in the command 
line.


Should be fixed by https://github.com/dlang/dmd/pull/7828

Let's hope it makes it into 2.078.2 this time (I didn't expect another 
point-release).


Re: Release D 2.078.1

2018-02-01 Thread Rainer Schuetze via Digitalmars-d-announce



On 01/02/2018 17:16, Atila Neves wrote:






Should I file a bug for dmd or the installer?


It's a dmd issue.


https://issues.dlang.org/show_bug.cgi?id=18352


Thanks. https://github.com/dlang/dmd/pull/7827


Re: Release D 2.078.1

2018-01-31 Thread Rainer Schuetze via Digitalmars-d-announce



On 31/01/2018 16:58, Atila Neves wrote:

On Thursday, 25 January 2018 at 20:11:54 UTC, Rainer Schuetze wrote:



On 25.01.2018 14:54, Atila Neves wrote:

On Tuesday, 23 January 2018 at 15:16:02 UTC, Andre Pany wrote:

On Tuesday, 23 January 2018 at 13:08:35 UTC, thedeemon wrote:

On Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:

Glad to announce D 2.078.1.



The Windows 7z archive version now has much simpler sc.ini, in fact 
too simple.

With Visual C++ 2015 x64 Native Build Tools now trying to run
dmd -m64 hi.d
I get
LINK : fatal error LNK1104: cannot open file 'libucrt.lib'
Error: linker exited with status 1104

So I needed to edit sc.ini and add back
LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64"
to the [Environment64] section.

Then it went just as 2.078.0 - still missing 
legacy_stdio_definitions.lib that I need to add manually in the 
command line.


Did you call vcvarsall in the current dos box/PowerShell? It is a 
tool included with all visual studio variants.


Kind regards
Andre


I just ran into this today. With the dmd 2.077.1 Windows installer 
things just work, and it's never necessary to call vcvarsall.bat to 
build D code for 64-bit.


Since dmd 2.078.0, with Visual Studio 2015, nothing works anymore, 
and sc.ini doesn't seem to reference Visual Studio at all like it 
used to.


Atila


Visual Studio is supposed to be detected by dmd now, either from the 
environment or from the registry.


What errors do you get? Try running with -v to show the linker command 
line.


$ dub init
$ dub build --arch=x86_64
Performing "debug" build using C:\D\dmd2\windows\bin\dmd.exe for x86_64.
example ~master: building configuration "application"...
Linking...
LINK : fatal error LNK1104: cannot open file 'shell32.lib'

-v shows that it's linking like so:

C:\D\dmd2\windows\bin\dmd.exe 
-of.dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D03E746CD\example.exe 
.dub\build\application-debug-windows-x86_64-dmd_2078-70A25404824ECE07D24A9F4D03E746CD\example.obj 
-m64 -g


Unfortunately, that is not dmds output of the linker command line, but 
dubs invocation of dmd. Just try "dmd -v -m64 test.d".


Does Arjan's suggestion help, i.e. are you working as a restricted user? 
Did you install VS for the current user only (not sure if that's 
actually possible)?




Should I file a bug for dmd or the installer? 


It's a dmd issue.

Are 64-bit dub builds not 
done by CI on Windows? This is pretty embarassing.


Every PR is tested against both VS2013 (auto-tester) and VS2015 (Appveyor).


Re: Release D 2.078.1

2018-01-25 Thread Rainer Schuetze via Digitalmars-d-announce



On 25.01.2018 14:54, Atila Neves wrote:

On Tuesday, 23 January 2018 at 15:16:02 UTC, Andre Pany wrote:

On Tuesday, 23 January 2018 at 13:08:35 UTC, thedeemon wrote:

On Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:

Glad to announce D 2.078.1.



The Windows 7z archive version now has much simpler sc.ini, in fact 
too simple.

With Visual C++ 2015 x64 Native Build Tools now trying to run
dmd -m64 hi.d
I get
LINK : fatal error LNK1104: cannot open file 'libucrt.lib'
Error: linker exited with status 1104

So I needed to edit sc.ini and add back
LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64"
to the [Environment64] section.

Then it went just as 2.078.0 - still missing 
legacy_stdio_definitions.lib that I need to add manually in the 
command line.


Did you call vcvarsall in the current dos box/PowerShell? It is a tool 
included with all visual studio variants.


Kind regards
Andre


I just ran into this today. With the dmd 2.077.1 Windows installer 
things just work, and it's never necessary to call vcvarsall.bat to 
build D code for 64-bit.


Since dmd 2.078.0, with Visual Studio 2015, nothing works anymore, and 
sc.ini doesn't seem to reference Visual Studio at all like it used to.


Atila


Visual Studio is supposed to be detected by dmd now, either from the 
environment or from the registry.


What errors do you get? Try running with -v to show the linker command line.


Re: Release D 2.078.1

2018-01-23 Thread Rainer Schuetze via Digitalmars-d-announce



On 23.01.2018 14:08, thedeemon wrote:

On Monday, 22 January 2018 at 20:43:56 UTC, Martin Nowak wrote:

Glad to announce D 2.078.1.



The Windows 7z archive version now has much simpler sc.ini, in fact too 
simple.

With Visual C++ 2015 x64 Native Build Tools now trying to run
dmd -m64 hi.d
I get
LINK : fatal error LNK1104: cannot open file 'libucrt.lib'
Error: linker exited with status 1104

So I needed to edit sc.ini and add back
LIB=%LIB%;"%UniversalCRTSdkDir%\Lib\%UCRTVersion%\ucrt\x64"
to the [Environment64] section.

Then it went just as 2.078.0 - still missing 
legacy_stdio_definitions.lib that I need to add manually in the command 
line.


The UCRT library path and legacy_stdio_definitions.lib should have been 
detected automatically.


I suspect that the Build Tools don't set the environment variable 
VisualStudioVersion (why should they?) which is used to detect whether 
the UCRT library path and legacy_stdio_definitions.lib are needed.


This PR https://github.com/dlang/dmd/pull/7500 would have fixed that by 
changing the detection to the existence of legacy_stdio_definitions.lib 
in the VC library path. Unfortunately it didn't make it into the 
release. (The PR contains other stuff, too, that was not meant to go 
into a .1 release.)


(Having VS installed would help, too, as it is also detected without the 
environment set.)


Re: Release D 2.078.0

2018-01-12 Thread Rainer Schuetze via Digitalmars-d-announce



On 12.01.2018 12:42, Andre Pany wrote:

On Monday, 8 January 2018 at 22:41:31 UTC, Rainer Schuetze wrote:


Unfortunately the corresponding installer PRs didn't make it into the 
release, so you still have to remove most options of section 
Environment64 from sc.ini yourself. This should be enough


[Environment64]
LIB=%@P%\..\lib64
DFLAGS=%DFLAGS% -L/OPT:NOICF

When using the 7z dmd file, the most harmful setting is LINKCMD, that 
doesn't work for VS2017.


Any chance to get the corresponding PR with 2.078.1 point release?
I also tried it with the Build Tools for Visual Studio 2017 and it 
neither works.


I think the link path could be easily retrieved.
You could check whether the first element of %PATH% contains a file 
link.exe

and use this one if the file path also starts with %VCINSTALLDIR%.

Example:
Path=C:\Program Files (x86)\Microsoft Visual 
Studio\2017\BuildTools\VC\Tools\MSVC\14.12.25827\bin\HostX64\x64;...


VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual 
Studio\2017\BuildTools\VC\


Kind regards
André



IMO removing the detected entries from sc.ini should be good enough: 
https://github.com/dlang/dmd/pull/7686. The linker path is built from 
the other VC variables. I've based it on stable in the hope it will make 
it into 2.078.1.


The more involved changes I mentioned are 
https://github.com/dlang/installer/pull/281 and 
https://github.com/dlang/dmd/pull/7500.


Re: Release D 2.078.0

2018-01-08 Thread Rainer Schuetze via Digitalmars-d-announce



On 08.01.2018 08:56, Andre Pany wrote:

On Wednesday, 3 January 2018 at 17:43:36 UTC, Martin Nowak wrote:

Glad to announce D 2.078.0.

This release comes with runtime detection of Visual Studio 
installation paths, an integral promotion transition for unary 
operations on byte and short sized integers, more -betterC features, 
and a couple of language and library tweaks.


Thanks to everyone involved in this  
https://dlang.org/contributors.html.


http://downloads.dlang.org/releases/2.x/2.078.0/ 
http://dlang.org/changelog/2.078.0.html


- -Martin


It seems vs-auto-detection does not work with the Visual Studio 2017 
Community version:


I executed "vcvars64.bat". After that environment variable PATH contains 
following

entries:
C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64;
C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\Common7\IDE\VC\VCPackages;
C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;

C:\Program Files (x86)\Microsoft Visual
...

dmd app.d -m64
Error: can't run 'C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\\bin\link.exe', check PATH


I checked the location and link.exe is available in the very first 
element of PATH environment variable:
C:\Program Files (x86)\Microsoft Visual 
Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\Hostx64\x64


Could you check?

Kind regards
André




Unfortunately the corresponding installer PRs didn't make it into the 
release, so you still have to remove most options of section 
Environment64 from sc.ini yourself. This should be enough


[Environment64]
LIB=%@P%\..\lib64
DFLAGS=%DFLAGS% -L/OPT:NOICF

When using the 7z dmd file, the most harmful setting is LINKCMD, that 
doesn't work for VS2017.


Re: Release D 2.078.0

2018-01-04 Thread Rainer Schuetze via Digitalmars-d-announce



On 04.01.2018 07:25, thedeemon wrote:

On Wednesday, 3 January 2018 at 17:43:36 UTC, Martin Nowak wrote:

Glad to announce D 2.078.0.

This release comes with runtime detection of Visual Studio 
installation paths


I've got a problem with linking phobos64.lib now.
I run "Visual C++ 2015 x64 Native Build Tools Command Prompt", i.e. 
cmd.exe with environment set up.
With dmd 2.077.0 I run "dmd app.d -m64 -ofapp.exe" and it all goes well, 
compiles and links successfully.


With dmd 2.078.0 I run "dmd app.d -m64 -ofapp.exe" and get:

phobos64.lib(stacktrace_196a_3e5.obj) : error LNK2019: unresolved 
external symbol snprintf referenced in function 
_D4core3sys7windows10stacktrace10StackTrace13resolveNoSyncFAxmZAAa
phobos64.lib(parseoptions_bee_21b.obj) : error LNK2001: unresolved 
external symbol snprintf
phobos64.lib(demangle_ab0_79b.obj) : error LNK2001: unresolved external 
symbol snprintf
phobos64.lib(parseoptions_bee_21b.obj) : error LNK2019: unresolved 
external symbol sscanf referenced in function 
_D4core8internal12parseoptions5parseFNbNiAxaKANgaKfQkZb

app.exe : fatal error LNK1120: 2 unresolved externals
Error: linker exited with status 1120


What's missing is probably legacy_stdio_definition.lib that has to be 
added to the linker command line for VS2015 or later. You can verify 
this by checking how dmd invokes the linker by adding -v to the dmd 
command line.


I suspect this happens due to the new VS detection in dmd that hasn't 
been followed up by an appropriate installer update (unfortunately it 
didn't make it into this release). Please try replacing the 
Environment64 section in sc.ini with just this:


[Environment64]
LIB=%@P%\..\lib64
DFLAGS=%DFLAGS% -L/OPT:NOICF


Re: D's Newfangled Name Mangling

2017-12-21 Thread Rainer Schuetze via Digitalmars-d-announce



On 20.12.2017 19:42, Johan Engelen wrote:

On Wednesday, 20 December 2017 at 13:57:20 UTC, Mike Parker wrote:
Many thanks to Rainer for his insightful new article for the D Blog 
outlining the new name mangling algorithm.


Nice!


Thanks.



"D and C++ avoid this problem by adding more information to the symbol 
name, i.e. they encode into a symbol name the scope in which the symbol 
is defined, the function argument types, and the return type. "


I would change it to "... and the return type (D only)". C++ does not 
include the return type in the mangle for normal functions (it does for 
templates). An important difference, concerning the earlier remark about 
programs crashing when "fail to update and recompile all source files 
that use the new declarartion"


AFAICT that's for the Itanium C++ ABI only, the VC mangling always 
encodes the return type, too.


I also noticed that gcc doesn't encode the inferred type of an "auto" 
return type for templates (available with C++17; or was it in C++14 
already?).


Visual D 0.46.0 released - more VS2017 and LDC integration

2017-12-02 Thread Rainer Schuetze via Digitalmars-d-announce

Hi,

I have just released version 0.46 of Visual D, see 
http://rainers.github.io/visuald/visuald/StartPage.html


This release doesn't come with major new features, but a list of bug 
fixes and incremental improvements, those with the largest impact:


* improved VS 2017 integration
* improved LDC support
* support for new symbol mangling and parsing 'static foreach'

See http://rainers.github.io/visuald/visuald/VersionHistory.html for the 
full version history.


Visual D is a Visual Studio extension that adds D language support to 
VS2008-2017. It is written in D, its source code can be found on github: 
https://github.com/D-Programming-Language/visuald, pull requests welcome.


Happy coding,
Rainer


Re: DMD, Windows and C

2017-10-26 Thread Rainer Schuetze via Digitalmars-d-announce



On 25.10.2017 18:57, kinke wrote:

On Wednesday, 25 October 2017 at 16:05:48 UTC, Mike Parker wrote:
In preparation for an upcoming blog series, and partly as a reaction 
to the "Windows is a second-class citizen" criticisms that have been 
cropping up lately, I've put together a primer on getting set up to 
use C and D together on Windows. It includes some background on why we 
need to install the MS toolchain to produce 64-bit binaries.


The blog:
https://dlang.org/blog/2017/10/25/dmd-windows-and-c/

Reddit:
https://www.reddit.com/r/programming/comments/78olka/dmd_windows_and_c_getting_set_up_to_use_d_and_c/ 



LLVM's LLD is another option for linking on Windows (and cross-linking 
to Windows from other platforms); they used not to support debuginfos 
(.pdb), not sure what the current state is. `lld-link.exe` and 
`llvm-lib.exe` work as drop-in replacements,
I tried lld-link just yesterday on a small DMD generated test file. 
Apart from not supporting the /MAP option it worked without debug 
information, but choked on debug symbols.


Re: DMD, Windows and C

2017-10-26 Thread Rainer Schuetze via Digitalmars-d-announce



On 25.10.2017 18:05, Mike Parker wrote:
In preparation for an upcoming blog series, and partly as a reaction to 
the "Windows is a second-class citizen" criticisms that have been 
cropping up lately, I've put together a primer on getting set up to use 
C and D together on Windows. It includes some background on why we need 
to install the MS toolchain to produce 64-bit binaries.


The blog:
https://dlang.org/blog/2017/10/25/dmd-windows-and-c/

Reddit:
https://www.reddit.com/r/programming/comments/78olka/dmd_windows_and_c_getting_set_up_to_use_d_and_c/ 



Thanks for the nice article. Two minor remarks:

- the D installer already creates batch files dmd2vars32.bat and 
dmd2vars64.bat that modify the PATH environment variable (but don't 
include the DMC path)


- DMD doesn't need lib.exe to build static libraries, that's built into DMD.




Re: Release D 2.076.0

2017-09-07 Thread Rainer Schuetze via Digitalmars-d-announce



On 04.09.2017 11:00, Timon Gehr wrote:

On 02.09.2017 08:51, Ilya Yaroshenko wrote:

On Friday, 1 September 2017 at 14:03:26 UTC, Martin Nowak wrote:

Glad to announce D 2.076.0.

This release comes with static foreach, many -betterC enhancements, 
various phobos additions, an -mcpu=avx2 switch, and lots of bugfixes.


Thanks to everyone involved in this .

http://dlang.org/download.html http://dlang.org/changelog/2.076.0.html

- -Martin


First "static foreach" bug report
https://issues.dlang.org/show_bug.cgi?id=17800



Thanks, but actually it is the second one. ;)
https://issues.dlang.org/show_bug.cgi?id=17688

I'll get to work.


I've added two more:

https://issues.dlang.org/show_bug.cgi?id=17812
https://issues.dlang.org/show_bug.cgi?id=17814


Re: Article: Writing Julia style multiple dispatch code in D

2017-08-31 Thread Rainer Schuetze via Digitalmars-d-announce



On 31.08.2017 01:34, Jean-Louis Leroy wrote:

On Wednesday, 30 August 2017 at 22:30:12 UTC, data pulverizer wrote:

On Wednesday, 30 August 2017 at 22:10:38 UTC, Jean-Louis Leroy wrote:

On Wednesday, 30 August 2017 at 21:30:29 UTC, data pulverizer wrote:
In the light of this I think your package just became more 
interesting to me.


I think that your work and mine are complementary :-)


Here is one strange difference between inheriting from an interface 
and a class:


```
interface Animal{}
class Dog: Animal{}
class Cat: Animal{}


void main()
{
Animal[] x;
x ~= new Cat();
x ~= new Dog();
x ~= new Cat();
writeln(typeid(x[0])); // Gives Animal
}
```

But if Animal is set to a class the typeid gives Cat, why does this 
happen? Does this mean that inheriting from an interface is not really 
polymorphism?


I noticed that too. Still scratching my head.


typeid(Interface) has been subject to a number of bugzilla reports, e.g. 
https://issues.dlang.org/show_bug.cgi?id=13833 and 
https://issues.dlang.org/show_bug.cgi?id=14612.


Re: Visual D 0.45 released - better VS2017 integration

2017-08-17 Thread Rainer Schuetze via Digitalmars-d-announce


On 03.08.2017 09:04, Rainer Schuetze wrote:

Hi,

there is a new version 0.45 of Visual D available at 
http://rainers.github.io/visuald/visuald/StartPage.html


Most changes are bug fixes and incremental improvements, maybe standing 
out:


* improved VS 2017 integration
* task list support
* dparser update to recent language additions

See http://rainers.github.io/visuald/visuald/VersionHistory.html for the 
full version history.


Visual D is a Visual Studio extension that adds D language support to 
VS2008-2017. It is written in D, its source code can be found on github: 
https://github.com/D-Programming-Language/visuald, pull requests welcome.


Rainer


I have uploaded a new version 0.45.1 that should fix some anti-virus 
programs to reject the installation or execution of Visual D (by 
building against the MS runtime instead of the DM runtime).


A few other changes crept in aswell, like improved tooltips and a number 
of bug fixes. See full list of changes here: 
http://rainers.github.io/visuald/visuald/VersionHistory.html


Visual D 0.45 released - better VS2017 integration

2017-08-03 Thread Rainer Schuetze via Digitalmars-d-announce

Hi,

there is a new version 0.45 of Visual D available at 
http://rainers.github.io/visuald/visuald/StartPage.html


Most changes are bug fixes and incremental improvements, maybe standing out:

* improved VS 2017 integration
* task list support
* dparser update to recent language additions

See http://rainers.github.io/visuald/visuald/VersionHistory.html for the 
full version history.


Visual D is a Visual Studio extension that adds D language support to 
VS2008-2017. It is written in D, its source code can be found on github: 
https://github.com/D-Programming-Language/visuald, pull requests welcome.


Rainer


Re: Visual D 0.44 released - VC project integration and Concord debugger extension

2017-04-07 Thread Rainer Schuetze via Digitalmars-d-announce



On 12.03.2017 13:09, Rainer Schuetze wrote:

preliminary support for VS 2017 (no VC project integration yet)


VC project integration is now also available in VS 2017. Check out

https://github.com/dlang/visuald/releases/download/v0.44.2/VisualD-v0.44.2.exe

which also includes some bug fixes.


Re: Visual D 0.44 released - VC project integration and Concord debugger extension

2017-03-13 Thread Rainer Schuetze via Digitalmars-d-announce



On 13.03.2017 18:56, Inquie wrote:

On Monday, 13 March 2017 at 08:12:41 UTC, Rainer Schuetze wrote:



On 12.03.2017 13:09, Rainer Schuetze wrote:

I'm glad to finally announce the release of a new version of Visual D,
the Visual Studio extension for the D programming language.


Unfortunately, a bug turned up, causing the default dmd executable
search path to contain a bad character.

Here's a new version:
https://github.com/dlang/visuald/releases/tag/v0.44.1


Small complaint here. Can the installer remember the previous install
dir? I get tired of typing it in every time. It remembers the dmd dir
just find(the next page).

I know it's not that big a deal ;) But would make the installer
virtually silent rather than requiring input.



As long as you don't uninstall Visual D, the path should be remembered. 
I usually just install over the previous version without uninstalling 
(no guarantee that this will work in the future, though).


Re: Visual D 0.44 released - VC project integration and Concord debugger extension

2017-03-13 Thread Rainer Schuetze via Digitalmars-d-announce



On 12.03.2017 13:09, Rainer Schuetze wrote:

I'm glad to finally announce the release of a new version of Visual D,
the Visual Studio extension for the D programming language.


Unfortunately, a bug turned up, causing the default dmd executable 
search path to contain a bad character.


Here's a new version: https://github.com/dlang/visuald/releases/tag/v0.44.1


Re: Visual D 0.44 released - VC project integration and Concord debugger extension

2017-03-12 Thread Rainer Schuetze via Digitalmars-d-announce



On 12.03.2017 21:36, Inquie wrote:


Cool, what about vice versa? C/C++ files in a D project and have it link
in automatically? Or can it already do this?


To some extend, yes. The command line options must be specified 
manually, though, and must be the same for all C/C++ files. See the 
project property page "Compiler".


If you need more customization, you can also use a custom build rule for 
each file.


Visual D 0.44 released - VC project integration and Concord debugger extension

2017-03-12 Thread Rainer Schuetze via Digitalmars-d-announce

Hi,

I'm glad to finally announce the release of a new version of Visual D, 
the Visual Studio extension for the D programming language.


Among a considerable number of changes and bug fixes [1], this version 
features two major enhancements for inter-operability with C/C++:


- Visual C project integration: just add your D files to a C/C++ project 
and they will be compiled and linked with the project [2]


- Integration of mago's D expression evaluator with the Visual Studio 
debugger [3]


Other notable features are improvements to the Intellisense completion 
list and preliminary support for VS 2017 (no VC project integration yet).


You can find more information and the download link to the installer here:

http://rainers.github.io/visuald/visuald/StartPage.html

Cheers,
Rainer


[1] http://rainers.github.io/visuald/visuald/VersionHistory.html
[2] http://rainers.github.io/visuald/visuald/vcxproject.html
[3] http://rainers.github.io/visuald/visuald/Debugging.html#concord


Re: Release Candidate 2.073.0-rc1

2017-01-20 Thread Rainer Schuetze via Digitalmars-d-announce



On 19.01.2017 21:56, Suliman wrote:

On Thursday, 19 January 2017 at 19:22:07 UTC, Rainer Schuetze wrote:



On 19.01.2017 08:32, Suliman wrote:

http://dlang.org/changelog/2.073.0.html#mscrtlib-option
How can I set this flag in dub.json? I tried:
"dflags": [ "-mscrt=msvcrt" ]
but got error:
Error: unrecognized switch '-mscrt=msvcrt'


Ouch, the switch is actually called -mscrtlib. We need to fix the
documentation...


Thanks! Now it's compile.

What version of cruntime (I tried: libcmtd, msvcrt msvcrtd) I should use
to prevent depending my project on `msvcr120.dll`. Now when I try run
vibed-based project on another PC it's give me error about absent
`msvcr120.dll`.


If you just want a single executable, the default (libcmt) is good 
enough. It adds the C runtime as a static library in the link step.


The DLL version of the C runtime is used with msvcrt and msvcrtd (the 
latter is the debug version). This is usually needed if the executable 
passes memory or other resources to other DLLs. Microsoft recommends to 
install the redistributable package in that case, e.g. 
https://www.microsoft.com/en-us/download/details.aspx?id=40784


Re: Release Candidate 2.073.0-rc1

2017-01-19 Thread Rainer Schuetze via Digitalmars-d-announce



On 19.01.2017 20:22, Rainer Schuetze wrote:



On 19.01.2017 08:32, Suliman wrote:

http://dlang.org/changelog/2.073.0.html#mscrtlib-option
How can I set this flag in dub.json? I tried:
"dflags": [ "-mscrt=msvcrt" ]
but got error:
Error: unrecognized switch '-mscrt=msvcrt'


Ouch, the switch is actually called -mscrtlib. We need to fix the
documentation...


https://github.com/dlang/dmd/pull/6471
https://github.com/dlang/dlang.org/pull/1557


Re: Release Candidate 2.073.0-rc1

2017-01-19 Thread Rainer Schuetze via Digitalmars-d-announce



On 19.01.2017 08:32, Suliman wrote:

http://dlang.org/changelog/2.073.0.html#mscrtlib-option
How can I set this flag in dub.json? I tried:
"dflags": [ "-mscrt=msvcrt" ]
but got error:
Error: unrecognized switch '-mscrt=msvcrt'


Ouch, the switch is actually called -mscrtlib. We need to fix the 
documentation...


Re: Release D 2.072.0

2016-11-11 Thread Rainer Schuetze via Digitalmars-d-announce



On 11.11.2016 14:42, Steven Schveighoffer wrote:

On 11/11/16 8:21 AM, Nick Sabalausky wrote:

On 11/11/2016 04:54 AM, Kagamin wrote:

On Thursday, 10 November 2016 at 13:58:56 UTC, Steven Schveighoffer
wrote:

Only possibility is just to ignore ALL cycles, and print them if any
are detected.


Run the new detector and if it fails, run the old one, if it succeeds,
print a message.


Or:

Run the new dmd. If it fails, either fix your code or go temporarily go
back to the old dmd until you can fix your code.



The option to ignore the cycles is there, added to allow for people to
use the new DMD even if cycles exist. However, it is a runtime switch,
which means you have to run it that way.

-Steve



You can also embed the option into the executable. See the bottom of 
https://dlang.org/spec/garbage.html#gc_config.


Is there another place where --DRT-options are listed?



Re: Recursive SymbolNames solved.

2016-06-09 Thread Rainer Schuetze via Digitalmars-d-announce



On 09.06.2016 11:02, Johan Engelen wrote:

On Thursday, 9 June 2016 at 04:58:45 UTC, Stefan Koch wrote:

On Wednesday, 8 June 2016 at 13:28:19 UTC, Stefan Koch wrote:

Hi, I solved the issue.
PR is coming shortly.


Solution is as follows:

Keep a list of already visited symbols in the mangler.
And information where we store the mangle.
meaning the position in the mangle string.
If a symbol is encountered for the second time store a backrefernce
rather then the symbol name again.


You mean this?
https://github.com/weka-io/ldc/commit/ffd6b55a4b83b3007d9690cbd9a25d07b243a00e



This doesn't handle the manglers created locally for templates and 
parameter tuples. Here's a more complete version: 
https://github.com/dlang/dmd/pull/5855




Re: mago-mi: GDB/MI compatible frontend for Mago debugger

2016-05-24 Thread Rainer Schuetze via Digitalmars-d-announce



On 24.05.2016 08:47, Vadim Lopatin wrote:

On Tuesday, 24 May 2016 at 06:34:04 UTC, Rainer Schuetze wrote:


If you want to stay in sync, please consider a PR with your changes to
mago.


Actually, I would prefer to use static versions of all Mago libraries.
I really like that statically linked mago-mi.exe is only 1.5Mb in
Release build.
If it become possible to link MagoNatDE/MagoNatEE statically, I would
merge my changes to upstream.



MagoNatEE has been a static lib so far, but it could be eliminated long 
term, as it just a very thin layer to convert std::wstring to BSTR for 
some function arguments.


MagoNatDE now has configurations "Debug/Release StaticDE" which are also 
solution configurations. Anything else falls back to Debug/Release, but 
can link the static library within these solution configurations. See 
the MagoNatCC project.


Re: mago-mi: GDB/MI compatible frontend for Mago debugger

2016-05-24 Thread Rainer Schuetze via Digitalmars-d-announce



On 17.05.2016 10:06, Vadim Lopatin wrote:

Hello,

I'm working on GDB/MI compatible interface for Mago debugger on Windows.

GDB/MI is line based machine interface for debugger. IDEs are using GDB
via this interface.

GDB/MI docs: https://sourceware.org/gdb/onlinedocs/gdb/GDB_002fMI.html

Project page (mago fork) https://github.com/buggins/mago

Currently mago-mi supports subset of GDB commands enough for current
DlangIDE functionality.

Tested on DMD generated 32bit executables.

See readme details list of implemented commands:
https://github.com/buggins/mago/tree/master/MagoMI/mago-mi

Difference from baseline https://github.com/rainers/mago files are minimal:
- Static linking for MagoNatDE and MagoNatEE
- Disabled some Mago debug logging

Building mago-mi from source is easy. I've tried MS Visual Studio 2013
and 2015. Don't forget to edit properties in mago/PropSheets. Buld
mago-mi project.

Since DlangIDE v0.6.1, it includes prebuilt mago-mi.exe (it will be
copied into bin directory by dub build) and default Debugger settings
are changed from gdb to mago-mi by default on Windows. If you already
used DlangIDE on your computer, check Edit/Preferences/Debugger setting
- change to "mago-mi" if "gdb" is specified.

If you want to try mago-mi and DlangIDE which is using it, you can
download binaries from
https://sourceforge.net/projects/crengine/files/DlangUI/dlangide-v061-magomi-v010-x86.zip/download
(or just sync to latest dlangide and use `dub run`). Bundle includes
DlangIDE, mago-mi, dub, and sample workspaces (helloworld and tetris).
Download size is 5.4Mb (seems small enough for IDE+debugger).

I hope my work will be useful for other IDE developers who is targeting
on Windows.
(Any IDE which uses gdb/mi interface)
I tried gdb and lldb-mi before, but did not managed to find working
compiler + debugger configuration. (Best combination was gdb + gdc, but
it was showing global variables instead of locals. For lldb-mi, I
haven't managed to find compiler which produces compatible debug info).

Best regards,
Vadim



Impressive work!

I'm currently working on improving integration in VS. For this, I also 
needed a static library version of MagoNatDE. I just pushed my changes, 
I hope it doesn't break anything for you.


If you want to stay in sync, please consider a PR with your changes to mago.



Re: LDC now supports Windows MSVC x86/x64 as first class targets

2016-03-20 Thread Rainer Schuetze via Digitalmars-d-announce



On 20.03.2016 11:54, Manu via Digitalmars-d-announce wrote:

Also, out of curiosity, has anyone looked at connecting the MS codegen
(C2.DLL) to LDC like MS do with Clang+C2 (Clang frontend w/ MS
codegen) that was released in VS2015 Update 1/2?
I suspect their C2.DLL connectivity code must be available(?), and
theoretically LDC could connect to it for codegen the same way Clang
does(?), and that would lead to 100% MS compatible binary and
debuginfo output.
ClangC2 produces binaries that are almost indistinguishable from MSVC
compiled binaries while debugging.


I just tried to find some information about C2.DLL, but it seems they 
haven't made anything public yet. Grepping Microsofts' github forks of 
llvm/clang didn't reveal anything, too.


Re: Beta D 2.070.0-b1

2016-01-16 Thread Rainer Schuetze via Digitalmars-d-announce



On 16.01.2016 05:09, Adam D. Ruppe wrote:

Has anyone built a Windows program with the beta? I tried and got
undefined identifier HWND, but have been unable to minimize the test
case and it might be just my install not being clean.


Works for me to build Visual D, though it uses it's own windows headers 
most of the time. There are a few tools that use HWND from 
core.sys.windows that seem ok.


I noticed the installer downloads Visual D 0.3.42, this should be 
updated to the latest version: 
https://github.com/D-Programming-Language/installer/pull/164


Visual D 0.3.43 released - better support for VS 2015

2015-11-28 Thread Rainer Schuetze via Digitalmars-d-announce

Hi,

there is a new release of Visual D available at

http://rainers.github.io/visuald/visuald/StartPage.html

This time there is no major new feature to announce, but quite a few 
improvements to


* VS 2015 support
* building with LDC
* configuration dialogs
* C++ to D conversion wizard

See http://rainers.github.io/visuald/visuald/VersionHistory.html for the 
complete list of changes and the version history.


Visual D is a Visual Studio extension that adds D language support to 
VS2005-2015. It is written in D, its source code can be found on github: 
https://github.com/D-Programming-Language/visuald.


Rainer


Re: Release D 2.069.0

2015-11-04 Thread Rainer Schuetze via Digitalmars-d-announce



On 04.11.2015 17:19, Vladimir Panteleev wrote:

On Wednesday, 4 November 2015 at 15:25:04 UTC, Márcio Martins wrote:

Are there any plans to release a dmd64.exe?


I don't think we can even build one any more. Rainer/Martin?



I have created a combination of a VC++ project and a Visual D project to 
build these. IIRC 
https://github.com/D-Programming-Language/dmd/pull/5039 is the only 
blocker, but I haven't tried recently.


Re: Release Candidate D 2.069.0-rc1

2015-10-29 Thread Rainer Schuetze via Digitalmars-d-announce



On 29.10.2015 15:33, tester wrote:


trying to compile for x64:

import std.stdio;
int main(string[] argv){
 writeln("Hello D-World!");
 return 0;
}

produces:
LINK : fatal error LNK1104: cannot open file 'libucrtd.lib'
Building Debug\ConsoleApp1.exe failed!

it does work/link for x86


This is not dmd's fault, but Visual D's, because it invokes link.exe 
explicitely, not through dmd. It only uses dmd if you disable "overwrite 
sc.ini" and "monitor link dependencies" in the global settings.


The next version of Visual D will support linking against VS2015 
libraries, I hope I can publish a beta in the next couple of days.


  1   2   >