<stránka
xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana"
xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro">
<nadpis>Release v0.12</nadpis>
<perex>fifth public release of Relational pipes</perex>
<m:release>v0.12</m:release>
<text xmlns="http://www.w3.org/1999/xhtml">
<p>
We are pleased to introduce you the new development version of <m:name/>.
This release brings AWK support and some smaller changes:
</p>
<ul>
<li>
<strong>AWK transformations</strong>:
now it is possible to write transformations using the classic AWK tool and its language.
Relational data can be filtered and modified (incuding additions of new records) or any AWK code can be executed for given relation or records.
Structural changes are also possible (adding or removing attributes or dropping relations).
The command line syntax is mostly the same as for the Guile transformation.
The AWK and Guile transformations are now the most powerful ones in the Relpipe world.
</li>
<li>
<strong>AWK and Guile transformations</strong>:
option <code>--debug-variable-mapping</code> was added, so it is possible to print mappings (in relational format, of course)
between relational attributes and AWK or Guile variables.
The mapping is needed because not all valid attribute names are also valid variable names in particular language,
thus sometimes some escaping or prefixing is necessary.
</li>
</ul>
<p>
See the <m:a href="examples">examples</m:a> and <m:a href="screenshots">screenshots</m:a> pages for details.
</p>
<p>
Please note that this is still a development relasease and thus the API (libraries, CLI arguments, formats) might and will change.
Any suggestions, ideas and bug reports are welcome in our <m:a href="contact">mailing list</m:a>.
</p>
<h3>Data types</h3>
<ul>
<li m:since="v0.8">boolean</li>
<li m:since="v0.8">variable unsigned integer (prototype)</li>
<li m:since="v0.8">string in UTF-8</li>
</ul>
<h3>Inputs</h3>
<ul>
<li m:since="v0.11">Recfile</li>
<li m:since="v0.9">XML</li>
<li m:since="v0.9">CSV</li>
<li m:since="v0.9">file system</li>
<li m:since="v0.8">CLI</li>
<li m:since="v0.8">fstab</li>
</ul>
<h3>Transformations</h3>
<ul>
<li m:since="v0.12">awk: filtering and transformations using the classic AWK tool and language</li>
<li m:since="v0.10">guile: filtering and transformations defined in the Scheme language using GNU Guile</li>
<li m:since="v0.8">grep: regular expression filter, removes unwanted records from the relation</li>
<li m:since="v0.8">cut: regular expression attribute cutter (removes or duplicates attributes and can also DROP whole relation)</li>
<li m:since="v0.8">sed: regular expression replacer</li>
<li m:since="v0.8">validator: just a pass-through filter that crashes on invalid data</li>
<li m:since="v0.8">python: highly experimental</li>
</ul>
<h3>Outputs</h3>
<ul>
<li m:since="v0.11">ASN.1 BER</li>
<li m:since="v0.11">Recfile</li>
<li m:since="v0.9">CSV</li>
<li m:since="v0.8">tabular</li>
<li m:since="v0.8">XML</li>
<li m:since="v0.8">nullbyte</li>
<li m:since="v0.8">GUI in Qt</li>
<li m:since="v0.8">ODS (LibreOffice)</li>
</ul>
<p>
Instalation was tested on Debian GNU/Linux 9.6.
The process should be similar on other distributions.
</p>
<m:pre src="examples/release-v0.12.sh" jazyk="bash" odkaz="ano"/>
<p>
<m:name/> are modular thus you can download and install only parts you need (the libraries are needed always).
Tools <code>out-gui.qt</code> and <code>tr-python</code> require additional libraries and are not built by default.
</p>
<p>
The module <code>relpipe-in-filesystem</code> uses C++ filesystem API which is supported since GCC 8.
This module can be compiled and seems usable even with GCC 6, but requires some patching (switch to the experimental API):
</p>
<m:pre jazyk="bash"><![CDATA[sed 's@#include <filesystem>@#include <experimental/filesystem>@g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FileAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/XattrAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FilesystemCommand.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/AttributeFinder.h
sed 's@std::filesystem@std::experimental::filesystem@g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FileAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/XattrAttributeFinder.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/FilesystemCommand.h "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/AttributeFinder.h
sed 's/.*PROPERTY CXX_STANDARD.*/#\0/g' -i "$RELPIPE_SRC"/relpipe-in-filesystem.cpp/src/CMakeLists.txt]]></m:pre>
<p>
The module <code>relpipe-tr-guile</code> uses GNU Guile 2.2 but can also work with 2.0.
In such case, it requires this patch:
</p>
<m:pre jazyk="bash"><![CDATA[sed 's/guile-2\.2/guile-2.0/g' -i "$RELPIPE_SRC"/relpipe-tr-guile.cpp/src/CMakeLists.txt]]></m:pre>
</text>
</stránka>