Category: Loci

Loci v1.4 Released

The latest version of the Loci compiler is now available. See the release notes for detailed information about what’s included. The main feature in this release is a brand new compiler diagnostics system with a rewritten lexer and parser. Here’s an example of errors from the old compiler:

And here’s how it looks with…


Article: Templates across API boundaries

I recently wrote an article for Embedded.com about how Loci improves on C++ templates to allow them to be used across API boundaries. The article is a multi-part series: Part 1: Templates across API boundaries: Powerful but problematic Part 2: Templates across API boundaries: Implementing template generators Part 3 (not available yet)



GLR vs Recursive Descent Parsing

One of the oldest parts of the Loci compiler was replaced earlier this month: the parser. The switch was from a Bison GLR parser to a hand-written recursive descent parser. Rewriting a major compiler component is a significant time/effort investment (it took around 2-3 weeks of relatively intense development), so I’ll explain why I took…



Loci Compiler v1.3 released

The latest version of the Loci compiler is now available. See the release notes for detailed information about what’s included. A lot of this release is clearing up the low level mechanisms of the language, including: Specify object memory states, which is important for move semantics. Adding sizeof() and alignmask() methods so that unsized types…



LLVM ARM and AArch64 nest attribute patches accepted

In the process of developing a mechanism for efficient virtual method calls in Loci I came across difficulties related to generating the appropriate assembly via LLVM IR. For more information, read the LLVM mailing list discussion. Fortunately it turns out LLVM has been adding the required features recently, one of which is the ‘nest’ attribute…



Locic 1.2 Released!

Version 1.2 of Locic has now been released. You can download it here. The release notes are available here: Locic – Releases As mentioned in the previous post, the main feature of this release is predicates (read the relevant documentation for more).



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…