Re: Status of Strongtalk C++ code: VM stability and progress on a graphical debugger

"Gilad Bracha" <[email protected]> Sun, 18 May 2008 17:05:32 -0700
Newsgroups gmane.comp.lang.smalltalk.strongtalk
Message-ID <[email protected]>
Shaping,

On Sun, May 18, 2008 at 3:29 PM, Shaping <[email protected]> wrote:
>
>   Where in the grand scheme of Newspeak is #become: needed.
>

Needed is a strong word. It makes things much easier.
Traditionally, become: is useful for implementing schema changes. In
Strongtalk this is not the case, because there is a primitive that does all
that for you for any number of mixins, their applications (classes),
subclasses thereof and their instances atomically. The other place it is
used is in the deserializer, which is pretty central to our take on
deployment.

 I
> don't immediately see why this is a challenge.


It shouldn't be a huge problem, but it isn't implemented right now. It needs
to be.


> Does Strongtalk use a
> direct-pointer model?


Yes.

>
>
> > A correct implementation of  doesNotUnderstand: is necessary as well.  I
> > understand some people on the list are looking at these issues.
>
> What's wrong with Strongtalk's #doesNotUnderstand:?


It doesn't seem to get called if you override it.


>
> Concerning the use of Newspeak, I assume that I can download the
> latest Squeak and play with Newspeak there.


Alas no. First, it hasn't been released yet, and the public release is a
quite a ways off. I know we'll only get one chance to have people look at a
new system like this; first impressions are critical. So we will not release
it prematurely. We want the native GUI bindings solid, the language close to
frozen, all Newspeak libraries (as opposed to Squeak libraries) in place
etc. There is a lot of work still.

Second, when it is released, it will include a modified VM with it. We have
modified the Squeak VM in a number of ways and will continue to do so. We
have added some new byte codes and FFI support, for example. Some of this
work would not be necessary if we used Strongtalk - but some might. Bottom
line -  you won't run Newspeak on vanilla Squeak.


> I think I'm also reading
> that there is a native version that Cadence are working on, but have
> not released yet.  Is this correct?


Not exactly. Let me clarify. There is one version - it runs on a modified
Squeak VM.  The "native version" refers to the bottom layer of the GUI. The
GUI consists of 3 layers: Hopcotch, an application framework; Brazil, a
widget framework; and a binding to some system that actually draws stuff.
Sometimes the binding layer of the GUI calls the native GUI. The higher
layers are what the programmer sees, and their code runs the same.

Through the binding layer, the Newspeak GUI can be dynamically bound to
different underlying GUIs. The first such binding was to Morphic. We now
also have a Windows binding, though not quite finished. We intend to build
Unix bindings as well. Because the GUI binds dynamically, an image moved
from a Windows XP machine to a Linux machine will open up with Linux windows
in the same places where the XP windows were when the image was saved on XP.
These native bindings will be part of the release. We expect to abandon the
Morphic GUI binding entirely.


Is there a firm schedule for the
> release of this native version?


No.  We are not making public commitments on the schedule.  I'd guess 6-9
months. But that is just a guesstimate.

Is this native version being built
> from the ground up,


Hopefully my comments above answer this.


> or have you decided to commit to the integration
> of Strongtalk and this current native Newspeak, instead, to produce,
> in less time, a faster native version.


We don't rule anything in or out :-). Most of our code should run unchanged
regardless of the underlying engine, and it is likely that both the Squeak
version and others would co-exist. Only the compiler (probably just its code
generator), the low-level Mirrors (for reflection), the Aliens (for FFI) and
the binding layer of the GUI vary.


> I suppose that you will commit
> to the latter path,


 As I said, these are not mutually exclusive options, and so there is no
need to commit. And I won't. Nor do you need me to - Newspeak will be open
sourced, and if we don't run it on Strongtalk, there's little to stop others
from doing that. If Strongtalk runs well, the odds are very good that we
would do the port. If not, someone will, and have a blast doing it :-). I
just can't make commitments of this kind.


> if the above problems in Strongtalk can be fixed.


I'm not sure what "above problems" means, so I'll try and be unambiguous.
  What needs to be fixed in Strongtalk above all else is its overall
stability. The specific issues listed above (become:, doesNotUnderstand:)
are issues of functionality and actually less critical. However, I believe
they are useful starting points for people in this group to work on. They
are concrete and relatively self contained, and they need to be fixed in any
case - whether you want to run Squeak on Strongtalk, as had been suggested,
or run Newspeak on it (as I want), and many other usages.

In other words, I'm not asking anyone here to do something special to
support Newspeak. Everything I'm suggesting should be done independently of
whether Newspeak ever existed. What I am suggesting is that if these issues
are fixed, a lot of the higher level issues around debugging, portable GUI
etc. will have a solution waiting.

Fixing functionality alone will not change the basic situation - robustness
will. Nevertheless, it will be real progress, and maybe get more momentum
going. I'm more optimistic about using Strongtalk than I've been in a while.

>
>

-- 
Cheers, Gilad

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Strongtalk-general" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [email protected]
For more options, visit this group at http://groups.google.com/group/strongtalk-general?hl=en
-~----------~----~----~----~------~----~------~--~---