fche changed the topic of #systemtap to: http://sourceware.org/systemtap; email systemtap@sourceware.org if answers here not timely, conversations may be logged
pwithnall has quit [Ping timeout: 252 seconds]
<fche> ooh I like it
<fche> ship it
orivej has quit [Remote host closed the connection]
orivej has joined #systemtap
orivej has quit [Ping timeout: 240 seconds]
<agentzh> fche: awesome :)
xar- has quit [Ping timeout: 260 seconds]
gregwork has quit [Ping timeout: 260 seconds]
gregwork has joined #systemtap
xar- has joined #systemtap
<agentzh> fche: committed :) i'll update the remaining tests to use this new module.'
<agentzh> done.
przemoc has quit [Ping timeout: 244 seconds]
orivej has joined #systemtap
orivej has quit [Ping timeout: 245 seconds]
agentzh has quit [Ping timeout: 252 seconds]
orivej has joined #systemtap
slowfranklin has joined #systemtap
orivej has quit [Ping timeout: 245 seconds]
mjw has joined #systemtap
pwithnall has joined #systemtap
pwithnall has left #systemtap [#systemtap]
pwithnall has joined #systemtap
pwithnall has quit [Quit: pwithnall]
pwithnall has joined #systemtap
orivej has joined #systemtap
orivej has quit [Ping timeout: 246 seconds]
orivej has joined #systemtap
tromey has joined #systemtap
brolley has joined #systemtap
tromey has quit [Ping timeout: 245 seconds]
tromey has joined #systemtap
mjw has quit [Quit: Leaving]
slowfranklin has quit [Quit: slowfranklin]
pwithnall has quit [Ping timeout: 252 seconds]
slowfranklin has joined #systemtap
agentzh has joined #systemtap
<agentzh> fche: what do you think of this unary '&' parser fix patch? https://sourceware.org/ml/systemtap/2018-q3/msg00158.html
<fche> & is not a c-like general operator here, it's punctuation for $context type variables only, like the $ suffix
<fche> parenthesizing it imho would give people the wrong idea
<agentzh> what's the disadvantage of making it more general?
orivej has quit [Ping timeout: 272 seconds]
<fche> well, we can't really make it more general at the language level, we don't have a c-like abstract machine
<agentzh> can we make this just an undocumented feature?
<agentzh> without it, a stap code emitter is harder to write.
<fche> what kinds of things does your emitter want to take addresses of ?
<agentzh> i just want to always add parentheses to avoid any potential operator precedence problems.
slowfranklin has left #systemtap [#systemtap]
<fche> but around what? the only things one can take addresses of are @var() and $foo target_symbols, which are not themselves expresssions
<fche> so there isn't really a precedence problem AIUI
<agentzh> for example, &(a + 1) should give the right stap compile-time error instead of becoming &a + 1.
<fche> stap language is not C though, so it's not the 'right' error really
<agentzh> but &(a) should be fine.
<agentzh> the code emitter can simply add parentheses after `&` so that it does not have to care about what's inside.
<fche> yeah but in stap land, very little -can- be inside
<agentzh> sure, just want to make the parser a little bit more flexible.
<agentzh> '&' does look like a unary operator anyway.
<fche> ok, aside from all that ... for some reason this does parse in git stap:
<fche> stap -p1 -e 'probe begin { print(&(1+a+1))}'
<fche> which is just not right, so something in this area has already been played-with
<agentzh> yeah, i just make the good case really work.
<agentzh> so nothing to lose here?
<agentzh> for bad cases, stap already gives good error messages.
orivej has joined #systemtap
<fche> let's pause and let me figure out what's going on with this variant of '&'. our old pal jistone added support for it during the auto-@cast work four years ago
<fche> commit 0fb0cac98ad4
<agentzh> is jistone still around hacking on stap?
<fche> not lately :)
* agentzh misses him :)
<jistone> I'm around, but not on stap, no
<jistone> aww, thanks :)
<agentzh> good to see you again
<jistone> you too, looks like you're busy here lately
<agentzh> indeed :)
<agentzh> i've been hacking on stap in a full time fashion lately.
<agentzh> keeping bombing fche with patches.
<fche> agentzh, looking over the test cases in your patch, it seems to me they all already parse, thanks to that older work
<agentzh> right, my change is really small :)
<agentzh> just a couple of lines.
<fche> what's an example & expression that requires your change?
orivej has quit [Ping timeout: 244 seconds]
<agentzh> &(@var("a)) and &((@var("a")->foo)) ?
<agentzh> those "good cases" using () after &.
<fche> that parses for me
<agentzh> but it does not run withotu my change.
<agentzh> *without
<agentzh> the AST is wrong.
<agentzh> or parse tree
<fche> & FOO gets a cast_op (FOO ....) generated
przemoc has joined #systemtap
<fche> ah, I think I see what you mean.
<fche> & (real_target_sym_expression) was not interpreted the same as real_target_sym_expression-with-addrof-flag
<agentzh> without my patch, TEST 1 gives a confusing error message like this: semantic error: cannot take address of tracepoint variable: operator '&'
<agentzh> for example.
<fche> ok. so the NEWS blurb is a bit misleading.
<fche> it should say parenthesis after & with a target-symbol expression is now accepted
<fche> or something like that
<fche> because as we discovered, jistone made &(stuff) work in other contexts already
<agentzh> yeah, i should update that.
<agentzh> sorry for the confusion.
<agentzh> i can prepare a v3 patch.
kefren has quit [Ping timeout: 268 seconds]
<agentzh> fche: just sent the v3 patch: https://sourceware.org/ml/systemtap/2018-q3/msg00159.html
orivej has joined #systemtap
<fche> looks good
<fche> by the way, in the .exp test cases, if there is a fatal error like target_compile failed, you can 'return' from the .exp script
<fche> so you don't have to nest the } else { REAL TEST } case
<agentzh> you prefer short-circuiting in such cases?
<agentzh> i thought the current way would be preferred.
<agentzh> no problem, i can change that.
<fche> if there's only one test in there, sure; in these multi-test .exp files, your way is fine
<agentzh> the code is auto-generated. so your call :)
<fche> current way is fine for that patch
<agentzh> it's actually easier to return immediately.
<fche> just mentioned it as an fyi
<agentzh> (for me)
<agentzh> okay, for single-case test files, i'll avoid the else branch then.
<agentzh> that's a good point.
orivej_ has joined #systemtap
orivej has quit [Read error: Connection reset by peer]
<agentzh> fche: just out of curiosity, is systemtap used extensively inside redhat for trouble shooting?
<fche> not sure what the yardstick for that would be
<fche> but it is used by numerous groups outside its developers
<agentzh> nice
<agentzh> stap should be a wonderful tool for redhat's technical support business.
<fche> yeah, they use it as needed
<agentzh> *nod*
<agentzh> fche: committed that '&' patch.
<fche> ok
tromey has quit [Quit: ERC (IRC client for Emacs 26.1.50)]
slowfranklin has joined #systemtap
slowfranklin has quit [Quit: slowfranklin]
slowfranklin has joined #systemtap
<agentzh> fche: what do you think of this @vma() patch? https://sourceware.org/ml/systemtap/2018-q3/msg00163.html
slowfranklin has quit [Quit: slowfranklin]
<fche> agentzh, that's a lot of code
<fche> nicely done though, just have to read it a few times a
<fche> by the way, @var() does have a chance in dwarfless probe point families - on rh distros some symbol data is available in the base executable
<fche> I thought we already use that info though
<agentzh> fche: good to know. thanks.
<agentzh> is that the "mini-debuginfo" thing?
<agentzh> like the symbol table info nm inspects?
brolley has left #systemtap [#systemtap]