styx, a programming languange written in D, is on the bootstrap path

Ola Fosheim Grøstad ola.fosheim.grostad at gmail.com
Fri Jan 15 19:40:11 UTC 2021


On Friday, 15 January 2021 at 19:18:09 UTC, Basile B. wrote:
> I plan to use dparse for the most part, not only to convert but 
> also to detect non bootstrapable code or missing features.

Ah, smart. I've been thinking about using an existing d-parser to 
convert unit tests from D to my Dex syntax (experimental 
project). Modifying the compiler is fun, but writing unit tests 
is not...

> This is a noble reason. Styx has no such motivations. It is 
> simpler than D1 for example and has no killer feature,

What made D1 attractive to many C++ programmers was that it was 
stripped down. Also, many language designers get tempted to add 
many features that are hollow, then they regret it and rip it all 
out again (lots of wasted effort and source code). So, being very 
restrictive and patient is a good thing, I believe. The truly 
good ideas takes time to "grow" (in ones mind).

> just 3 or 4 creative things are
> - optional break/continue expression
> - explicit overloads
> - DotExpression aliases (they have been proposed to DMD this 
> summer when I worked "under cover" as Nils.)
> - pointers to member function is very different from what I 
> have seen so far (no fat pointer)

"Nils" is a very scandinavian name? :-)

It will be interesting to see what your codebase looks like after 
moving to self hosted. I assume you will keep us up to date.

>> I finally decided to start on a lexer for it... How long did 
>> it take you to get where you are now?
>
> The project exists since several years (2017-04-13 20:05:51) 
> but is only actively developed since july 2020. The game 
> changers were:
> - to use LLVM instead of libfirm
> - to that some part of the initial design were bad
> - proper lvalue implementation

But that is only 6 months? Then you have come quite far if you 
are already going for self hosting.

I'm still rethinking my lexer. Hehe. Like, do I want to make 
keywords tokens or should they just be lexed as identifiers? I 
did the first, but think maybe the last is more flexible, so a 
rewrite... is coming. ;)




More information about the Digitalmars-d-announce mailing list