loci, a C++/D hybrid?

FG via Digitalmars-d digitalmars-d at puremagic.com
Sat Feb 21 08:19:25 PST 2015


On 2015-02-21 at 11:51, Kagamin wrote:
> ---
> void (*f)(); // C
> void (*)() f; // Loci
>
> int (*f)(); // C
> int (*)() f; // Loci
>
> int (*f)(int, int); // C
> *(int)(int, int) f; // Loci
> ---
>
> Ehh? Why the last declaration is so different?

Yeah, everything was fine, but when I got to this part, I almost fell off my chair. What the hell?! I hope it is just a bug in the documentation. Other than that, the documentation looks quite nice, except for the angle braces, or this eyesore:

     lval<const int> value_lval<const int> i = lval<const int>(value_lval<const int>(0));

Moving on, I'm a bit baffled by what their default string type is - http://loci-lang.org/Strings.html - and if it is worth the trouble and complexity, when compared D's default (linear & immutable + cost-less slicing).

The most interesting part is that they don't use mangling and function overloading but instead have templates and this: http://loci-lang.org/TemplateGenerators.html to not have to instantiate for every permutation of types encountered. Indeed, it can help make stable APIs, but we'll have to see if it can be optimized to achieve performance. Well, gonna check again how things turn out for Loci in a couple of years.


More information about the Digitalmars-d mailing list