From 025f98f38c4b6c0bea6c9398c88a0b8240fa4e26 Mon Sep 17 00:00:00 2001 From: Vlad Faust Date: Thu, 3 Sep 2020 13:23:14 +0300 Subject: [PATCH] Add Rust macro counter-example --- posts/2020-08-20-the-onyx-programming-language.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/posts/2020-08-20-the-onyx-programming-language.md b/posts/2020-08-20-the-onyx-programming-language.md index ff9b76b..1a02856 100644 --- a/posts/2020-08-20-the-onyx-programming-language.md +++ b/posts/2020-08-20-the-onyx-programming-language.md @@ -635,6 +635,8 @@ alias UIBin<*>, UBin<*> = IBin<false, *> Macro code can generate other macro code. The algorithm is to evaluate immediate macros (e.g. `{% %}`) immediately once they are met in the code by some lexer, but evaluate delayed macros (e.g. `\{% %}`) only when the time is right, for example, per specialization. +This allows to avoid embarrassing situations like [this](https://github.com/diesel-rs/diesel/blob/master/diesel/src/macros/tuples.rs) in Rust. + Apart from simply `print "Debug"`, Lua contains powerful debugging facilities, e.g. `debug()`. This means that you can debug your compilation, even with breakpoints from an IDE!