[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
wip-rtl status
From: |
Andy Wingo |
Subject: |
wip-rtl status |
Date: |
Sun, 03 Jun 2012 23:41:04 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) |
Hi,
A brief status update on wip-rtl. If this means nothing to you, just
skip this mail; at some point in the future there will be more
information.
I started to look at static constant allocation. In order to do so I
needed an object format that could link together different sections with
different permissions and alignments, so I imported an old ELF branch I
had hanging around, and adapted it to work with wip-rtl. Now the
interface is that you make an assembler, emit some programs, then link,
resulting in a list of ELF objects. You then link-elf to produce a
bytevector, which can be written to disk, then loaded with
load-thunk-from-disk from (system vm objcode). You can also load via
load-thunk-from-memory, which takes a bytevector. In that case you
might want to skip alignment and permissions and just operate on
read-write memory, so there is the #:page-aligned? kwarg to link-elf for
that situation.
Instructions that take constants take them literally. The various
emit-foo procedures will add the constant to a table if necessary, and
link-objects will serialize a constant table if necessary. Not sure if
this is being too clever or not.
Currently there are a couple of broken bits. One is that we don't
currently write an init thunk, to fix up the car and cdr links in static
pairs, for example. Also a lot of it is untested. But we needed the
loader facility so that we could actually write tests, so hopefully
things will come together.
Anyway, the hack is ongoing, if a bit sporadic. Hopefully we'll be able
to start compiling some Scheme shortly.
Cheers,
Andy
--
http://wingolog.org/
- wip-rtl status,
Andy Wingo <=