[gambit-list] How access arbitrary memory addresses (r/w)?

Mikael More mikael.more at gmail.com
Thu Aug 9 16:03:11 EDT 2012


Ah, I just realized:

In order for ##sysmem-byteref  and  ##sysmem-byte-set!  to be implementable
as single CPU instruction operations, the pointer argument must be required
to be fixnum only.

This is really fine.

2012/8/9 Alex Queiroz <asandroq at gmail.com>
>
> This is not really Scheme, it is C, which can be done via a very short
> C extension.
>

Well, it can certainly be Scheme if you want it to be Scheme, and I'm at a
point where I really want this to be Scheme.

I don't want it to be a C extension, at least not in the ordinary sense
where there's some kind of FFI barrier between the Scheme and C code, that
at least makes a C function call out of the operation and thus adds a CALL
addr and a RET (= 2 ops!) to the MOV sth,[sth] op. Also, I'd happy that the
compiler would inline this when in compiled mode by itself, just like it
does with ##u8vector-ref/set!.

I.e., I just want direct, unprotected access straight to the RAM at the
CPU's ordinary speed for it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.iro.umontreal.ca/pipermail/gambit-list/attachments/20120809/0830d142/attachment.htm>


More information about the Gambit-list mailing list