on GUIs and such things

Shawn T. Rutledge rutledge@cx47646-a.phnx1.az.home.com
Thu, 20 Jul 2000 23:41:08 -0700


On Thu, Jul 20, 2000 at 11:07:09PM -0400, Kragen Sitaker wrote:
> > > Palm-sized computers benefit from transparent persistence;
> > > unfortunately, transparent persistence might not interact well with
> > > ten-thousand-cycle flash RAM.  I'm not sure whether palm-sized
> > 
> > Well I think it's better to just leave the data in RAM all the time, 
> > rather than copy it back to something that's artifically designed to 
> > resemble "disk" space (FLASH).
> 
> Well, artificially designed to be nonvolatile, anyway.

What I meant was, artificially preserving the idea that data should
be copied from memory to disk before shutdown.  In some cases, even
making the FLASH look like a filesystem, emulating the cylinder/head/sector
addressing, etc.
> 
> >  This has been the approach of two
> > of the more successful ones (Newton and Palm).
> 
> What kind of RAM does the PalmPilot family use for "nonvolatile" data?
> DRAM?

I think all of the memory is nonvolatile.  There is FLASH for the
OS itself, but most programs and their data are in non-volatile
memory; I believe it's SRAM.  (There are also utilities to write
add-on programs to FLASH, to save some of the main memory.  This
aspect is a bit kludgy.)  The battery life probably wouldn't be
so good if a DRAM refresh circuit were running all the time.
> 
> > I think the big thing that 
> > stops the idea is the reliability of software.  Memory leaks and 
> > corruption are absolutely verboten when you aren't planning on 
> > starting your memory image over from scratch once in a while.
> 
> EROS' approach is to isolate corruption within a single domain and
> memory leaks within the children of a single spacebank.

That's good, but a leak is still a leak if you never shutdown the 
program and restart it, but just persist the entire running state.
Not that it's a bad idea, but it imposes more rigor on the quality
of the software.
> 
> > It would be best to exclusively use languages which prevent these problems.
> 
> Those languages have their own problems ;)

Performance?  the usual complaint.  What other problems?  (BTW when
I said "exclusively" I meant for user-level applications...not the OS)
> 
> Also, you can't entirely prevent memory leaks; if you don't overwrite
> unused pointers, you will still have them in Lisp or Java.

True enough.  But I don't think it happens much in practice.  And you
don't have to overwrite every unused pointer, just the top one which 
points to the entire substructure that is no longer needed.  Most 
objects belong to something which belongs to something which ... belongs
to a local variable in a method somewhere anyway.  When the method exits,
all the local variables and everything under them are garbage collected,
to the extent that none of the objects have other pointers to them
elsewhere.  So I think this is why memory leaks in Java are so rare.
I don't know as much about how a typical Lisp GC works.

-- 
  _______                   Shawn T. Rutledge / KB7PWD  ecloud@bigfoot.com
 (_  | |_)          http://www.bigfoot.com/~ecloud  kb7pwd@kb7pwd.ampr.org
 __) | | \________________________________________________________________
Get money for spare CPU cycles at http://www.ProcessTree.com/?sponsor=5903