[Bug 269906] dtrace requires empty expression to print anything from matching search
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 20 Mar 2023 19:14:25 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269906
--- Comment #5 from Christos Margiolis <christos@margiolis.net> ---
Apparently, this patch doesn't really work and, in fact, allowing a predicate
with no acts is probably impossible in D without introducing a significant
amount of complexity. awk can do that just fine because awk's predicates cannot
contain unescaped "/", since it searches for regexes. D on the other hand
allows normal computation inside the predicate, meaning one can do division
inside it:
kinst::vm_fault: /(cpu / 2) == 1/
This is a problem because the D lexer considers "/" to be a division token (and
not a start/end of predicate token) when the next non-whitespace character
coming after it is anything other than EOF, 0, ;, { and }, so if we try and
run:
kinst::vm_fault: /cpu == 1/ fbt::malloc:entry
The lexer will think the end of predicate is actually a division token because
the succeeding non-whitespace character "f" doesn't match the character set
that indicate the end of predicate.
--
You are receiving this mail because:
You are the assignee for the bug.