Source for D.Net compiler now available

Tim Matthews tim.matthews7 at gmail.com
Tue May 19 18:19:01 PDT 2009


On Wed, 20 May 2009 12:32:14 +1200, Tim Matthews <tim.matthews7 at gmail.com>  
wrote:

> On Wed, 20 May 2009 08:16:52 +1200, dsimcha <dsimcha at yahoo.com> wrote:
>
>> == Quote from Walter Bright (newshound1 at digitalmars.com)'s article
>>> http://www.infoq.com/news/2009/05/D-Source
>>> On Reddit: (vote up!)
>>>
>> http://www.reddit.com/r/D_programming/comments/8lgsl/source_for_the_dnet_compiler_is_now_available/
>>> Many thanks to Cristi Vlasceanu for doing this. He'll also be talking
>>> about it at the upcoming Compiler Construction seminar at
>>> http://www.astoriaseminar.com
>>
>> I'd love to play around with this, but my skills in building alpha-ish  
>> software
>> are not up to par.  If anyone has any clue how to build a working  
>> compiler out of
>> these sources, please let me know.  Also, is it even in a state where  
>> this is
>> worth doing yet?
>
>
> Just open the compiler.sln (in vs) and press f7


Also make sure that the vs tools are in your path as they are used to  
convert the cil to .exe. I have a seperate folder for each D compiler and  
a script to call it:

d-net.cmd:

@echo off
call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
SET PATH=C:\D\dnet\bin;%PATH%
cd C:\D\dnet
echo "Ready for D.Net"
@echo on

I have a shortcut to cmd with the target set like this:

C:\WINDOWS\system32\cmd.exe /K C:\d\d-dnet.cmd

Here is a simple hello world:

module hw;

import System;

void main()
{
	string s = "hello world\n";
	Console.WriteLine(sys(s));
}


dnet -I../../src/phobos/ -I../../src/druntime/import/ hw.d


The sys function converts the D UTF8 string to a System.String. The sys  
function is part of the dnet runtime so you will need dnetlib.dll either  
in the project's folder or installed to the usuall place. I am manually  
specifying my imports becuase of a bug somewhere  
http://dnet.codeplex.com/WorkItem/View.aspx?WorkItemId=1304


More information about the Digitalmars-d-announce mailing list