Determination for the number of named function parameters (with SmPL)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

Would you like to know how many named function parameters are used in the source files?

How do you think about to try the following semantic query approach out a bit more?

@initialize:python@
@@
import sys
import sqlite3 as SQLite
connection = SQLite.connect(":memory:")
c = connection.cursor()
c.execute("""create table numbers (number integer)""")
delimiter = "|"

def store_number(count):
    """Add an integer to an internal list."""
    c.execute("""insert into numbers (number) values (?)""",
              (count, )
             )

@counting_parameters@
identifier work;
parameter list[number] pl;
type return_type;
@@
 return_type work(pl)
 {
  ...
 }

@script:python collection@
count << counting_parameters.number;
@@
store_number(count)

@finalize:python@
@@
c.execute("""select count(*) nr from numbers""")
result = c.fetchone()

if result[0] > 0:
   c.execute("""create index x on numbers (number)""")
   c.execute("select number, count(*) nr from numbers group by number")
   sys.stdout.write(delimiter.join( ("number", "counter") ))
   sys.stdout.write("\r\n")
   for result in c:
      sys.stdout.write(delimiter.join((str(result[0]),
                                       str(result[1])
                                      )))
      sys.stdout.write("\r\n")
else:
   sys.stderr.write("No result for this analysis!\n")

connection.close()



elfring@Sonne:~/Projekte/Coccinelle/Probe> XX=$(date) && spatch.opt -timeout 12 -sp-file list_parameter_numbers1.cocci -dir /usr/src/linux-stable > list_parameter_numbers1.txt 2> list_parameter_numbers1-errors.txt ; YY=$(date) && echo "$XX * $YY"
...
elfring@Sonne:~/Projekte/Coccinelle/Probe> cat list_parameter_numbers1.txt
number|counter
0|29
1|18261
2|15374
3|12237
4|8159
5|4339
6|2701
7|1183
8|518
9|260
10|146
11|83
12|42
13|21
14|9
15|7
16|2
17|4
18|1
21|1
22|1


Do you find such an analysis result from the source files for Linux 3.17.4
interesting for further considerations?

Regards,
Markus
--
To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux