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 and explicit casts between types using templated methods
- Standard library memory allocators and smart pointers
- Standard library containers
- Standard library strings
- Vastly improved performance, particularly for Code Generation.
- A larger set of examples and updates to examples to demonstrate newly implemented features.
- Significantly improved documentation in reStructuredText using Sphinx, which can generate multiple output formats including HTML and PDF.
- A much larger set of integrated tests to check both accept and reject cases, as well as testing the standard library.
The release was delayed slightly from the mid-August estimate in order to add support for LLVM 3.5 (so that LLVM 3.3, 3.4 and 3.5 are all supported as backends for Locic), which was initially scheduled for release on the 25th August 2014.
LLVM 3.5’s release has since been re-scheduled for the start of September, so the Locic 1.1 release was modified and tested for compatibility with LLVM 3.5 RC3 (pulled from SVN), which is expected to be near-identical to the actual LLVM 3.5 release.