Locic 1.2 Very soon

The next release of the Loci Compiler Tools will soon be available! Full release notes will be part of the provided locic-1.2 archives (and up on http://loci-lang.org) but (to briefly mention it) the main feature of this release is predicates, which is essentially a much clearer and easier to use form of C++’s proposed concepts…



Moving projects to Loci

It’s always been my intention to develop the Loci programming language as a tool that I would regularly deploy myself and this year that’s going to start happening! The language and compiler have reached an early stage of maturity, with a substantial mix of implemented language features and a small (but quickly growing) set of…



The Internet discovers Loci

So it seems that in the last couple of days postings have appeared about Loci on Y Combinator and Reddit (first and second). It’s really awesome to see that developers are interested in Loci and various questions have been asked about the language, which will help me to improve the documentation to better explain how…



Locic Website is now documentation

So after much consideration I’ve just gone ahead and replaced the Loci website with the compiler’s own generated HTML documentation. This is after the realisation that since Sphinx and reStructured Text are such amazingly convenient tools I’ve ended up writing a huge amount about the language and the compiler. The original website used WordPress and…



Locic moves to GitHub + Travis

The Loci compiler is currently in the process of being moved to a GitHub repository and built by Travis CI (Continuous Integration). If you visit the second link you can see the latest build status of Locic. This is particularly useful because it verifies the compiler builds against all the supported LLVM versions (3.3, 3.4 and 3.5),…



Locic 1.1 released!

So the second version of the Loci Compiler Tools is now available (see Loci Compiler), with the main new features being: Switching from C++-like template expansion to use Template Generators (to allow templated APIs across module boundaries) Module imports and exports scope(success), scope(failure) and scope(exit) noexcept Type-templated functions/methods Type aliases assert and unreachable statements Implicit…



Locic 1.1 Soon

I’m currently working hard on the second release of ‘Locic’, the compiler tools for the Loci programming language. The initial target date was around mid-August and it looks likely that I will be able to release on schedule. While 1.0 provides the key features of the language (classes, algebraic datatypes, templated types), this new release…



Locic Release

I recently made the first release of the Loci compiler, available to download here. This covers a very broad range of the language with extensive support for the key features, such as classes, templates, exceptions and algebraic datatypes; the website has more detail. With this release I aim to provide a taste of the language,…



atoi() vs std::stringstream

I was recently asked to compare the functionality of atoi() and std::stringstream. Here’s the code:

And here’s the output: So it looks like the functionality of both is actually very similar (though note std::stringstream has many ways to modify its behaviour); unfortunately it seems the stream doesn’t set the result to zero when…


Building LLVM and Clang

Often it’s useful to build the latest LLVM and Clang from source code, rather than relying on often out-of-date packages available in repositories. This build process can be done quickly and easily with CMake, but it’s worth taking care to ensure the right options are passed. The following commands will build LLVM and Clang to…