An ag(e)ing hacker, Luca Saiu's blog
2012-08-29 23:33 (last update: 2012-09-16 13:38) Luca Saiu

Meta-update and GNU epsilon news

This little diary of mine needed some love.

A good excuse to motivate myself to write more often comes from the idea of syndication in the GNU Planet (http://planet.gnu.org); to make that possible without adding off-topic stuff to the GNU site I’ve recently improved trivalblog to also support per-tag RSS and Atom feeds — the idea being, of course, to have only posts explicitly tagged as “gnu” linked from the planet.

My little blog system is described in The trivialblog software (https://blog.ageinghacker.net/posts/2). It’s just a quick unpolished hack with no documentation built upon bash and Texinfo, but I find it useful nonetheless. In case you’re interested you can get it from its bzr repo:

bzr branch http://ageinghacker.net/repos/trivialblog/

GNU epsilon

Speaking of experimental software, after working on a private repo for a long time I’ve finally pushed the GNU epsilon sources to Savannah: http://savannah.gnu.org/projects/epsilon. The software is definitely not for the faint of heart in its current state, but fellow Lispers and language jocks might already have some fun with it.

bzr branch bzr://bzr.savannah.gnu.org/epsilon/trunk/

I hadn’t make any public announcement before. I created the public branch on Savannah right before my impromptu epsilon talk at the recent Düsseldorf GHM (http://www.gnu.org/ghm/2012/ddorf), showing it to the people who were physically present. Now you know it’s there as well: play with it if you want, and please let me know if you have any constructive comments.

I plan to use this space to speak informally about my practical epsilon hacks, so that people can see how things are done in practice. Or just me hearing myself speak if you will, which is useful anyway to gauge the presentation style. Think of this as a preliminary form of hands-on documentation, before the software is stable enough for me to start writing the real Texinfo documentation.

My forthcoming PhD thesis will also be useful for understanding epsilon, including its philosophical rationale. Unfortunately the document has not ended up as universally accessible as I would have liked. I suppose there isn’t much I can do: the system is simple but not trivial, and some formalism is ultimately necessary. I hope the non-mathematical part will be of interest to a broader public.

epsilon is a very, very small language. But it’s surprisingly hard to introduce informally because of its idiosyncratic nature, which needs many preliminary explanations.

My short-term to-do list for epsilon contains a lot of fun items:

  • implement an s-expression frontend, so that I don’t depend on Guile any longer. I’m not sure if my old s-expression frontend written in ML is worth translating and adapting;
  • implement ML-style pattern-matching;
  • implement a faster runtime not relying on Guile SMOBs, with unboxed fixnums;
  • implement a yet faster runtime with no boxedness tags;
  • finish my quick-n-dirty bytecode compiler;
  • implement a quick-n-dirty native compiler, by generating MIPS and x86_64 assembly from the bytecode form. I think that this naïve version might already be faster than slow bytecode engines, such as CPython;
  • optimize free variable computation by avoiding the quadratic algorithm representing variable sets as lists;
  • clean up my CPS transform; even better, trash it and just implement delimited continuations instead;
  • implement library functions for fixed-point rationals, including I/O;
  • implement buffered input and output — I can translate my ML prototype if needed;
  • integrate my parallel mark-sweep BiBOP garbage collector;
  • make the garbage collector generational, by adapting the semispace collector into a young generation and the parallel mark-sweep BiBOP thing into an old generation;
  • general-purpose expression optimizer by term rewriting.

In some unspecified order.

— Luca Saiu, 2012-08-29 23:33 (last update: 2012-09-16 13:38)

Tags:
english, epsilon, gnu, hacking, meta

Next post Previous post

You might want to go to the main blog index (Atom feedfeeds for every post: Atom 1.0, RSS 2.0) or to my web site https://ageinghacker.net.

[my photo]
Luca Saiu

The opinions I express here are my own and do not necessarily reflect the beliefs or policies of my employer or for that matter of anyone else. In case you felt that the public statement of my thoughts threatened your warm sense of security and your emotional stability feel free to leave at any time.
The system does not support user comments and probably never will. Anyway you can contact me if you want to discuss some topic with me. I might update my posts if you provide interesting insights.

You might be interested in my web site https://ageinghacker.net.


Copyright © 2009, 2011-2014, 2017, 2018, 2021-2024 Luca Saiu
Verbatim copying and redistribution of this entire page are permitted in any medium without royalties, provided this notice is preserved.
This page was generated by
trivialblog. trivialblog is free software, available under the GNU GPL.
Tag icon copyright information is available in this file.