I've once again reinstalled Arch. I was away for a few days on Windows because it was a bitch to get installed so I just wiped everything and did it again. So, I dilly-dallied there until I could get time to put Arch back on. Once I did, I got back into getting the D stuff installed.
This time around everything went extremely smoothly. It probably only took about an hour total for everything I had to do to get it to work properly. The issues this time were with d2_config, and with curl. d2_config changed it's dependencies to want dmd-complete, which seemed catch-22 to me. Install a specific compiler so you can compile a script which abstracts away to abstract away the D compiler so I can use anyone I want. I said fuck that, and just changed it to use gdc2-hg, problem solved :D
The next part was more a strange mercurial thing, I'd say. Basically, there is a D binding for curl which I ended up later actually wanting to use. For some reason in my install, I didn't have it. Looking at the hg repository, it was there. I took a break at that point and just started hacking away at sockets in D, and managed to get something to download files, which was neat. Eventually a friend came back and advised me to do ... some command dealing with hg tip, which I did. The file magically appeared! Yay! Of course the tip wouldn't compile. I did some diff'ing and found out that the only change related to curl I needed in the non-tip version was to add the file, and change the same line in a Makefile.in and Makefile.am. I added the md5sum to the PKGBUILD, added a cp and some sed, and rebuilt the package. It compiled, wooh! After installing it, I found out that really really was the only changes needed. So, now I have the curl bindings too :D
I kind of got hooked on sockets there, and want to do more with them. I've already done some CGI with D, and have been wanting to do more (see, ... look at the titles of my posts, one is about CGI something or the other ;)) I recently learned of mod_rewrite, and was going to use that to have a D program handle all requests. Now, it seems like it wouldn't be that hard or boring to make a small webserver in D, thus preventing me from having to learn about apache more XD
I also screwed around with D/curl a bit, and made a simple parallel downloader which spawns a thread for each file (not optimal, I know). Doesn't even use thread pools or anything complicated, just a few for loops.
Both the curl downloader and the socket based downloader can be found in my detc repository (name will probably change).