Saturday, 12 July 2014

First-class website

I've decided that one of the primary reasons my website efforts have failed in the past is for two reasons.

One is that I always considered them as a separate project. They were an optional extra, not a core part. This is something I'm looking to change right now. I want to integrate my website build into my primary Wide solution so that everything Wide will be in one repo except the C# addon. It's notable to see the decay in that project too. But to begin with, I've officially added the website code to my LOC-count command, which now stands at nearly 21k.

Second is mostly that I simply didn't have an implementation functional enough to discuss or tutor anyone with. My current implementation is a lot more useful in that regard. It still has a long way to go in every aspect. I've discovered that writing the examples really helps me see what's missing- like when I wanted to demo the return type inference and got stuck up against boost::optional. It also produces more tests, which is greatly useful for me.

Trying to build examples on the Wide CLI has shown me that my error handling desperately needs attention right now. I'm trying to build a sample and "Fuck" is the whole error message. I had to grep the source for "throw std::runtime_error("Fuck")" (got way too many hits) but I'm pretty sure I figured out the problem. Boost.None is a member function pointer and as we all know, the current limitations of the implementation are that it cannot handle implicit conversions from types that are not a (reference to a) ClangType to a ClangType.

This means futzing around with one of the most problematic areas of the compiler- the IsA function. Ho boy.

No comments:

Post a Comment