Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Titan » Some Titan project statistics(cloc TTCN-3 *.tpd)
Some Titan project statistics [message #1780254] Fri, 19 January 2018 10:56
Elemer Lelik is currently offline Elemer LelikFriend
Messages: 807
Registered: January 2015
Senior Member
Dear all,

in case you are interested about some vital statistics of the Eclipse Titan project,
this page:

https://www.openhub.net/p/eclipse_titan/

will offer you a good summary.

Statistics are run peridocally over all repositories that are part of the project, listed here:

https://www.openhub.net/p/eclipse_titan/enlistments

(currently 95 repositories, partly in Github, partly in Eclipse Git)

As an example, the evolution of nr. of commits over time looks like this:
index.php/fa/31858/0/

The scanner also attempts to chart the language distribution of the project:

index.php/fa/31859/0/
According to this figure the project is roughly 1/3 Java, 1/3 C++ and 1/3 C.

First of all bear in mind that this is over all repositories (compiler, Eclipse plug-ins, test ports, protocol modules etc)
Secondly , the scanner is agnostic to the TTCN-3 language and identifies it as C (or maybe C++)


If one is interested in statistics per repository , I would recommend using the Cloc tool described here:

https://www.shanebart.com/cloc-count-lines-of-code/

and available here:

https://github.com/AlDanial/cloc


Interestingly , cloc is TTCN-3 aware ( what is more , it recognizes Titan project descriptor (*.tpd ) ) files:

 perl cloc-1.74.pl --version
1.74


perl cloc-1.74.pl --show-lang
ABAP                       (abap)
ActionScript               (as)
Ada                        (ada, adb, ads, pad)
ADSO/IDSM                  (adso)
AMPLE                      (ample, dofile, startup)
Ant                        (build.xml, build.xml)
ANTLR Grammar              (g, g4)
Apex Trigger               (trigger)
Arduino Sketch             (ino, pde)
ASP                        (asa, asp)
ASP.NET                    (asax, ascx, asmx, aspx, master, sitemap, webinfo)
AspectJ                    (aj)
Assembly                   (asm, s, S)
AutoHotkey                 (ahk)
awk                        (awk)
Blade                      (blade.php)
Bourne Again Shell         (bash)
Bourne Shell               (sh)
BrightScript               (brs)
builder                    (xml.builder)
C                          (c, ec, pgc)
C Shell                    (csh, tcsh)
C#                         (cs)
C++                        (C, c++, cc, CPP, cpp, cxx, pcc)
C/C++ Header               (h, H, hh, hpp, hxx)
CCS                        (ccs)
Clean                      (dcl, icl)
Clojure                    (clj)
ClojureC                   (cljc)
ClojureScript              (cljs)
CMake                      (cmake, CMakeLists.txt)
COBOL                      (cbl, CBL, cob, COB)
CoffeeScript               (coffee)
ColdFusion                 (cfm)
ColdFusion CFScript        (cfc)
Coq                        (v)
Crystal                    (cr)
CSON                       (cson)
CSS                        (css)
Cucumber                   (feature)
CUDA                       (cu, cuh)
Cython                     (pyx)
D                          (d)
DAL                        (da)
Dart                       (dart)
diff                       (diff)
DITA                       (dita)
DOORS Extension Language   (dxl)
DOS Batch                  (BAT, bat, BTM, btm, cmd, CMD)
Drools                     (drl)
DTD                        (dtd)
dtrace                     (d)
ECPP                       (ecpp)
EEx                        (eex)
Elixir                     (ex, exs)
Elm                        (elm)
ERB                        (ERB, erb)
Erlang                     (erl, hrl)
Expect                     (exp)
F#                         (fsi, fs, fs)
F# Script                  (fsx)
Focus                      (focexec)
Forth                      (4th, e4, f83, fb, forth, fpm, fr, frt, ft, fth, rx, fs, f, for)
Fortran 77                 (F, F77, f77, FOR, FTN, ftn, pfo, f, for)
Fortran 90                 (F90, f90)
Fortran 95                 (F95, f95)
Freemarker Template        (ftl)
GDScript                   (gd)
Glade                      (glade, ui)
GLSL                       (comp, frag, geom, glsl, tesc, tese, vert)
Go                         (go)
Grails                     (gsp)
GraphQL                    (gql, graphql)
Groovy                     (gant, gradle, groovy)
Haml                       (haml)
Handlebars                 (handlebars, hbs)
Harbour                    (hb)
Haskell                    (hs, lhs)
Haxe                       (hx)
HLSL                       (cg, cginc, hlsl, shader)
HTML                       (htm, html)
IDL                        (idl, pro)
Idris                      (idr)
INI                        (ini)
InstallShield              (ism)
Java                       (java)
JavaScript                 (es6, js)
JavaServer Faces           (jsf)
JCL                        (jcl)
JSON                       (json)
JSP                        (jsp, jspf)
JSX                        (jsx)
Julia                      (jl)
Kermit                     (ksc)
Korn Shell                 (ksh)
Kotlin                     (kt, kts)
LESS                       (less)
lex                        (l)
LFE                        (lfe)
liquid                     (liquid)
Lisp                       (asd, el, lisp, lsp, cl, jl)
Literate Idris             (lidr)
LiveLink OScript           (oscript)
Logtalk                    (lgt, logtalk)
Lua                        (lua)
m4                         (ac, m4)
make                       (am, gnumakefile, Gnumakefile, makefile, Makefile, mk)
Mako                       (mako)
Markdown                   (md)
Mathematica                (mt, wl, wlt, m)
MATLAB                     (m)
Maven                      (pom, pom.xml)
Modula3                    (i3, ig, m3, mg)
MSBuild script             (csproj, vbproj, vcproj, wdproj, wixproj)
MUMPS                      (mps, m)
Mustache                   (mustache)
MXML                       (mxml)
NAnt script                (build)
NASTRAN DMAP               (dmap)
Nemerle                    (n)
Nim                        (nim)
Objective C                (m)
Objective C++              (mm)
OCaml                      (ml, mli, mll, mly)
OpenCL                     (cl)
Oracle Forms               (fmt)
Oracle Reports             (rex)
Pascal                     (dpr, p, pas)
Pascal/Puppet              (pp)
Patran Command Language    (pcl, ses)
Perl                       (perl, plh, plx, pm, pm6, pl)
PHP                        (php, php3, php4, php5, phtml)
PHP/Pascal                 (inc)
Pig Latin                  (pig)
PL/I                       (pl1)
PO File                    (po)
PowerBuilder               (sra, srf, srm, srs, sru, srw)
PowerShell                 (ps1, psd1, psm1)
Prolog                     (P, pl, pro)
Protocol Buffers           (proto)
Pug                        (pug)
PureScript                 (purs)
Python                     (py)
QML                        (qml)
Qt                         (ui)
Qt Linguist                (ts)
Qt Project                 (pro)
R                          (r, R)
Racket                     (rkt, rktl, scrbl)
RapydScript                (pyj)
Razor                      (cshtml)
Rexx                       (rexx)
RobotFramework             (robot, tsv)
Ruby                       (rake, rb)
Ruby HTML                  (rhtml)
Rust                       (rs)
SAS                        (sas)
Sass                       (sass, scss)
Scala                      (scala)
Scheme                     (sc, sch, scm, sld, sls, ss)
sed                        (sed)
SKILL                      (il)
SKILL++                    (ils)
Slice                      (ice)
Slim                       (slim)
Smalltalk                  (st, cs)
Smarty                     (smarty, tpl)
Softbridge Basic           (sbl, SBL)
Solidity                   (sol)
Specman e                  (e)
SQL                        (psql, sql, SQL)
SQL Data                   (data.sql)
SQL Stored Procedure       (spc.sql, spoc.sql, sproc.sql, udf.sql)
Standard ML                (fun, sig, sml)
Stata                      (DO, do)
Stylus                     (styl)
Swift                      (swift)
Tcl/Tk                     (itk, tcl, tk)
Teamcenter met             (met)
Teamcenter mth             (mth)
TeX                        (bst, dtx, sty, tex)
TITAN Project File Information (tpd)
Titanium Style Sheet       (tss)
TOML                       (toml)
TTCN                       (ttcn, ttcn2, ttcn3, ttcnpp)
Twig                       (twig)
TypeScript                 (tsx, ts)
Unity-Prefab               (mat, prefab)
Vala                       (vala)
Vala Header                (vapi)
Velocity Template Language (vm)
Verilog-SystemVerilog      (sv, svh, v)
VHDL                       (vhd, VHD, vhdl, VHDL)
vim script                 (vim)
Visual Basic               (bas, cls, ctl, dsr, frm, vb, VB, vba, VBA, VBS, vbs)
Visual Fox Pro             (SCA, sca)
Visualforce Component      (component)
Visualforce Page           (page)
Vuejs Component            (vue)
Windows Message File       (mc)
Windows Module Definition  (def)
Windows Resource File      (rc, rc2)
WiX include                (wxi)
WiX source                 (wxs)
WiX string localization    (wxl)
XAML                       (xaml)
xBase                      (prg)
xBase Header               (ch)
XHTML                      (xhtml)
XMI                        (XMI, xmi)
XML                        (xml, XML)
XQuery                     (xq, xquery)
XSD                        (xsd, XSD)
XSLT                       (XSL, xsl, XSLT, xslt)
yacc                       (y)
YAML                       (yaml, yml)
zsh                        (zsh)
 


If we analize the last release (6.3.1) of the Titan executor with it:

perl cloc-1.74.pl titan.core-6.3.1.zip
    9106 text files.
    8440 unique files.                                          
Complex regular subexpression recursion limit (32766) exceeded at cloc-1.74.pl line 9619.
    1647 files ignored.

github.com/AlDanial/cloc v 1.74  T=23.74 s (314.1 files/s, 44001.4 lines/s)
---------------------------------------------------------------------------------
Language                                  files          blank        comment           code
---------------------------------------------------------------------------------
TTCN                                       4723          64945         130610         250312
C++                                         224          15973          14541         194420
XSD                                         613           7307           2920          47865
C                                            53           4088           6579          42850
C/C++ Header                                259           6773          15187          35793
TITAN Project File Information              521           1086           7640          30050
HTML                                        214            271           2693          26158
Bourne Shell                                 64           3623           4308          23111
yacc                                         11           2637           1777          21857
make                                        389           6258           8827          13624
m4                                            3            953            107           8064
lex                                          17           1165            920           7270
JSON                                          9              0              0           7062
XML                                         257             62            622           5190
Java                                         45            855           2435           4849
Perl                                         21            484            903           3816
Python                                        7            185            657           2789
TeX                                           2            152             55            757
Bourne Again Shell                           17             81             17            324
PHP                                           3              7              5            257
Markdown                                      2             66              0            202
Ant                                           2              2             20            186
XSLT                                          2             14             22            119
CSS                                           1              8              0             38
---------------------------------------------------------------------------------
SUM:                                       7459         116995         200845         726963
---------------------------------------------------------------------------------
 



we can see that it contains mainly C++ with a (maybe) surprising amount of TTCN-3 code.
The latter is being used to run a range of tests within the continuous integration flow of Titan:
regression, conformance, function, performance etc. More about this later.



The similar stats for the Eclipse plug-ins show a dominance of Java, as it could be expected:
perl cloc-1.74.pl titan.EclipsePlug-ins-6.3.0.zip
    2978 text files.
    2929 unique files.                                          
     236 files ignored.

github.com/AlDanial/cloc v 1.74  T=13.03 s (210.4 files/s, 41867.2 lines/s)
---------------------------------------------------------------------------------
Language                                  files          blank        comment           code
---------------------------------------------------------------------------------
Java                                       2156          54523          73061         317350
TTCN                                        142           3858           4307          38761
TITAN Project File Information              338            911           3506          20397
ANTLR Grammar                                14           1528            687          15407
XML                                          36            423            460           5393
HTML                                         35            146              1           2948
XSD                                           2             24             35            522
CSS                                           2             18              0            217
Perl                                          2             29             82            154
C++                                           2             46             32            136
XSLT                                          3             19             18             88
Ant                                           1              6              8             64
C/C++ Header                                  2             23             32             48
Bourne Shell                                  3             12             41             40
INI                                           1              9              0             28
make                                          2             14             31             22
Markdown                                      1             15              0             20
---------------------------------------------------------------------------------
SUM:                                       2742          61604          82301         401595
---------------------------------------------------------------------------------
 


Note that these are per repository statistics, and as such cannot be compared with openhub results as those are for the whole
project.


Best regards
Elemer




  • Attachment: Commits.png
    (Size: 50.07KB, Downloaded 199 times)
  • Attachment: Code.png
    (Size: 25.08KB, Downloaded 237 times)

[Updated on: Fri, 19 January 2018 16:39]

Report message to a moderator

Previous Topic:Debug: Using the value of an optional field containing omit
Next Topic:Avoiding all initialization at every test case
Goto Forum:
  


Current Time: Wed Sep 26 01:29:01 GMT 2018

Powered by FUDForum. Page generated in 0.25737 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top