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.