Yes, I released it for Spring Thing 2018. I have a half-formed plan to code it according to my original plan but in Dialog. Even if it is possible to implement it in TADS, I find it much easier to solve graph problems with Dialog.
Personally my favourite thing about Dialog is that’s it’s just not very big!
Lines of code is a terrible metric, but Dialog’s stdlib seems to be about a tenth the size of adv3lite, which I presume is smaller than the normal library. Some of that is because it just does less, for sure, but some of it seems to be that it does things with a few very general mechanisms instead of more specific targeted solutions.
That’s neither a pro nor con in general, FWIW! One thing I’ve learned as a programmer is that everyone’s brains work differently for these things, but my brain works a lot better with the Dialog style. I think a lot of folks will justifiably dislike Dialog for the exact same reason.
I have first compiled Dialog on March 20, 2023 (based on the timestamp of the compiled binary). Less than 2 months later, on May 11, I have written some modifications to the standard library parser routines (for better or worse) and posted them on this subforum. I have had zero experience on Prolog or any other logic programming language before tinkering with Dialog. So Brian’s assessment of Dialog is dead on in my experience.
Some parts of the Dialog standard library might suggest that there are special constructs for some special declarations; defining synonyms for objects, for example:
(dict #fruit) exotic fruit
It is true that the library uses this definitions in a special way, but it is still a first-class predicate and can contain control statements just like any other predicate, like,
(dict *) exotic fruit (* is handled) rotten
which adds a synonym as soon as the player takes the fruit; or consider the mud sign from Adventureland as an example,
(name #mudsign) sign here says "In may cases mud is good. In others..."
(dict #mudsign) (just) sign
which effectively turns the name property into printed name of Inform and the words in the name property can no longer be used to refer to the object, except the ones mentioned in the (dict #mudsign)
predicate.
This orthogonality of the base language is what attracted me to the language in the first place, and made it enjoyable for me since then.