On Dec 12, 2005, at 1:55 PM, Chip Salzenberg wrote:

On Mon, Dec 12, 2005 at 12:30:47AM +0100, Leopold Toetsch wrote:
On Dec 11, 2005, at 23:45, Joshua Isom wrote:
.IfDebug(1,
        print "var = "
        print var
)

As said, it was surprising me too. Anyway, I think typical use cases
are debugging and I prefer a solution that boils down to no code at all
for the non-debug case, like C's assert with -DNDEBUG.

Hm.  Pondering...

 * PIR is primarily a compiler target, not a human language.  (Pasm,
   in contrast, is an entirely non-human language.)  So convenience is
   not paramount.

 * On the other hand, conditional compilation is cheap & helpful, so
   why not?

 * Forbidding commas in the expanded code is not OK.  And requiring
   backwhacked commas isn't OK either: too ugly, too much work to add
   and remove conditionals around existing code.

So I guess we just need a robust multi-line quoting convention (to
pass multiple lines of code to macros).

That sounds suspiciously like a HEREDOC.

See: http://rt.perl.org/rt3/Ticket/Display.html?id=37600, which was marked as rejected.

  (Musing while typing:) How
about using braces as balanced delimeters when an open brace is the
first character:

        .IfDebug(1, {
                multi,line
                stuff,with,commas
                and even {nested} braces
                goes
                here
        })

--
Chip Salzenberg <[EMAIL PROTECTED]>


Reply via email to