M4

Patrick Premont premont@cs.toronto.edu
Sat, 20 Jan 1996 07:31:39 -0500


I've looked briefly at the Tunes M4 source that has been writen.
Not understanding a thing, I had to lookup an intro to M4.

My god (if I had one), what a mess !

I can see that it gets the job done but it looks to me like the kind
of language you hope you'll never have to learn and use.

Why use a preprocessor at all ? Why not use something clean and
powerfull like Scheme ? We could build an internal representation for
assembly instructions and a function to print it out into an assembly
file. Then we'd be able to do more sophiticated things with ease.
Of course it wouldn't look the same :

(define (bswaperx reg)
  (list (list 'xchg (low reg) (high reg))
        (list 'rol  (ext reg) 16)
        (list 'xchg (low reg) (high reg))))

OK, its not as compact but there is no syntactic trick involved.
I have to admit that M4 is probably more efficient if one knows it well.
And it's too late switch anyway.

Could it be that Fare is the only one coding and understanding the
code because no one else knows M4 ?

Will programming Tunes consist of writing assembly language programs with
M4 for a while or is there a switch to something else coming soon ?

I shouldn't be bothering you with this anyway since I don't have much
expertise to contribute for this low-level stuff.

I just hope I can understand the M4 source sufficiently to be able to
contribute when it gets a little less hardware specific.

I started this message with a clear point but now it's not so clear.
Anyway, comments ?

Patrick