View on GitHub

iMatix Base

An archive and tribute to the iMatix Corporation base tooling.

Download this project as a .zip file Download this project as a tar.gz file

Welcome!

11 Feb 2019 - cookrn

I’ve long been inspired by Pieter Hintjens and his work and am finally creating an artifact of that admiration. There’s a lot to be learned as the tools focus on:

To start, we’ll dive into two different repositories: GSL and OpenAMQ. As both are archived, they have been forked to repositories under cookrn as well: GSL and OpenAMQ.

We’re interested in getting these tools compile such that they’re usable and render their help messages and such (assuming their command line tools). Let’s begin by make-ing some things and see if they build! Inside of OpenAMQ, in the directory named tooling/base2, when I run make, I see the following:

cookrn@hyperion:~/workspace/hintjens/openamq/tooling/base2$ make
cd xnf; if test -f Makefile; then make ; fi
cd icl; if test -f Makefile; then make ; fi
make[1]: Entering directory '/home/cookrn/workspace/hintjens/openamq/tooling/base2/icl'
c -q icl_mutex.c
make[1]: c: Command not found
Makefile:55: recipe for target 'icl_mutex.o' failed
make[1]: *** [icl_mutex.o] Error 127
make[1]: Leaving directory '/home/cookrn/workspace/hintjens/openamq/tooling/base2/icl'
Makefile:38: recipe for target 'all' failed
make: *** [all] Error 2

The most relevant line I notice is make[1]: c: Command not found. So, where do we get c?

cookrn@hyperion:~/workspace/hintjens$ find . -name "c"
./gsl/pcre/c
./gsl/src/c
./openamq/tooling/foreign/c
./openamq/tooling/foreign/c/c

Looks like we have a few options… Before we move forward though, let’s talk about why I started in openamq/tooling/base2. One of my primary interests is around XNF , or XML Normal Form, which is a meta code generator or a generator which generates generators. XNF was a tool fitting what Hintjens and iMatix called Model Oriented Programming and you can find articles here about how this style was thought about. Sadly, the MOP articles are incomplete and, as far as I can tell, XNF source is only published in base2 inside of OpenAMQ.

That’s good enough for today :D