Skip to content

Commit 9ee361a

Browse files
committed
added Windows SDK dir to default library search path for Win64
tweak documentation
1 parent f94c4a3 commit 9ee361a

File tree

10 files changed

+228
-67
lines changed

10 files changed

+228
-67
lines changed

CHANGES

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,7 @@ unreleased Version 0.3.37
565565
- updated to recent version (https://github.com/aBothe/D_Parser/commit/72f1bc54f2426954f463f03b215e044174fc1468)
566566
- enabled mixin analysis
567567
- pass deprecation flag to engine
568-
- DParser engine now used by default if installed
568+
- DParser engine now used by default if installed
569569
* vdserver
570570
- add __FUNCTION__, __PRETTY_FUNCTION__ and __MODULE__ as keywords and primary expression
571571
- add __parameters as specification in is-expression
@@ -575,12 +575,12 @@ unreleased Version 0.3.37
575575
- fixed invoking bad command when no files to compile, but additional arguments set
576576
- added global option to display the reason for building a target
577577
- fixed custom build rules executed twice sometimes
578-
- fixed sc.ini evaluation, added support for sections [Environment32] and [Environment32]
579-
- link dependencies can now also be monitored for the 32-bit MS linker
580-
- added VCINSTALLDIR to the list of available macros
581-
- added different options for executable and librarie search paths to be used for Win32/x64
582-
- x64: linker settings from sc.ini can be overwritten
583-
- x64: linker no longer invoked through dmd
578+
- fixed sc.ini evaluation, added support for sections [Environment32] and [Environment64]
579+
- link dependencies can now also be monitored for the 32-bit MS linker
580+
- added VCINSTALLDIR to the list of available macros
581+
- added different options for executable and librarie search paths to be used for Win32/x64
582+
- x64: linker settings from sc.ini can be overwritten
583+
- x64: linker no longer invoked through dmd
584584
* miscellaneous
585585
- added command "Open Folder in Windows Explorer" to project and folder context menu
586586
- goto definition now falls back to JSON information if semantic analysis yields no result

TODO

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,6 @@ Project:
3737
- pass import path from static lib project to dependent projects
3838
- single file compilation for file configuration
3939
- custom command: quotes in dependencies not supported
40-
- different lib paths for Win32/Win64
41-
- support [Environment64] in sc.ini
4240
- property pages don't follow resize
4341

4442
Language service:
@@ -65,7 +63,6 @@ Lexer/Parser:
6563
- do not parse file if it is D1?
6664
- deprecated syntax
6765
- syntax error with "@disable new()"
68-
+ integrate d_parser.dll
6966
- 0.ident
7067

7168
Semantics:

doc/CppConversion.dd

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ $(P Visual D can help you converting your C++ code base to D. Even though it is
44
capable of some quite extensive reorganization of the code, don't expect to get
55
compilable and runnable code out of the box. Helping the converter with additional
66
replacement rules and manual additional editing of the result might be necessary.
7+
)
78

89
$(P The conversion consists of a number of steps:)
910
$(UL
@@ -52,7 +53,7 @@ $(UL
5253
conditionals are used.)
5354
$(LI Pre and post token replacements: some constructs are not parsable or
5455
don't convert well. With the token replacements you can inject some replacement
55-
rules into the conversion process. The replacement follows the $(LINK2 TokenReplace.html
56+
rules into the conversion process. The replacement follows the $(LINK2 TokenReplace.html,
5657
Token Search and Replace) functionality. The syntax of the rule is
5758
$(PRE [filename-pattern::] search-pattern => replacement )
5859
If you want to span the rule across multiple lines, use the \ line splicing mechanism.

doc/VersionHistory.dd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Ddoc
22

3-
2013-05-10 Version 0.3.36
3+
2013-05-10 $(DDLINK News36,Version 0.3.36)
44
$(UL
55
$(LI added debug settings to new DMD/GDC project template )
66
$(LI regressions caused by switching to installation as VS2010/VS2012 extension:

doc/build_doc.bat

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
set DMD=m:\s\d\rainers\windows\bin\dmd.exe
2-
set WEB=m:\s\d\rainers\web\visuald
2+
rem set WEB=m:\s\d\rainers\web\visuald
3+
set WEB=m:\s\d\visuald\gh-pages\visuald
34

45
set SRC=ReportingBugs.dd
56
set SRC=%SRC% StartPage.dd
@@ -19,6 +20,7 @@ set SRC=%SRC% ProjectWizard.dd
1920
set SRC=%SRC% GlobalOptions.dd
2021
set SRC=%SRC% Features.dd
2122
set SRC=%SRC% VersionHistory.dd
23+
set SRC=%SRC% News36.dd
2224

2325
set DDOC=macros.ddoc html.ddoc visuald.ddoc
2426

doc/news36.dd

Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
Ddoc
2+
3+
$(P The latest release 0.3.36 of Visual D included a considerable number of bug fixes and improvements
4+
(you can find all of them listed in the $(DDLINK VersionHistory,history)), but I'd like to detail on a few
5+
bigger highlights.
6+
)
7+
8+
$(H2 Unit testing and code coverage)
9+
10+
$(P With unittesting built into the D programming language testing your code gets even simpler in
11+
combination with Visual D. With the new command "Compile and Run" from the Visual D menu you can compile
12+
the current D source file through rdmd which will pick up imported modules automatically
13+
and add them to the compilation. If the file is part of a project in the solution
14+
the current compiler settings will be used, otherwise the defaults from the !ConsoleApp
15+
project template are taken. You can add other options in Visual D's global
16+
project settings.
17+
)
18+
19+
$(IMG_CENTER images/compile_and_run_opt.png)
20+
21+
$(P The standard is "-unittest --main" so after successfully building the
22+
source file to an executable ("--main" adds an empty main function to the source to automatically create a valid executable), your unit tests will run and you will see
23+
the result in the output pane.
24+
)
25+
26+
$(P [Actually, while writing this text a number of issues have been fixed and improvements
27+
have been made, so please try the latest release candidate for next version of Visual D
28+
from the download folder (0.3.37rc1 as of now). Especially, it will remove some of the
29+
command line options used to call rdmd that make it crash pretty often.]
30+
)
31+
32+
<table><tr><td valign="top" width="45%">
33+
$(P If you add "-cov" to the command line aswell the executable will be instrumented to record
34+
the source code lines that have been executed and will mark the lines that have
35+
code generated but are never executed. This information is written into files named as the
36+
source files but with extension ".lst". If you enable option "Colorize Coverage" in
37+
the Visual D colorizer settings (easily reachable through the new entry in the Visual D
38+
menu), these lines will be highlighted in the editor. The highlighting will not show
39+
up unless the lst-file is newer than the source file as it will probably be out of sync
40+
otherwise.
41+
)
42+
43+
$(P If you fix the last test and add the line
44+
$(D assert(fib(19) == 4181);)
45+
to the unittest, and run the unittest again, all lines will become green.
46+
)
47+
48+
$(P If you start editing the source file Visual D will try to keep coverage information in sync.
49+
If you want to get rid of the coverage coloring, just resave the source file.
50+
Visual D will assume the coverage is invalid then and stop displaying it.
51+
)
52+
53+
$(P If you don't want syntax highlighting from coverage generated .LST files, you can disable
54+
it by disabling the respective option on the Tools->Options->Text Editor->D->Colorizer page.
55+
)
56+
</td><td width="55%">
57+
$(IMG_CENTER images/coverage.png)
58+
</td></tr></table>
59+
60+
$(P If you select code within the editor and issue the command "Compile and Run", only
61+
the selected code will be passed to rdmd through the --eval option. This allows to
62+
execute just a code snippet like a script and see whether it compiles and how it behaves.
63+
)
64+
65+
$(H1 New code completion engine by Alexander Bothe)
66+
67+
$(P While Visual D has been running a semantic analysis for about a year now to
68+
support code completion and type information in tool tips, I didn't have much time
69+
to complete it to support all aspects of the D programming language. It is especially
70+
lacking on topics like template instantiation, function overload resolution and
71+
unified function call syntax (UFCS). Also, compile time function evaluation (CTFE) is
72+
pretty incomplete.
73+
Due to its pretty large memory foot print the
74+
stop-the-world garbage collector has been interrupting the source code editing to
75+
inacceptable degrees, so the analyzer had been
76+
moved into a separate process communicating with Visual D as a local COM server.
77+
)
78+
79+
$(P This also opens the door to easily exchange the semantic analyzer with a different engine,
80+
so this is where Alexander Bothe's parsing engine enters the scene, the engine that
81+
also powers Mono-D and D-IDE.
82+
)
83+
84+
$(IMG_CENTER images/intellisense_options.png)
85+
86+
$(P Alex has put much more effort into making the semantic
87+
analysis complete, and it obviously does it more efficiently. I wrapped the library
88+
as a local COM server implementing the same interfaces as Visual D's engine (having to do
89+
this in C# was a bit of a downer) and just using a different factory now allows switching
90+
between the two. Right now, Visual D's engine is the default, but you can select
91+
Alex's engine by enabling the respective checkbox in the Intellisense
92+
settings page (there is a new menu entry for faster access). It provides UFCS
93+
expansion and also displays DDoc help strings in tool tips.
94+
)
95+
96+
$(P There is currently work being done on the D front end implemented by DMD
97+
to be converted from C++ to D, bringing it within reach of using it as a library for IDEs.
98+
This might produce
99+
another semantic engine in the future which easily keeps in lock step with the latest
100+
compiler updates.
101+
)
102+
103+
$(H2 LDC support)
104+
105+
$(P LDC, the D compiler built on top of the LLVM compiler infrastructure is getting
106+
close to being useful on Windows aswell (at least on Win64 the longest standing
107+
blocker exception handling is starting to work). You can grab pre-compiled binaries
108+
here: http://www.redstar.de/ldc/LDC.zip (after extracting to any directory just update
109+
the paths specified in LDC2\etc\ldc2.conf).
110+
In the Visual D project options, path settings for the three major compilers have been
111+
separated to different pages allowing for different import and library paths aswell.
112+
The specified install directories are mapped to macros like $(LDCINSTALLDIR), so they
113+
can be reused in other places of your project configuration.
114+
To use LDC by your project, select the compiler with the respective option on the
115+
General page of your project's property page.
116+
)
117+
118+
$(IMG_CENTER images/ldc_compiler.png)
119+
120+
$(P Please be aware that both LDC for Windows aswell as the Visual D support for
121+
it are pretty experimental, so expect some glitches. Known issue: there is no debug
122+
information in the built executable that can be used by the VS debugger.
123+
)
124+
125+
$(H2 Trivia)
126+
127+
$(P If you ever wondered why Visual D versions are numbered 0.3.x, here is the explanation:
128+
Each package to be loaded in Visual Studio 2008 needs to be equipped with a valid identification
129+
called a package load key (PLK). This key is generated by Microsoft and includes
130+
author and package name aswell as the major and minor version of the package. It
131+
is used to authenticate the package to Visual Studio.
132+
Unfortunately the PLK generation service is no longer available as it is no more necessary
133+
to have a PLK for Visual Studio 2010 or 2012 extensions. Unless I choose to be inconsistent
134+
with the registered version and the displayed version, Visual D is stuck at version 0.3.
135+
)
136+
137+
Macros:
138+
TITLE=Version 0.3.36
139+
140+

doc/visuald.ddoc

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,13 +50,13 @@ DDOC = <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
5050
<head>
5151
<meta http-equiv="content-type" content="text/html; charset=utf-8" >
5252
<title>$(TITLE) - D Programming Language - Digital Mars</title>
53-
<link rel="stylesheet" type="text/css" href="../css/codemirror.css" />
54-
<link rel="stylesheet" type="text/css" href="../css/style.css">
53+
<link rel="stylesheet" type="text/css" href="$(DLANG_ORG)/css/codemirror.css" />
54+
<link rel="stylesheet" type="text/css" href="$(DLANG_ORG)/css/style.css">
5555

5656
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
57-
<script src="/js/codemirror.js"></script>
58-
<script src="/js/d.js"></script>
59-
<script src="/js/run.js" type="text/javascript"></script>
57+
<script src="$(DLANG_ORG)/js/codemirror.js"></script>
58+
<script src="$(DLANG_ORG)/js/d.js"></script>
59+
<script src="$(DLANG_ORG)/js/run.js" type="text/javascript"></script>
6060

6161
</head>
6262

@@ -78,8 +78,8 @@ DDOC = <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
7878
</form>
7979
</div>
8080
<div id="header">
81-
<a href="/"><img id="logo" width="125" height="95" border="0" alt="D Logo" src="../images/dlogo.png"></a>
82-
<a id="d-language" href="/">D Programming Language - Visual D</a>
81+
<a href="$(DLANG_ORG)"><img id="logo" width="125" height="95" border="0" alt="D Logo" src="$(DLANG_ORG)/images/dlogo.png"></a>
82+
<a id="d-language" href="$(DLANG_ORG)">D Programming Language - Visual D</a>
8383
</div>
8484
</div>
8585

@@ -145,7 +145,7 @@ TOP=
145145
<div id="searchbox">
146146
<input name="q" size="10" value="Visual D" onFocus='if(this.value == "Visual D"){this.value="";}'>
147147
<input type="hidden" name="domains" value="www.digitalmars.com">
148-
<input type="hidden" name="sitesearch" value="dlang.org/visuald">
148+
<input type="hidden" name="sitesearch" value="rainers.github.io/visuald/">
149149
<input type="hidden" name="sourceid" value="google-search">
150150
<input type="submit" name="submit" value="Go">
151151
</div>
@@ -163,11 +163,9 @@ NAVIGATION_VISUALD=
163163
<div class="navblock">
164164
$(H2 <a href="StartPage.html" title="Visual Studio Plugin for D">Visual D</a>)
165165
$(UL
166-
$(LI <a href="VersionHistory.html" title="Latest changes">Version History</a>)
167-
$(LI <a href="Features.html" title="Visual D Features">Features</a>)
166+
$(LI <a href="https://github.com/D-Programming-Language/visuald/releases" title="Releases and Downloads">Downloads</a>)
168167
$(LI <a href="Installation.html" title="Installation">Installation</a>)
169-
$(LI
170-
$(H2 Tour)
168+
$(LI <a href="Features.html" title="Visual D Features">Features</a>
171169
$(UL
172170
$(LI <a href="GlobalOptions.html" title="Global Options">Global options</a>)
173171
$(LI <a href="ProjectWizard.html" title="Project Wizard to create new projects">Project Wizard</a>)
@@ -181,6 +179,7 @@ NAVIGATION_VISUALD=
181179
$(LI <a href="BrowseInfo.html" title="Browse information">Browse Info</a>)
182180
)
183181
)
182+
$(LI <a href="VersionHistory.html" title="Latest changes">Version History</a>)
184183
$(LI <a href="KnownIssues.html" title="Installation">Known Issues</a>)
185184
$(LI <a href="BuildFromSource.html" title="Building from source">Building from Source</a>)
186185
)
@@ -220,6 +219,7 @@ LESS = &lt;
220219
GREATER = &gt;
221220
HTTP = $(LINK2 http://$1,$2)
222221
HTTPS = $(LINK2 https://$1,$2)
222+
DDLINK = $(LINK2 $1.html,$2)
223223
WEB = $(HTTP $1,$2)
224224
LUCKY = $(HTTP
225225
google.com/search?btnI=I%27m+Feeling+Lucky&amp;ie=UTF-8&amp;oe=UTF-8&amp;q=$0,$0)
@@ -247,9 +247,8 @@ TD = <td valign=top>$0</td>
247247
TDNW = <td valign=top class="donthyphenate">$0</td>
248248
SUB = <sub>$0</sub>
249249

250-
DLANG_ORG=..
251-
_=http://www.dlang.org
252-
COPYRIGHT= Copyright &copy; 1999-$(YEAR) by Digital Mars, All Rights Reserved
250+
DLANG_ORG=http://www.dlang.org
251+
COPYRIGHT= Copyright &copy; 2010-$(YEAR) by Rainer Schuetze, All Rights Reserved
253252

254253
H2=<h2>$0</h2>
255254
H3=<h3>$0</h3>

visuald/config.d

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -910,15 +910,22 @@ class ProjectOptions
910910
{
911911
if(compilationModel == ProjectOptions.kSeparateCompileOnly)
912912
return false;
913+
913914
bool separateLink = compilationModel == ProjectOptions.kSeparateCompileAndLink;
914915
if (compiler == Compiler.GDC && lib == OutputType.StaticLib)
915916
separateLink = true;
916-
if (compiler == Compiler.DMD && lib != OutputType.StaticLib && Package.GetGlobalOptions().optlinkDeps)
917-
separateLink = true;
917+
918+
if (compiler == Compiler.DMD && lib != OutputType.StaticLib)
919+
{
920+
if(Package.GetGlobalOptions().optlinkDeps)
921+
separateLink = true;
922+
else if(isX86_64 && Package.GetGlobalOptions().DMD.overrideIni64)
923+
separateLink = true;
924+
}
918925
return separateLink;
919926
}
920927

921-
bool usesOptlink()
928+
bool callLinkerDirectly()
922929
{
923930
bool dmdlink = compiler == Compiler.DMD && doSeparateLink() && lib != OutputType.StaticLib;
924931
return dmdlink; // && !isX86_64;
@@ -2151,7 +2158,7 @@ class Config : DisposingComObject,
21512158

21522159
bool hasLinkDependencies()
21532160
{
2154-
return mProjectOptions.usesOptlink() && Package.GetGlobalOptions().optlinkDeps;
2161+
return mProjectOptions.callLinkerDirectly() && Package.GetGlobalOptions().optlinkDeps;
21552162
}
21562163

21572164
string GetCommandLinePath()
@@ -2709,7 +2716,7 @@ class Config : DisposingComObject,
27092716
if(separateLink && doLink)
27102717
{
27112718
string prelnk, lnkcmd;
2712-
if(mProjectOptions.usesOptlink())
2719+
if(mProjectOptions.callLinkerDirectly())
27132720
{
27142721
string libpaths, options;
27152722
string otherCompiler = mProjectOptions.replaceEnvironment(mProjectOptions.otherCompilerPath(), this);

0 commit comments

Comments
 (0)