The big news is that Perl 6 has grammars. Copying something that OCaml (camlp4) has had for over a decade. Arguably influenced by LISP which has had non-grammatical macros for decades. Being able to modify the grammar of a language is fantastic: see the bitmatch and micmatch projects. Welcome to the party, Perl 6 users. I wonder if one day we’ll see type inference, phantom types, the ability to get close to the metal, real GC, etc etc?
Tag Archives: camlp4
If you were to take a fresh Fedora 10 machine and
yum install ocaml-camlp4-devel, you’d need a minimum of 404 MB (I mean, including things like glibc and the filesystem and everything else that camlp4 ultimately depends on). Where does the space go?
Click to enlarge
If you look at the top of the enlarged diagram, you can see that
ocaml-camlp4-devel is not a tiny package, consuming 33 MB just for itself. The packages below it,
glibc are ordered by the greatest to smallest total size (size inc. all dependencies) left to right. But the width shown is the incremental size, roughly speaking meaning if we got rid of that package, how much would we save.
We can see the
ocaml-runtime pulls in
util-linux-ng which has a huge chain of requirements (including python, interestingly). So one area to look at would be whether that dependency can be removed or narrowed down.
If you mouse-over a particular package, the colours change to show “parent packages” (above us, so sky blue), and dependent packages (below us, so grassy green):
Click to enlarge
There are still many ways to improve this viewer. I’m now out of time on this little project, but there is a git repository (kindly supplied by Red Hat / Jim Meyering) so if you want to hack away and supply patches, please send them. If you analyzed your own RPMs, let us know in the comments.