[codeface] Re: Bugfixes and copyright header cleanups

  • From: Wolfgang Mauerer <wolfgang.mauerer@xxxxxxxxxxxxxxxxx>
  • To: Claus Hunsen <hunsen@xxxxxxxxxxxxxxxxx>, <codeface@xxxxxxxxxxxxx>, <rqueiroz@xxxxxxxxxxxxxxxx>, Mitchell Joblin <joblin.m@xxxxxxxxx>
  • Date: Fri, 24 Jun 2016 00:17:03 +0200

Am 23/06/2016 um 18:27 schrieb Claus Hunsen:

Am 23.06.2016 um 17:00 schrieb Wolfgang Mauerer:
Am 23/06/2016 um 16:25 schrieb Claus Hunsen:
Hi everybody,

some words from my side regarding the feature analysis. This part of
Codeface heavily depends on cppstats which should be install properly in
the provision phase of Vagrant. But, I am sure this is where your
problem is located: If cppstats does not work properly, all calls to
cppstats consequently fail and no features are found.

There is basically one thing for cppstats that needs to be ensured:
Codeface installs cppstats and also its dependency on srcML
(http://srcml.org) for Ubuntu *precise*. [1] If you move to another
system (trusty or xenial), you also need to move srcML in the proper
version from here: http://131.123.42.38/lmcrs/ ;(not the beta!)

If there are no binaries for your environment available on the download
site, you can build it from source or install the binaries of the system
release before yours (e.g., use the trusty release on xenial). Be sure
that all dynamically-linked libraries of srcML are installed on your
system. You can get those by calling "ldd /path/to/srcml-binary" (where
the binaries are "src2srcml" and "srcml2src"). Install anything that is
missing.

If this does not fix the problems for you, please contact me.

thanks for pointing out that cppstats has this sort of "silent" failure
mode. I just saw that the distributed srcML binaries are 32 bit; we use
a 64 bit distro, though. Since no 32 bit compatibility layer is
installed on our vagrant setup, the binary won't run at all.

I have a 64bit binary in my Vagrant machine and there are also 64bit
binaries on the website I linked (look for "-64.tar.gz"). And in the
integration script of Codeface, the right version is downloaded.

right, there's a 64 bit binary provided. Obviously staring at
provisioning output for too long causes temporary visual parsing
problems on my side.

I guess if things work after building srcML from source (I'll give
this a try asap), I need to submit a request to the cppstats
maintainers to make this failure channel explicit ;)

If you can spare a student to implement stuff for cppstats...
well played :) There should be a cppstats app. Apps make topics
attractive for students these days.

Furthermore, there are also a bunch of things caught by Codeface and
silently ignored. Additionally, if cppstats calls a non-existing srcML
binary, it breaks completely. Consequently, the error is ignored on the
Codeface side. ;)

Aborting codeface runs as early as possible when infrastructure
SW is broken/incorrectly installed/not properly started is something
I've had on my TODO list for a long while anyway. Does cppstats have any
switch or so that we could use to check for a correct installation?
Then we could add such a check to the beginning of a codeface run, and
abort early and explicitly if things fail.

Anyway, combing back to the original problem: I've updated branch
for-upstream to work with both, Ubuntu 16.04 and 14.04 as base
distributions. With the proper srcML binaries, the previously failing
feature unit tests do work again. There are still some issues with
travis, but these should be solved soon.

@Rodrigo: Can you please check if branch for-upstream solves your
current issues?

Thanks, Wolfgang

Other related posts: