jemarch is currently certified at Master level.

Name: Jose E. Marchesi
Member since: 2002-12-02 10:14:51
Last Login: 2012-02-19 12:32:45

FOAF RDF Share This

Homepage: http://www.jemarch.net

Notes:

Hello, I am a GNU Hacker.

Projects

Recent blog entries by jemarch

Syndication: RSS 2.0
19 Feb 2012 (updated 19 Feb 2012 at 12:32 UTC) »
GNU recutils introductory talk video

The FSCONS people recently uploaded the video recordings of the talks which were done in the last edition. Among these there is a GNU recutils talk which introduces the concepts implemented by recutils and provides an overview of the rec format and the utilities.

As a novelty, this is the first recording of a recutils introductory talk where you can actually read what is written in the slides :)

Also make sure to take a look to the other videos! Lots of interesting stuff, as is usual in the FSCONS conference.

I am happy to announce the first release of the GNU recutils, version 1.0.

The release can be found in the GNU ftp: ftp://ftp.gnu.org/gnu/recutils/recutils-1.0.tar.gz

Alternatively, http://ftpmirror.gnu.org/recutils/ will automatically redirect to a nearby mirror.

GNU recutils is a set of tools and libraries to access human-editable, text-based databases called recfiles. The data is stored as a sequence of records, each record containing an arbitrary number of named fields. Advanced capabilities usually found in other data storage systems are supported by GNU recutils: data types, data integrity (keys, mandatory fields, etc) as well as the ability of records to refer to other records (sort of foreign keys). Despite its simplicity, recfiles can be used to store medium-sized databases.

Please see the GNU recutils homepage for more information: http://www.gnu.org/software/recutils.

The GNU recutils suite comprises:

  • A texinfo manual, describing the Rec format and the accompaying software.
  • A C library (librec) that provides a rich set of functions to manipulate rec data.
  • A set of C utilities that can be used in shell scripts and in the command line to operate on rec files:

    • recinf prints information about the contents of recfiles.
    • recsel prints records and field values.
    • recins adds new records to a recfile.
    • recdel deletes records.
    • recset manipulates fields.
    • recfix checks and fixes recfiles.
    • csv2rec converts comma-separated-values files to recfiles.
    • mdb2rec converts mdb files (used by MS-Access) to recfiles.
  • rec-mode.el - An emacs mode to edit and navigate recfiles. Still experimental.

I am happy to introduce a new GNU package: GNU Recutils.

GNU Recutils is a set of tools and libraries to access simple human-editable, text-based databases called recfiles. recfiles contain data structured as a sequence of records, and support data integrity as well as the ability of record fields to refer to other records.

Despite its simplicity, recfiles can be used to store medium-sized databases that you can either edit with your favorite text editor (i.e. Emacs) or access with automated scripts using the recutils.

The GNU recutils suite comprises:

  • A Texinfo manual describing the Rec format and the software.
  • A C library (librec) providing a rich set of functions to access rec files.
  • A set of C utilities (recinf, recset, recins, recdel, recset and recfix) that can be used in shell scripts and in the command line to operate on rec files.
  • An Emacs mode (rec-mode).

The current status of the package is:

  • The library is implemented.
  • The utilities are implemented.
  • The manual needs some more work.
  • The Emacs mode needs more work.

Before to make the first release we have to fix the manual and to complete the rec-mode Emacs mode, as well as to implement support for internationalization (with gettext) in both the library and the utilities.

Both the Savannah project (http://savannah.gnu.org/projects/recutils) and the homepage (http://www.gnu.org/software/recutils) are in place now.

If you are interested in collaborating in the development of recutils, please write to the development mailing list: http://lists.gnu.org/mailman/listinfo/bug-recutils.

Note that we are not only interested in people contributing with code, but also with ideas and documentation. The rec format is young and is suitable to all kind of improvements.

Static code analysis with Clang

The Clang Static Analyzer is a program that uses the llvm compiler to perform static code analysis in C and objective-C programs.

A very nice feature of this analyzer is that it is not intrusive with the development procedures of our packages. It does not require the maintainer to implement any extra logic in the build system. A provided 'scan-build' script is able to "intercept" the calls to the GNU compiler on source files, and internally invokes the analyzer.

For example:

$ scan-build -o DIR gcc -o foo foo.c

executes the compilation command to build 'foo' and then runs the static analyzer in the foo.c source file. An html report containing the results of the analysis is created in the directory 'DIR'. The report is generated only if some bug is detected. The generated html report is quite readable, clearly marking the execution paths leading to errors.

The parameter to 'scan-build' can be any command, so in order to analyze the code of a typical GNU package we could launch:

$ scan-build -o DIR ./autogen.sh
$ scan-build -o DIR ./configure
$ scan-build -o DIR make

Regarding the supported static analysis checks, they include the detection of dereference of null pointers, identification of dead code, detection of useless assignments, unused return values, etc.

As an example you can take a look to the report generated from the analysis of the GNU PDF library here. The report is automatically generated in a daily period as part of our effort in continuous integration (there are pointers to more generated reports in the "Quality" section of the library development page if you are interested).

You can find another example of a generated report, this time for libxml2, here.

Many thanks to Jim Meyering for pointing out the existence of this analyzer. He said: ''If you're not using its "scan-build" tool, then start. Right now. Really. It's that good.''

I absolutely agree with him :)

Syndicated 2009-09-08 01:00:00 from Web Log

Static code analysis with Clang

The Clang Static Analyzer is a program that uses the llvm compiler to perform static code analysis in C and objective-C programs.

A very nice feature of this analyzer is that it is not intrusive with the development procedures of our packages. It does not require the maintainer to implement any extra logic in the build system. A provided 'scan-build' script is able to "intercept" the calls to the GNU compiler on source files, and internally invokes the analyzer.

For example:

$ scan-build -o DIR gcc -o foo foo.c

executes the compilation command to build 'foo' and then runs the static analyzer in the foo.c source file. An html report containing the results of the analysis is created in the directory 'DIR'. The report is generated only if some bug is detected. The generated html report is quite readable, clearly marking the execution paths leading to errors.

The parameter to 'scan-build' can be any command, so in order to analyze the code of a typical GNU package we could launch:

$ scan-build -o DIR ./autogen.sh
$ scan-build -o DIR ./configure
$ scan-build -o DIR make

Regarding the supported static analysis checks, they include the detection of dereference of null pointers, identification of dead code, detection of useless assignments, unused return values, etc.

As an example you can take a look to the report generated from the analysis of the GNU PDF library here. The report is automatically generated in a daily period as part of our effort in continuous integration (there are pointers to more generated reports in the "Quality" section of the library development page if you are interested).

You can find another example of a generated report, this time for libxml2, here.

Many thanks to Jim Meyering for pointing out the existence of this analyzer. He said: ''If you're not using its "scan-build" tool, then start. Right now. Really. It's that good.''

I absolutely agree with him :)

Syndicated 2009-09-08 00:00:00 from Main Page

7 older entries...

 

jemarch certified others as follows:

  • jemarch certified jemarch as Journeyer
  • jemarch certified rms as Master
  • jemarch certified alejandro as Journeyer
  • jemarch certified hgayosso as Journeyer
  • jemarch certified villate as Journeyer
  • jemarch certified loic as Master
  • jemarch certified jbailey as Journeyer
  • jemarch certified Jordi as Journeyer
  • jemarch certified lilo as Journeyer
  • jemarch certified deego as Journeyer
  • jemarch certified StephanPeijnik as Journeyer
  • jemarch certified dak as Master
  • jemarch certified karlberry as Master
  • jemarch certified rillian as Master
  • jemarch certified jjamor as Journeyer
  • jemarch certified alo as Journeyer
  • jemarch certified clausen as Journeyer
  • jemarch certified greve as Journeyer
  • jemarch certified alvaro as Journeyer
  • jemarch certified rvr as Journeyer
  • jemarch certified jgb as Journeyer
  • jemarch certified atai as Journeyer
  • jemarch certified mattl as Journeyer
  • jemarch certified rufius as Journeyer
  • jemarch certified wingo as Master

Others have certified jemarch as follows:

  • jemarch certified jemarch as Journeyer
  • alejandro certified jemarch as Journeyer
  • StephanPeijnik certified jemarch as Journeyer
  • olea certified jemarch as Apprentice
  • rillian certified jemarch as Master
  • rufius certified jemarch as Master
  • werner certified jemarch as Master

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

X
Share this page