Michael Weber: Random Bits and Pieces

We recently released a new tool (LTSmin) which caused me to spend two days in autohell, the Hell (with capital "H") induced by autotools.

Raaah!!1¡! Why does this still SUCK SO MUCH?

If only Unices would have shipped with an interpreter for a sensible language instead of shell scripts, then I would not have to write macros for basic language constructs (why hasn't anybody else?!):


# SYNOPSIS
#
#   AX_LET([VAR1],[EXPR1],
#          [VAR2],[EXPR2],...
#     [...])
#
m4_define([AX_LET_counter_],0)
m4_define([AX_LET_AUX], [dnl
m4_if([$#], 2, [$1
$2], [dnl
ax_let_$2_[]AX_LET_counter_[]_tmp_=$3
AX_LET_AUX([m4_if([$1],[],[],[$1
])dnl
ax_let_$2_[]AX_LET_counter_="[$]$2"
$2="[$]ax_let_$2_[]AX_LET_counter_[]_tmp_"], m4_shiftn(3,$@))
$2="[$]ax_let_$2_[]AX_LET_counter_"])])dnl

AC_DEFUN([AX_LET],
[m4_define([AX_LET_counter_], m4_incr(AX_LET_counter_))dnl
# AX_LET
AX_LET_AUX([],$@)])

That is all. Also, another proof that you can write Lisp in any language.

UPDATE 2008-11-07: Post Scriptum

…and don't get me started on the umpteen ways to make gcc compile with pthreads on different platforms, or what will happen when you want to combine pthreads with MPI on AIX (think cc_r vs. mpicc). Thankfully, it is unlikely that we have to support AIX anytime soon.

…or that developers appear to assume you can mix options and file arguments in the rm command. Which MacOS X's rm does not support.

LTSmin 1.0 has been released, a tool set for the minimization of large labelled transition systems (LTS) on compute clusters.

Precursors of LTSmin have been used in various case studies, see also:

Stefan Blom, Jens R. Calame, Bert Lisser, Simona Orzan, Jun Pang, Jaco van de Pol, Muhammad Torabi Dashti, Anton Wijs: Distributed Analysis with muCRL: A Compendium of Case Studies. TACAS 2007: 683–689

The main tool in this release is ltsmin-mpi, a distributed implementation of signature-based bisimulation reduction for strong bisimulation and branching bisimulation.

The source code, detailed installation instructions and manuals are available online:

http://fmt.cs.utwente.nl/tools/ltsmin/

LTSmin is currently being developed by the Formal Methods and Tools group at the University of Twente, The Netherlands.