www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - [Meta] Lightweight Modular Staging library for D Language

Hi, folks

Hope you are all safe at home with that virus outbreak 
world-wide. And it's good to be back.

Being forced to lock down has it's ups and down. For one good 
aspect - I have found the time to re-implement and then 
(finally!) understand the beautiful meta programming technique 
called Lightweight Modular Staging by Martin Odersky et al.

In a nutshell - late binding + staged computation == DI 
Framework. Which means that if you ever used DI framework you 
have worked and understood the basics of staged computation.

Now if we add expression templates (or rather compile-time 
polymorphic expression trees) to the mix we what Martin calls 
Lightweight Modular Staging. I'm not sure where the modular part 
comes in but it's surely lightweight and powerful!

So without further ado, I'm announcing the v1 of DLMS (LMS for D) 
library:

Code:
https://github.com/glow-stack/dlms

DUB:
https://code.dlang.org/packages/dlms

There a few things that somehow fail at CTFE, I'll look into the 
workaround options, seems easy to fix though - the library is 
single ~350 LOC 0-deps D file.

I think it's feature complete for the time being I might expand 
it as I move on to build the v2 of Pry parser generator using 
this LMS library as the backbone in particular exploiting the 
partial evaluation capabilities.


Have fun and stay safe!

--
Dmitry Olshansky
May 09 2020