Total size of Fedora source

Alek Paunov alex at declera.com
Sat May 19 17:36:14 UTC 2012


Bunch of random strings somewhat related to your proposal:

Build:

  * Assuming loaded source DB (during distribution build)

  * Source query: 
pkg:gnome-keyring[@fgit='3f7ff7']//cfunc:gkm_rpc_log/trans-calls::*/arg:line/c:string/string()

    (All string "line" [1] literals used in calls (direct and 
transitive) to gkm_rpc_log [**])

  * Filling the err-message grammar (snippet from [3]):

     err-message = "WARNING: " "gnome-keyring" ":: " (
         ...
         | "couldn't secure socket: " everything
         | "couldn't connect to: " everything ": " everything
         | "couldn't send socket credentials: " everything
         ...
         )

     (the grammar is needed for parsing the user input for points 1st 
and 3rd of your note (see also [***] alternative))

Runtime:

  * parse the user/service query "WARNING: gnome-keyring:: couldn...": 
applying the above gremmar and rendering part of the syntax tree in 
response.

Kind Regards,
Alek

[*] Let's forget for a minute about the fact of hundreds different 
patters in the whole codebase, let's pretend that we have to handle just 
the sample error message from your propsal ;-)

[**] Imaginary xpath/xquery-like language for code queries ([4,5,6] - 
leading large scale implementation AFAIK):
   pkg: pacakges namespace
   3f7ff7: 3f7ff7289907d2a27912909e63908eadb16d97bf == 3.2.1-3: Current 
F16 git for gnome-keyring - implies upstream 6d5818 [2]
   cfunc: C functions namespace
   trans-calls: transitive calls axis (like ancestor-or-self but for 
"calling" relation instead of "nesting" tree relation)
   arg: argument names namespace
   c: C language constructs namespace
   string(): in xpath string() function tries to convert the context 
tree node to string scalar

[***] Less elegant, but also less complicated (we do not need grammar 
and parsing, but just code-point _key_ matching) option is to convince 
Tomas to include build instrumentation in the spec (David's gcc plugin 
based in case of gnome-keyring) for hard error messages pre-enumeration 
with the following effect:
  [3] L250 becomes: "[FGKR0TK] couldn't secure socket: %s"
  [3] L256 becomes: "[FGKR0TL] couldn't connect to: %s: %s"
  [3] L262 becomes: "[FGKR0TM] couldn't send socket credentials: %s"


[1] 
http://git.gnome.org/browse/gnome-keyring/tree/pkcs11/rpc-layer/gkm-rpc-dispatch.c?id=6d5818#n72
[2] 
http://git.gnome.org/browse/gnome-keyring/tree/?id=6d58181fcddc5c13762a1920a464787ebc27d4bc
[3] 
http://git.gnome.org/browse/gnome-keyring/tree/pkcs11/rpc-layer/gkm-rpc-module.c?id=6d5818#n246
[4] 
http://www.lug-erding.de/vortrag/Purely%20Relational%20XQuery%20LUG%20Erding.pdf
[5] http://hackage.haskell.org/package/Pathfinder
[6] 
http://dev.monetdb.org/hg/MonetDB/file/f7d6c302cc9c/pathfinder/compiler/algebra/algebra.c


More information about the devel mailing list