www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.dwt - DWT2 D2+Phobos help needed

If you want to contribute, please note:
http://www.dsource.org/projects/dwt/wiki/Contribution

Get it with Mercurial (hg) Version Control software:
First get:
	hg clone http://hg.dsource.org/projects/dwt2
To get later changes from the server
	hg pull -u

To build you need "Rake", that is the Ruby make tool and is part of a
standard Ruby installation. Also DMD needs to be in the path environment
variable.

To build with D1+Tango, the dmd.conf/sc.ini must be setup correctly
(version=Tango,Posix, include paths, libs)
You can build all with a simple call to 'rake'. The available target can
be shown with 'rake -T'.

The repository contains the following trees:
Java stuff and helper:
	see "base"
SWT:
	org.eclipse.swt.win32.win32.x86
	org.eclipse.swt.gtk.linux.x86
Additional stuff:
	org.eclipse.*

What I already did and still doing is, i try to make the code compilable
for Phobos. I do this by deactivating the tango code by 'version' and
put in 'implMissing()' calls for the missing Phobos implementation. If
needed i also add dummy code (like the 'return 0;' to make it compile.

public int lastIndexOf(String str, char ch, int formIndex){
    version(Tango){
        int res = tango.text.Util.locatePrior( str, ch, formIndex );
        if( res is str.length ) res = -1;
        return res;
    } else { // Phobos
        implMissing( __FILE__, __LINE__ );
        return 0;
    }
}

Now the code compiles, but it does not work. If a call to implMissing is
entered, the application will be terminated.

That is where I need help. Please help me to replace the "implMissing"
with the correct implementation. Highest priority has the 'base' tree
and within this tree, the places where a tango implementation exists,
but none for Phobos. Places where also is no Tango implementation can be
ignored.

Code changes can be committed locally (hg ci) and packed into bundle
files (hg bundle). Then the bundle file can be sent to me by email
(keinfarbton googlemail.com). After reviewing i will add the change to
the global repository and do merges if necessary.

Please reply in this thread or start a new one, if you want to start
working with a file(s), so nobody else is starting the same work. On the
other hand, please do also tell, if you will pause/stop working on this,
so someone else can take over.

For questions and general conversation, please also try to find me in
IRC (freenode, #dwt, keinfarbton).
Mar 21 2009