Smoke Query Language (Smoquel)

The Smoke Query Language or Smoquel was designed as an irc-bot interface to the smoke database where parsed versions of smoke-reports are stored.

The {patchlevel} and last smoqueries gather information about the different attributes of smoke reports so that they can be transferred to SQL. The result of a smoquery is a single smoke-report that qualifies as the last. This is the report with the highest changenumber (patchlevel), that came last in the newsgroup (has the highest articlenumber).

The language is parsed by a Parse::RecDescent parser and has basically five (5) production-rules. Most keywords have one or more alternatives (see table below).

I run a webface for Smoquel to smoquery the smoke database from your browser.

The basic production rules for Smoquel 5

[show] version
Shows the version of the agent and the language.
[show] list os|arch|cc
Shows a list of known operating systems, acrchitectures or compilers.
[show] id {report_id}
Show a report by its report_id as used on the perl.org nntp gateway(new window)
[show] {patchlevel} [[to] pass|fail] [[for] <os>[ <osver>]] [on <arch>] [from <smoker>] [using <cc>]
Show "the last" report of patchlevel that matches the criteria specified.
[show] [the] last [blead|maint|any|{pversion}] [before|after {patchlevel}] [[to] pass|fail] [test <testname>] [[for] <os>[ <osver>]] [on <arch>] [from <smoker>] [using <compiler>]
Show "the last" report that matches the criteria specified.

Phrases in [ ] are optional. Words in < > are MySQL regexen. Words in { } are (version)numbers.

Smoquel keywords and their alternatives
KeywordAlternative(s)
showwhat is, what's, whats
listall
os
arch
cc (with list)
ossen, osses
architecture, architectures, archs, hw
compiler, compilers, ccs
blead, maint, anybleadperl, maintperl, anyperl
before, after<, >
to (with status)that
pass
fail
passed, passes, succeed, succeeds, succeded, ok
failed, fails, nok
forwith
onhaving, hw
fromby
usingcc, compiler

Examples of Smoquries

{patchlevel} smoquery
  • 24263 for solaris on x86
  • 24309 for hp-ux
  • 24309 for hp-ux by merijn
last smoquery
  • last
  • last for hp-ux
  • what is the last bleadperl before 24271 that passed using xlc
  • last to pass test 105oneshot-deflate.t for linux 2.6 on ppc by ztreet