Re: vm02 update



David Schmenk wrote:
Michael J. Mahon wrote:
David Schmenk wrote:

Although you posted this a little tongue-in-cheek, it isn't too far off from what I would eventually like to see. Instant Pascal was a misguided attempt at creating an IDE with automatic formatting and almost instant feedback. It was marketed more as a lame educational tool rather than fully developed into a nice IDE. When VM02 matures more to allow *much* larger programs, I would like to see a similar idea, but with a more professional intent. Keeping the editor text based rather than add a double hires GUI on top of an already stretched-to-the-max environment might be feasible. Editing the source in a tokenized format would keep the memory constraints lower and ease the first pass of the compiler. Stay tuned. At the rate I'm working at, probably available on the Apple IIs 40th anniversary ;-)

Wow, did I just have a flash of deja vu!

Back in the mid-1970s, I envisioned (and partly designed) an
extensible system based on an IDE that kept source in parsed,
interpretable form and which was edited in a (user definable)
prettyprinted format.


The whole edit/compile/test sequence is so inefficient. When you're dealing with a slow CPU and slow storage, it becomes unbearable. I realized how nice Apple Pascal was when I finally ran it with a Zip chip and CFFA. Still, the whole sequence isn't as easy as it could be. Combining editing and parsing was clearly the thing to do. All the BASICs did it.


The code of the system itself was "in" the system, and could be
edited online. Frequently executed parts/functions were automatically
compiled to machine code (which was thrown away if a change was made
to any of its constituents).


When you have multi-tasking to play with, all sorts of things become possible. I've never considered having a scheduler on an Apple II. Now, many interesting things can be run in the background.

At the time, it seemed like a good way to get lots of function and
good performance on a relatively slow machine with limited memory
and storage, since the vast majority of the code would never be
compiled to machine code at all (being very low frequency).


Still seems like a good idea to me. I suppose all the VMs try to do this. I made a slight slam on Sun's JVM in the readme about startup times. Unfortunately it's true. If I run a java app on my PowerBook G4 with the caches flushed (i.e. I haven't run it in awhile), it takes a few seconds to get everything going.

Now that I have the basic vm02 running, I should probably add some statistics gathering. Then compile the frequently run methods to 6502. Then I'll have a JIT VM compiler with really slow startup times :-( Oh well.

If the compilation is done "sloppily" and incrementally, there's no
reason for a perceptible pause.

One simple heuristic is to never compile more than 100 instructions of
machine code at a time--which, is done "sloppily enough" won't take more
than 100 milliseconds. If that didn't complete a function, just re-call
the interpreter and you're back to running interpretively until the next
"pause" for user input, or whatever. ;-)

The project was abandoned when the "new OS" plans were reset...
which, BTW, would have run 95% of the OS above "ring 0" on top of
a (quite efficient) hypervisor for reliability and responsiveness.


Mmmm, micro-kernels. What goes around, comes around. And around. And around...

Yes, I spent several years of my career and two (or three, depending on
how you count) full-scale attempts to get a major commercial OS onto a
"microkernal-ish" base, but could never find a way to convince
management that the resulting advantages (for us and our customers)
would outweigh the 10% or so performance cost for a few simple cases.

In a Moore's "Law" world, that 10% was covered by just a couple of
months. But 10% of something measureable is evidently worth a lot more
than simpler, more reliable, more independent development, etc., etc.
;-)

With ideas, timing is everything!

Indeed, just ask Bill Gates ;-)

I'm sure he would agree.

An IDE like this, along with email, web browser, and telnet client would make for a pretty sweet $12 OLPC. I've got the TCP/IP classes for Uthernet on the stack of things to do eventually.

Right. The snag, unfortunately, will come with JPEGs and other "modern"
media types, whose sheer bulk defies fast processing on a small, slow
machine.

Sloppy though it may be, the modern web browser has conditioned us all
to expect snappy response to megabyte-sized media blobs--and that is
a hard act to follow without lots of RAM and MIPS.

-michael

AppleCrate: An Apple II "blade server"!
Home page: http://members.aol.com/MJMahon/

"The wastebasket is our most important design
tool--and it's seriously underused."
.



Relevant Pages

  • Re: vm02 update
    ... Instant Pascal was a misguided attempt at creating an IDE with automatic formatting and almost instant feedback. ... Editing the source in a tokenized format would keep the memory constraints lower and ease the first pass of the compiler. ... compiled to machine code at all. ...
    (comp.sys.apple2.programmer)
  • Re: vm02 update
    ... Instant Pascal was a misguided attempt at creating an IDE with automatic formatting and almost instant feedback. ... Editing the source in a tokenized format would keep the memory constraints lower and ease the first pass of the compiler. ... I realized how nice Apple Pascal was when I finally ran it with a Zip chip and CFFA. ... compiled to machine code at all. ...
    (comp.sys.apple2.programmer)
  • Re: Looking for a free basic compiler for DOS
    ... BC for 7.1 had a lot of compiler switchable options, ... NEVER compile from the ide. ... One trivial example: I have a routine declared as: ... were no manuals, just a readme file. ...
    (comp.lang.basic.misc)
  • Re: HPGCC Questions ladies and gentlemen!!!
    ... free compiler to learn C today I would choose MS Visual C++ Express ... ANSI C has been deprecated but it's still there and the IDE ... Create the program with your favourite text editor, call it, say, hello.c ... Project management is nothing exclusive to IDE's -- there are many ...
    (comp.sys.hp48)
  • "Good" versus "bad" IDEs. Re: BlackBox version 1.4 or 1.5Beta?
    ... why I believe the System 3 IDE is superior to TP 3.0. ... I don't want a list of compiler errors [as a demonstration ... > I DO want the first error to be shown immediately/automatically ... TP and Oberon, but I forget how the compiler I used ...
    (comp.lang.oberon)

Loading