[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)


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

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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]