Eko: New Programming language write entirely in D (Feedback welcome)
pouya1dev
poyaxc545 at gmail.com
Sat Aug 22 08:05:55 UTC 2026
On Saturday, 22 August 2026 at 07:50:03 UTC, pouya1dev wrote:
> On Saturday, 22 August 2026 at 07:17:52 UTC, pouya1dev wrote:
>> On Friday, 21 August 2026 at 19:05:25 UTC, user1234 wrote:
>>> On Friday, 21 August 2026 at 18:39:00 UTC, pouya1dev wrote:
>>>> On Friday, 21 August 2026 at 18:12:23 UTC, pouya1dev wrote:
>>>>> On Friday, 21 August 2026 at 17:54:32 UTC, user1234 wrote:
>>>>>> On Friday, 21 August 2026 at 17:01:13 UTC, pouya1dev wrote:
>>>>>>> Thank you very much. I will definitely look into the
>>>>>>> examples you provided.
>>>>>>
>>>>>> I forgot to mention a few several ones. Notably styx-lang.
>>>>>> You also have two alternatives D front-ends written
>>>>>> themselves in D. You see it's a classic to write
>>>>>> programming languages. A bit like game engines.
>>>>>>
>>>>>> Recently we also had an annouce about someone using D to
>>>>>> write a scripting engine but it was AI slop (Kite), so the
>>>>>> topic was a bit delicate if you see what I mean.
>>>>>>
>>>>>> There is also one that was made for a game engine, I
>>>>>> remember a conversation with the author on IRC but I cant
>>>>>> find any official annouce RN.
>>>>>
>>>>> Thanks again. These examples will help me a lot. And it's
>>>>> really interesting that D has a long history of writing
>>>>> interpreters or compilers. To be honest, D is really one of
>>>>> the best options for this because it's both simple and has
>>>>> built-in functions unlike C. But C is also a good option
>>>>> and a very classic option in the programming community. I
>>>>> have a plan not to write my entire language based on D.
>>>>> Because it will be significantly more dependent and a bug
>>>>> in D might break my language. (Of course the D team is
>>>>> always working hard to develop and improve D) and I wish
>>>>> Eko would be self-hosted.
>>>>
>>>> For example, I started writing an assembler for eko in the
>>>> Nim language. Because Nim has a syntax similar to Python and
>>>> is compiled, it is easier to understand and faster to write.
>>>> And there is a library like ```nifasm```, using which you no
>>>> longer have to define the binary manually for, for example,
>>>> ```mov``` And you create a variable as a buffer and use
>>>> ```emitMov``` to create the binary and store it in this
>>>> buffer.
>>>
>>> I see, you're mentioning the intermediate representation
>>> here. So there can be atomic `mov` or `mov`es that are more
>>> like `memcpy`, with eventually the postbliting problem, when
>>> it's about copying a user type, that, let say, contains
>>> interior pointers.
>>>
>>>> I think the hardest part for me was creating the elf.
>>>
>>> Indeed emitting object files, such as elf, requires a certain
>>> amount of work (instruction set, sections, static ctors,
>>> etc.). Not to speak about the debug infos. Toward this
>>> problem here I've chosen LLVM.
>>
>> I agree with you, it really makes things easier with an
>> intermediate language like LLVM, and LLVM is also used in big
>> compilers like LDC. But it's also hard to learn because it's
>> an intermediate language and it's made for compilers to write,
>> not humans. But it makes sense to learn it because of its
>> great power.
>
> To be honest, I’m currently working on a comprehensive
> application for both Windows and Linux that serves as a
> full-fledged code editor for Eko, with community features
> powered by something like Supabase. It will also allow users to
> switch between Eko versions directly from the app, without
> having to manually download and install different versions from
> GitHub.
Honestly, I’m undecided about whether I should actually build a
Linux version of this program, since most Linux developers are
proficient with the terminal and don't need a GUI-based
application. I previously wrote a code editor for Linux using
Electron (https://github.com/pouya1dev/zenplycode) —I think I
should continue working on that instead of creating a new
one—while for Windows, I use Visual Studio with C#.
More information about the Digitalmars-d
mailing list