[squeak-dev] [ANN] CorruptVM preview

Igor Stasenko siguctua at gmail.com
Wed Jul 2 00:05:43 UTC 2008


2008/7/2 Eliot Miranda <eliot.miranda at gmail.com>:
>
>
> This is the "mirrors" approach I alluded to.  The right approach is to
> implement the debugger with a mirror between it and the system it looks at.
>  There is a mirror for local debugging taht is fairly transparent.  then
> there is a mirror for the renoter system which is much more involved because
> it has to use peek and poke to examine the memory space of the target
> process and it has to extract meta information   from it (and in the
> presence of errors, e.g. the hard crash could have corrupted memory).
>

I have some ideas about it.
First: nobody prevents me to have image containing separate object
memories. Its only a question how to load and bootstrap it :)

Or, more specific: i think i will introduce the island model (or vats)
from the start.
So there will be a multiple islands (which can be possibly run in
parallel native threads), which don't share anything, or sharing a
protected memory region, writing to which is guarded by a lot of
checks and rules :)

Since there is nothing outside, which dictates me to have: single
heap, single GC, single object memory; it is possible to implement a
system, which could have different memory regions governed by
different memory managers and garbage collectors.

Then debugging looks much less scary than comparing to system crippled
by VM written in C :)

> Let me encourage you to think about this soon and work on it asap because it
> is a really important issue.  If you don't have a good debugging environment
> up front your progress will be slow.  No one has succeeded in bringing such
> a system for a Smalltalk-like language into production use yet (neither
> Klein nor TypedSmalltalk nor Exupery has made it to production use).  Making
> it happen would be fantastic.  You have the Spoon system to build upon.
>

Absolutely, a system without good means of debugging can't progress
fast (and its mainly just a useless artifact for serious deployment).
I'm concerned that amount of debug information to be added to method
would hit hard the memory consumption.

> You have to both provide a Smalltalk-level debugger and a machine code
> debugger which can display machine instructions, registers and memory.  It
> would be nice to be able to reuse disassemblers et al from other components
> but you might find that Smalltalk implementations are quicker to write and
> easier to understand and use.  But you will need them.
>

Heh.. right, but it would take ages :)
A teamwork is what is needed. I looking for a people who may want to
join crusade for the ultimate smalltalk self-sustaining system
implementation :)

-- 
Best regards,
Igor Stasenko AKA sig.



More information about the Squeak-dev mailing list