Til, a command language written in D

Cléber Zavadniak contato+til at cleber.solutions
Fri May 14 22:10:38 UTC 2021


Hey, folks, how you doing?

2 months ago I started playing with a small personal project: 
creating a simple programming language / interpreter, both for 
fun and for learning more about... you know... creating a 
programming language / interpreter. :-)

Now, *I'm not exactly a Walter Bright*, so I decided to start 
with a **dynamic, Tcl-like language: command-based and without 
much "syntax"**. I tried to avoid the "*everything is a string*" 
concept and even played for some time with "*everything is a 
list*" (almost like Lisp, but with fewer parentheses) and even 
"*everything is a forward range*" - the results, then, were 
**horrible**, but, anyways... I've learned interesting lessons 
(specially: how important, powerful and versatile a simple STACK 
is).

[Til](https://github.com/til-lang/) is now mature enough, IMHO, 
to the point I'm spending more time writing documentation and 
"spreading the word" than coding that much. I published two 
packages on Dub (the language itself and a module) and created a 
[Github-Pages-Website](https://til-lang.github.io/til/), already.

I'm not pretentious in any form (I know it's just "*yet another 
language*"), but I'm actually very happy with the results: I can 
write programs in a interpreted language (I appreciate the power 
and development speed it gives me) and can extend it with another 
very nice (and powerful) language - D.

(Most other languages still follow the formula "extend it with C" 
and, although I consider myself a "C friendly" guy, that usually 
doesn't appeal that much to me..)


Anyway: the last thing I was working was **loading dynamic 
libraries as "modules"** and I stumbled across the potential 
problem of having two different GCs running independently. This 
article, https://dlang.org/articles/dll-linux.html , talks about 
linking the results (both the interpreter and the shared library) 
with `libphobos2.so` -- but it's nowhere to be found on my (Void) 
Linux system (and neither on FreeBSD). So I have some questions:

1- Should I compile a `libphobos2.so` "by hand"? Should I use 
`libphobos2-ldc-shared.so`???
2- Is the GC really going to run on my shared library after 
loading it? (I think that's maybe a "silly question", but also 
believe it's worth clarifying the matter.)


I appreciate any help.

(Furthermore, I'd like to thank to all people helping to make D a 
language (and ecosystem and community) even more amazing each 
day. :-)

(FurtherEvenMore: I'm new to the forum, so I hope I choose the 
right place to post this message...)


More information about the Digitalmars-d-announce mailing list