Loading ...
Sorry, an error occurred while loading the content.

Self on the Macintosh

Expand Messages
  • cramakrishnan@acm.org
    Hi Selfers. A couple of weeks ago i managed to get my hands on a Sun Ultra 1 167Mhz (128MB of ram). Of course, the first thing i did was to install Self.
    Message 1 of 3 , Aug 16, 2000
    View Source
    • 0 Attachment
      Hi Selfers.

      A couple of weeks ago i managed to get my hands on a Sun Ultra 1
      167Mhz (128MB of ram). Of course, the first thing i did was to
      install Self. Though i'd seen the papers on the performance of the
      VM, i was still shocked by how fast Self is on that machine! It
      absolutely flies!

      Most of my playing around with Self has been on my B&W G3 300 (192 MB)
      at home. First, i want to say that I am soo grateful to be able to
      run Self on the Mac, but I have to admit it pretty slow on my machine.
      Useable, but barely. I've put Self onto a Powerbook G3 500 (128 MB)
      at work and it is considerably faster than my G3 300, but still not as
      fast as the Ultra 1!

      I'm assuming this performance is because the SIC is so awesome (not
      because the Sparc is that much better than the PPC :), and I would
      love to see it on the Mac.

      So, what's involved in getting the SIC on the PPC? Implement
      genHelper_ppc.c, node_ppc.c, and any supporting methods on Assembler?
      What else? Is this work that's worth tackling, or is it going to be
      extraordinarily difficult?

      If it is going to be extraordinarily difficult is there any thing we
      can do to speed up performance on the Mac? Implement a scaled-down,
      windowing system that uses native widgets? Wait for Self-in-Self
      where it should be easier to work with the VM?

      What are your thoughts?

      - sekhar

      --
      C. Ramakrishnan cramakrishnan@...
    • Jecel Assumpcao Jr
      ... Exactly. If you run a program like Squeak Smalltalk on these machines you will notice that even your slow Macs are faster than the Sparc. ... It doesn t
      Message 2 of 3 , Aug 16, 2000
      View Source
      • 0 Attachment
        C. Ramakrishnan wrote:
        > I'm assuming this performance is because the SIC is so awesome (not
        > because the Sparc is that much better than the PPC :), and I would
        > love to see it on the Mac.

        Exactly. If you run a program like Squeak Smalltalk on these machines
        you will notice that even your "slow" Macs are faster than the Sparc.

        > So, what's involved in getting the SIC on the PPC? Implement
        > genHelper_ppc.c, node_ppc.c, and any supporting methods on Assembler?
        > What else? Is this work that's worth tackling, or is it going to be
        > extraordinarily difficult?

        It doesn't look too hard to do. One thing to remember, though, it that
        the NIC didn't use the Sparc register windows (I think... Urs wrote
        something about this in his thesis) but the SIC does. My first
        impression what that David Ungar isolated this in the *sparc.c files,
        but there could be some traps waiting inside the main SIC sources.
        Grepping for "indow" there only turns up:

        node.c: needToFlushRegWindow ? "flush " : "",
        node.h: bool needToFlushRegWindow;
        node.h: needToFlushRegWindow = fr; isAccessMethod = am; nargs = n;
        node.h: void flushRegisterWindows();
        nodeGen.c: void NodeGen::prologue(bool needToFlushRegWindow, bool isAccessMethod,
        nodeGen.c: current = start = new PrologueNode(needToFlushRegWindow, isAccessMethod,
        nodeGen.h: void prologue(bool needToFlushRegWindow, bool isAccessMethod, fint nargs);
        sic.c: needRegWindowFlushes = false;
        sic.h: bool needRegWindowFlushes; // compile reg-window flushing blocks
        sicScope.c: theNodeGen->prologue(theSIC->needRegWindowFlushes, false, nargs);

        This might be tricky.....

        > If it is going to be extraordinarily difficult is there any thing we
        > can do to speed up performance on the Mac? Implement a scaled-down,
        > windowing system that uses native widgets?

        This would probably be a lot more complicated than doing the SIC, and
        the results wouldn't be as good.

        > Wait for Self-in-Self
        > where it should be easier to work with the VM?

        The bad news is that I haven't started writing this yet. The good news
        is that (like tinySelf 1) the latest "builds" will always be available
        on the net so you won't have to wonder what I am doing. The first
        compiler will target the X86, but it is meant to be portable from the
        very begining.

        -- Jecel
      • David Ungar
        It would be GREAT if someone were to port the SIC to the Mac. I just ran something that took 86 secs on my 500Mhz G3 and 6 secs on a SPARC. You will have to
        Message 3 of 3 , Aug 16, 2000
        View Source
        • 0 Attachment
          It would be GREAT if someone were to port the SIC to the Mac.
          I just ran something that took 86 secs on my 500Mhz G3 and 6 secs on a SPARC.
          You will have to deal with the SIC stack frames for conversion (back
          to unoptimized code),
          but should not have to implement on-stack replacement (unopt to opt),
          that should be optional with the
          SICReplaceOnStack flag (if I remember correctly).

          Let me know if you undertake this. I will try to be available to
          answer questions.

          - Dave




          At 1:37 PM -0700 8/16/00, cramakrishnan@... wrote:
          >Hi Selfers.
          >
          >A couple of weeks ago i managed to get my hands on a Sun Ultra 1
          >167Mhz (128MB of ram). Of course, the first thing i did was to
          >install Self. Though i'd seen the papers on the performance of the
          >VM, i was still shocked by how fast Self is on that machine! It
          >absolutely flies!
          >
          >Most of my playing around with Self has been on my B&W G3 300 (192 MB)
          >at home. First, i want to say that I am soo grateful to be able to
          >run Self on the Mac, but I have to admit it pretty slow on my machine.
          >Useable, but barely. I've put Self onto a Powerbook G3 500 (128 MB)
          >at work and it is considerably faster than my G3 300, but still not as
          >fast as the Ultra 1!
          >
          >I'm assuming this performance is because the SIC is so awesome (not
          >because the Sparc is that much better than the PPC :), and I would
          >love to see it on the Mac.
          >
          >So, what's involved in getting the SIC on the PPC? Implement
          >genHelper_ppc.c, node_ppc.c, and any supporting methods on Assembler?
          >What else? Is this work that's worth tackling, or is it going to be
          >extraordinarily difficult?
          >
          >If it is going to be extraordinarily difficult is there any thing we
          >can do to speed up performance on the Mac? Implement a scaled-down,
          >windowing system that uses native widgets? Wait for Self-in-Self
          >where it should be easier to work with the VM?
          >
          >What are your thoughts?
          >
          >- sekhar
          >
          >--
          >C. Ramakrishnan cramakrishnan@...

          --


          David Ungar
          Sun Microsystems Laboratories
          (650) 336-2618
        Your message has been successfully submitted and would be delivered to recipients shortly.