Note: This website is archived. For up-to-date information about D projects and development, please visit

Changes between Version 6 and Version 7 of News

sagitario (IP:
05/30/13 12:56:08 (7 years ago)



  • News

    v6 v7  
     10<div id="navbar"> 
     11<table width="160" cellspacing="0" style="border: 1px solid #ccc; padding: 0.5em; margin: 0 0 0em 0em;" bgcolor="#F0F0F0"> 
     12<th bgcolor="#bbbbbb"><strong><center>Navigation</center></strong></th> 
     13<tr bgcolor="#F0F0F0"></tr> 
     14<tr><td><a href="/projects/visuald/wiki/News" title="Latest changes">News</a></td></tr> 
     15<tr><td><strong><a href="/projects/visuald/wiki/VersionHistory" title="Version History">Version History</a></strong></td></tr> 
     16<tr><td><a href="/projects/visuald/wiki/Features" title="Visual D Features">Features</a></td></tr> 
     18<tr><td>&nbsp;&nbsp;<a href="/projects/visuald/wiki/Tour/GlobalOptions" title="Global options">Global options</a></td></tr> 
     19<tr><td>&nbsp;&nbsp;<a href="/projects/visuald/wiki/Tour/ProjectWizard" title="Project Wizard to create new projects">Project Wizard</a></td></tr> 
     20<tr><td>&nbsp;&nbsp;<a href="/projects/visuald/wiki/Tour/Editor" title="Language support in the editor">Editor</a></td></tr> 
     21<tr><td>&nbsp;&nbsp;<a href="/projects/visuald/wiki/Tour/Search" title="Search symbols and files">Search window</a></td></tr> 
     22<tr><td>&nbsp;&nbsp;<a href="/projects/visuald/wiki/Tour/TokenReplace" title="Token Search and Replace">Token Replace</a></td></tr> 
     23<tr><td>&nbsp;&nbsp;<a href="/projects/visuald/wiki/Tour/ProjectConfig" title="Setting up build settings">Project config</a></td></tr> 
     24<tr><td>&nbsp;&nbsp;<a href="/projects/visuald/wiki/Tour/Debugger" title="Debugger support">Debugging</a></td></tr> 
     25<tr><td>&nbsp;&nbsp;<a href="/projects/visuald/wiki/Tour/CppConversion" title="C++ to D Conversion Wizard">C++ to D Wizard</a></td></tr> 
     26<tr><td>&nbsp;&nbsp;<a href="/projects/visuald/wiki/Tour/Profiling" title="Profiler window">Profiling</a></td></tr> 
     27<tr><td>&nbsp;&nbsp;<a href="/projects/visuald/wiki/Tour/BrowseInfo" title="Browse information">Browse info</a></td></tr> 
     28<tr><td><a href="/projects/visuald/browser/downloads" title="All Visual D downloads">Downloads</a></td></tr> 
     29<tr><td><a href="/projects/visuald/wiki/Installation" title="Installation">Installation</a></td></tr> 
     30<tr><td><a href="/projects/visuald/wiki/KnownIssues" title="Installation">Known issues</a></td></tr> 
     31<tr><td><a href="/forums/viewforum.php?f=265" title="Forum">Forum</a></td></tr> 
     32<tr><td><a href="/projects/visuald/report/1" title="Active Tickets">Active Tickets</a></td></tr> 
     33<tr><td><a href="/projects/visuald/wiki/Build_from_source" title="Building from source">Building from source</a></td></tr> 
    1040<div id="content" style="margin-left: 15em"> 
    12 == Version 0.3.36 == 
    14 The latest release 0.3.36 of Visual D included a considerable number of bug fixes and improvements  
    15 (you can find all of them listed in the [VersionHistory history]), but I'd like to detail on a few  
    16 bigger highlights. 
    18 = Unit testing and code coverage
     44= Version News
    20 With unittesting built into the D programming language testing your code gets even simpler in 
    21 combination with Visual D. With the new command '''"Compile and Run"''' from the Visual D menu you can compile 
    22 the current D source file through rdmd which will pick up imported modules automatically 
    23 and add them to the compilation. If the file is part of a project in the solution 
    24 the current compiler settings will be used, otherwise the defaults from the !ConsoleApp 
    25 project template are taken. You can add other options in Visual D's global 
    26 project settings.  
     46[wiki:News36 Version 0.3.36] 
     47 * Unit testing and code coverage,  
     48 * New code completion engine by Alexander Bothe 
     49 * LDC support 
    33 {{{ 
    34 #!html 
    35 <div align="center"> 
    36 }}} 
    37 [[Image(source:wiki/compile_and_run_opt.png)]] 
    38 {{{ 
    39 #!html 
    40 </div> 
    41 }}} 
    43 The standard is "-unittest --main" so after successfully building the 
    44 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  
    45 the result in the output pane. 
    47 [Actually, while writing this text a number of issues have been fixed and improvements 
    48 have been made, so please try the latest release candidate for next version of Visual D  
    49 from the download folder (0.3.37rc1 as of now). Especially, it will remove some of the  
    50 command line options used to call rdmd that make it crash pretty often.] 
    52 {{{ 
    53 #!html 
    54 <table><tr><td valign="top" width="45%"> 
    55 }}} 
    56 If you add "-cov" to the command line aswell the executable will be instrumented to record 
    57 the source code lines that have been executed and will mark the lines that have  
    58 code generated but are never executed. This information is written into files named as the  
    59 source files but with extension ".lst". If you enable option "Colorize Coverage" in 
    60 the Visual D colorizer settings (easily reachable through the new entry in the Visual D 
    61 menu), these lines will be highlighted in the editor. The highlighting will not show 
    62 up unless the lst-file is newer than the source file as it will probably be out of sync 
    63 otherwise. 
    65 If you fix the last test and add the line 
    66         assert(fib(19) == 4181); 
    67 to the unittest, and run the unittest again, all lines will become green. 
    69 If you start editing the source file Visual D will try to keep coverage information in sync. If you want to get rid of the coverage coloring, just resave the source file. Visual D will assume the coverage is invalid then and stop displaying it. 
    71 If you don't want syntax highlighting from coverage generated .LST files, you can disable it by disabling the respective option on the Tools->Options->Text Editor->D->Colorizer page. 
    72 {{{ 
    73 #!html 
    74 </td><td width="55%"> 
    75 }}} 
    76 [[Image(source:wiki/coverage.png, 100%)]] 
    77 {{{ 
    78 #!html 
    79 </td></tr></table> 
    80 }}} 
    82 If you select code within the editor and issue the command "Compile and Run", only 
    83 the selected code will be passed to rdmd through the --eval option. This allows to 
    84 execute just a code snippet like a script and see whether it compiles and how it behaves. 
    86 = New code completion engine by Alexander Bothe = 
    88 While Visual D has been running a semantic analysis for about a year now to 
    89 support code completion and type information in tool tips, I didn't have much time 
    90 to complete it to support all aspects of the D programming language. It is especially 
    91 lacking on topics like template instantiation, function overload resolution and  
    92 unified function call syntax (UFCS). Also, compile time function evaluation (CTFE) is 
    93 pretty incomplete.  
    94 Due to its pretty large memory foot print the 
    95 stop-the-world garbage collector has been interrupting the source code editing to 
    96 inacceptable degrees, so the analyzer had been 
    97 moved into a separate process communicating with Visual D as a local COM server. 
    99 This also opens the door to easily exchange the semantic analyzer with a different engine, 
    100 so this is where Alexander Bothe's parsing engine enters the scene, the engine that 
    101 also powers Mono-D and D-IDE.  
    103 {{{ 
    104 #!html 
    105 <div align="center"> 
    106 }}} 
    107 [[Image(source:wiki/intellisense_options.png)]] 
    108 {{{ 
    109 #!html 
    110 </div> 
    111 }}} 
    113 Alex has put much more effort into making the semantic 
    114 analysis complete, and it obviously does it more efficiently. I wrapped the library 
    115 as a local COM server implementing the same interfaces as Visual D's engine (having to do 
    116 this in C# was a bit of a downer) and just using a different factory now allows switching 
    117 between the two. Right now, Visual D's engine is the default, but you can select  
    118 Alex's engine by enabling the respective checkbox in the Intellisense  
    119 settings page (there is a new menu entry for faster access). It provides UFCS expansion and also displays DDoc help strings in tool tips. 
    121 There is currently work being done on the D front end implemented by DMD 
    122 to be converted from C++ to D, bringing it within reach of using it as a library for IDEs. 
    123 This might produce 
    124 another semantic engine in the future which easily keeps in lock step with the latest  
    125 compiler updates. 
    127 = LDC support = 
    129 LDC, the D compiler built on top of the LLVM compiler infrastructure is getting 
    130 close to being useful on Windows aswell (at least on Win64 the longest standing 
    131 blocker exception handling is starting to work). You can grab pre-compiled binaries  
    132 here: (after extracting to any directory just update 
    133 the paths specified in LDC2\etc\ldc2.conf). 
    134 In the Visual D project options, path settings for the three major compilers have been 
    135 separated to different pages allowing for different import and library paths aswell. 
    136 The specified install directories are mapped to macros like $(LDCINSTALLDIR), so they 
    137 can be reused in other places of your project configuration. 
    138 To use LDC by your project, select the compiler with the respective option on the 
    139 General page of your project's property page. 
    141 {{{ 
    142 #!html 
    143 <div align="center"> 
    144 }}} 
    145 [[Image(source:wiki/ldc_compiler.png)]] 
    146 {{{ 
    147 #!html 
    148 </div> 
    149 }}} 
    152 = Trivia = 
    154 If you ever wondered why Visual D versions are numbered 0.3.x, here is the explanation: 
    155 Each package to be loaded in Visual Studio 2008 needs to be equipped with a valid identification 
    156 called a package load key (PLK). This key is generated by Microsoft and includes 
    157 author and package name aswell as the major and minor version of the package. It 
    158 is used to authenticate the package to Visual Studio. 
    159 Unfortunately the PLK generation service is no longer available as it is no more necessary 
    160 to have a PLK for Visual Studio 2010 or 2012 extensions. Unless I choose to be inconsistent 
    161 with the registered version and the displayed version, Visual D is stuck at version 0.3.