Dual screen?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
13 messages Options
Reply | Threaded
Open this post in threaded view
|

Dual screen?

Squeak - Dev mailing list
Is there a way to set Squeak to be dual screen?

Kindly,
Rabbit



Reply | Threaded
Open this post in threaded view
|

Re: Dual screen?

Jakob Reschke
I only know the workaround, which I used in the past: do not use
fullscreen, do not maximize the window, drag the window edges near the
far edges of the outer displays, so the window spans the two screens
(drag the window edges near the screen edges). This is no good if the
displays have different DPI, of course...

Am Fr., 26. Juni 2020 um 18:35 Uhr schrieb Robert Withers via
Squeak-dev <[hidden email]>:
>
> Is there a way to set Squeak to be dual screen?
>
> Kindly,
> Rabbit
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Dual screen?

timrowledge
In reply to this post by Squeak - Dev mailing list


> On 2020-06-26, at 9:35 AM, Robert Withers via Squeak-dev <[hidden email]> wrote:
>
> Is there a way to set Squeak to be dual screen?

The fundamentals have been there since 2004. HostWindowPlugin/DisplayHostWindow provide some breadcrumbs.

After years of people shrieking loudly (oh, so loudly) about how essential host windows and native controls are to any chance of Smalltalk having a future - nothing. Nobody found it worth the effort to take the foundation and build on it. That was over 15 years ago.

VisualWorks did the native window thing a long time ago. I've been having to use VW a bit recently (see recent email whining about the awful font stuff) and I really, really, don't like having separate host windows. I think part of the problem is that I tend to have a *lot* of windows open and it turns out that none of the current main OS (yes, I've been using Windows, Mac & various unix) handle lots of windows at all well. It's much easier to have my Squeak world nicely tied together.

One place where I could see potential for interesting experiments would be to use the nascent DisplayHostWindow stuff to do exactly this dual display thing - hell, lots of displays if you want, why not? Instead of trying to make every host window a separate Squeak window, make each a Display and then it you want to spread a couple across several physical display, go for it. Maybe hanging it all off the idea of Projects would be a good start? A Project window already gathers groups of windows after all.

And of course, I wouldn't be at all surprised to hear that someone has already done this and that I simply don't remember it...


tim
--
tim Rowledge; [hidden email]; http://www.rowledge.org/tim
Adding manpower to a late software project makes it later.



Reply | Threaded
Open this post in threaded view
|

Re: Dual screen?

Squeak - Dev mailing list
In reply to this post by Jakob Reschke
Oh yes! This works well! Good idea, thank you!

K, r

On 6/26/20 12:39 PM, Jakob Reschke wrote:

> I only know the workaround, which I used in the past: do not use
> fullscreen, do not maximize the window, drag the window edges near the
> far edges of the outer displays, so the window spans the two screens
> (drag the window edges near the screen edges). This is no good if the
> displays have different DPI, of course...
>
> Am Fr., 26. Juni 2020 um 18:35 Uhr schrieb Robert Withers via
> Squeak-dev <[hidden email]>:
>> Is there a way to set Squeak to be dual screen?
>>
>> Kindly,
>> Rabbit
>>
>>
>>


Reply | Threaded
Open this post in threaded view
|

Re: Dual screen?

Squeak - Dev mailing list
In reply to this post by timrowledge
Hi tim,

Thinking about what you have said. Host windows. Mmm... I don't disagree
with you about the immersive environment of squeak managing the windows.

I am thinking that TruffleSqueak would make a good window manager. I
think you could use Java Swing to build your host windows. Is it so?
Good for production apps. Get the tree lists right and you should be
good to go.

I would rather see Professional Spec widgets, that look & feel like host
widgets, but managed inside Squeak. A step back from the dynamism of
Morphic. With all the animation and graphics work and sound/speech, I
don't see why host look & feel could not be hosted within Squeak. Of
course, all OS styles should be configurable, so on Windows you could
switch to Mac windows or Ubuntu look&feel. The issue is time. I wholly
understand that!

Is that how a squeak display is used? I am unfamiliar. But that sounds
like a window manager to me! Multiple Displays. Now this proposal of
yours to use a Project for each Display, seems to interleave with my
proposed ERights Vat and event loop. I was thinking whether each window
event loop could feed the Vat event loop. The Vat's event loop already
comes in as priority 40 or 30, so very background. Like a bubbling
spring, I like to think.  A Project sounds like a good boundary, to me.
I believe each Project can establish its own naming environment. Is it so?

I am very interested in forming a Secure DNS, with hierarchical naming
and local caching. I want to use it as an interface registry, as well,
such that the ASN1 structure definitions are so shared. ASN1Modules are
kinda hierarchical, but not completely. For example, I do not think I
implemented any way to search up and down the tree, for a definition. I
have further thoughts on auto deploying consumers for the various event
structures, that may appear unexpectedly, so the engine would dyno-load
the consumer package registered for that event type.

Closer to my heart, at this point are my questions and request for help
in splitting off a pruned stack for an exception, to unblock the event
loop yet still allow introspection of an error, or a halt. Here is what
I wrote. Tim, might you be able to advise me here? *lost*

http://lists.squeakfoundation.org/pipermail/squeak-dev/2020-June/210452.html

Kindly,
Rabbit

On 6/26/20 12:54 PM, tim Rowledge wrote:

>
>
>> On 2020-06-26, at 9:35 AM, Robert Withers via Squeak-dev <[hidden email]> wrote:
>>
>> Is there a way to set Squeak to be dual screen?
> The fundamentals have been there since 2004. HostWindowPlugin/DisplayHostWindow provide some breadcrumbs.
>
> After years of people shrieking loudly (oh, so loudly) about how essential host windows and native controls are to any chance of Smalltalk having a future - nothing. Nobody found it worth the effort to take the foundation and build on it. That was over 15 years ago.
>
> VisualWorks did the native window thing a long time ago. I've been having to use VW a bit recently (see recent email whining about the awful font stuff) and I really, really, don't like having separate host windows. I think part of the problem is that I tend to have a *lot* of windows open and it turns out that none of the current main OS (yes, I've been using Windows, Mac & various unix) handle lots of windows at all well. It's much easier to have my Squeak world nicely tied together.
>
> One place where I could see potential for interesting experiments would be to use the nascent DisplayHostWindow stuff to do exactly this dual display thing - hell, lots of displays if you want, why not? Instead of trying to make every host window a separate Squeak window, make each a Display and then it you want to spread a couple across several physical display, go for it. Maybe hanging it all off the idea of Projects would be a good start? A Project window already gathers groups of windows after all.
>
> And of course, I wouldn't be at all surprised to hear that someone has already done this and that I simply don't remember it...
>
>
> tim
> --
> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> Adding manpower to a late software project makes it later.
>
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Dual screen?

fniephaus
On Fri, Jun 26, 2020 at 7:56 PM Robert Withers via Squeak-dev
<[hidden email]> wrote:

>
> Hi tim,
>
> Thinking about what you have said. Host windows. Mmm... I don't disagree
> with you about the immersive environment of squeak managing the windows.
>
> I am thinking that TruffleSqueak would make a good window manager. I
> think you could use Java Swing to build your host windows. Is it so?
> Good for production apps. Get the tree lists right and you should be
> good to go.

Yes, that should be possible. However, it is not yet supported. The
HostWindowPlugin is at [1].

You've probably seen it, but just in case: Here's a demo of our
JavaToolBuilder using Swing to build workspaces, inspectors, and
browsers in native windows:
https://www.youtube.com/watch?v=If7xNBYA0Bk

More information at:
https://medium.com/graalvm/hpi-polyglot-programming-seminar-3fd06ffa59d2

Cheers,
Fabio

[1] https://github.com/hpi-swa/trufflesqueak/blob/301b58d5d5ea0e9471e0e060b2dc9e726a3d0d54/src/de.hpi.swa.trufflesqueak/src/de/hpi/swa/trufflesqueak/nodes/plugins/HostWindowPlugin.java

>
> I would rather see Professional Spec widgets, that look & feel like host
> widgets, but managed inside Squeak. A step back from the dynamism of
> Morphic. With all the animation and graphics work and sound/speech, I
> don't see why host look & feel could not be hosted within Squeak. Of
> course, all OS styles should be configurable, so on Windows you could
> switch to Mac windows or Ubuntu look&feel. The issue is time. I wholly
> understand that!
>
> Is that how a squeak display is used? I am unfamiliar. But that sounds
> like a window manager to me! Multiple Displays. Now this proposal of
> yours to use a Project for each Display, seems to interleave with my
> proposed ERights Vat and event loop. I was thinking whether each window
> event loop could feed the Vat event loop. The Vat's event loop already
> comes in as priority 40 or 30, so very background. Like a bubbling
> spring, I like to think.  A Project sounds like a good boundary, to me.
> I believe each Project can establish its own naming environment. Is it so?
>
> I am very interested in forming a Secure DNS, with hierarchical naming
> and local caching. I want to use it as an interface registry, as well,
> such that the ASN1 structure definitions are so shared. ASN1Modules are
> kinda hierarchical, but not completely. For example, I do not think I
> implemented any way to search up and down the tree, for a definition. I
> have further thoughts on auto deploying consumers for the various event
> structures, that may appear unexpectedly, so the engine would dyno-load
> the consumer package registered for that event type.
>
> Closer to my heart, at this point are my questions and request for help
> in splitting off a pruned stack for an exception, to unblock the event
> loop yet still allow introspection of an error, or a halt. Here is what
> I wrote. Tim, might you be able to advise me here? *lost*
>
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2020-June/210452.html
>
> Kindly,
> Rabbit
>
> On 6/26/20 12:54 PM, tim Rowledge wrote:
> >
> >
> >> On 2020-06-26, at 9:35 AM, Robert Withers via Squeak-dev <[hidden email]> wrote:
> >>
> >> Is there a way to set Squeak to be dual screen?
> > The fundamentals have been there since 2004. HostWindowPlugin/DisplayHostWindow provide some breadcrumbs.
> >
> > After years of people shrieking loudly (oh, so loudly) about how essential host windows and native controls are to any chance of Smalltalk having a future - nothing. Nobody found it worth the effort to take the foundation and build on it. That was over 15 years ago.
> >
> > VisualWorks did the native window thing a long time ago. I've been having to use VW a bit recently (see recent email whining about the awful font stuff) and I really, really, don't like having separate host windows. I think part of the problem is that I tend to have a *lot* of windows open and it turns out that none of the current main OS (yes, I've been using Windows, Mac & various unix) handle lots of windows at all well. It's much easier to have my Squeak world nicely tied together.
> >
> > One place where I could see potential for interesting experiments would be to use the nascent DisplayHostWindow stuff to do exactly this dual display thing - hell, lots of displays if you want, why not? Instead of trying to make every host window a separate Squeak window, make each a Display and then it you want to spread a couple across several physical display, go for it. Maybe hanging it all off the idea of Projects would be a good start? A Project window already gathers groups of windows after all.
> >
> > And of course, I wouldn't be at all surprised to hear that someone has already done this and that I simply don't remember it...
> >
> >
> > tim
> > --
> > tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> > Adding manpower to a late software project makes it later.
> >
> >
> >
>
>

Reply | Threaded
Open this post in threaded view
|

Re: Dual screen?

Squeak - Dev mailing list

On 6/26/20 2:03 PM, Fabio Niephaus wrote:

> On Fri, Jun 26, 2020 at 7:56 PM Robert Withers via Squeak-dev
> <[hidden email]> wrote:
>> I am thinking that TruffleSqueak would make a good window manager. I
>> think you could use Java Swing to build your host windows. Is it so?
>> Good for production apps. Get the tree lists right and you should be
>> good to go.
> Yes, that should be possible. However, it is not yet supported. The
> HostWindowPlugin is at [1].
>
> You've probably seen it, but just in case: Here's a demo of our
> JavaToolBuilder using Swing to build workspaces, inspectors, and
> browsers in native windows:
> https://www.youtube.com/watch?v=If7xNBYA0Bk
> More information at:
> https://medium.com/graalvm/hpi-polyglot-programming-seminar-3fd06ffa59d2

I would love if this and Spec were integrated such that using Spec you
could use the JavaToolBuilder to build windows.

Very cool tech, no question!

Kindly,
rabbit

>
> Cheers,
> Fabio
>
> [1] https://github.com/hpi-swa/trufflesqueak/blob/301b58d5d5ea0e9471e0e060b2dc9e726a3d0d54/src/de.hpi.swa.trufflesqueak/src/de/hpi/swa/trufflesqueak/nodes/plugins/HostWindowPlugin.java
>
>> I would rather see Professional Spec widgets, that look & feel like host
>> widgets, but managed inside Squeak. A step back from the dynamism of
>> Morphic. With all the animation and graphics work and sound/speech, I
>> don't see why host look & feel could not be hosted within Squeak. Of
>> course, all OS styles should be configurable, so on Windows you could
>> switch to Mac windows or Ubuntu look&feel. The issue is time. I wholly
>> understand that!
>>
>> Is that how a squeak display is used? I am unfamiliar. But that sounds
>> like a window manager to me! Multiple Displays. Now this proposal of
>> yours to use a Project for each Display, seems to interleave with my
>> proposed ERights Vat and event loop. I was thinking whether each window
>> event loop could feed the Vat event loop. The Vat's event loop already
>> comes in as priority 40 or 30, so very background. Like a bubbling
>> spring, I like to think.  A Project sounds like a good boundary, to me.
>> I believe each Project can establish its own naming environment. Is it so?
>>
>> I am very interested in forming a Secure DNS, with hierarchical naming
>> and local caching. I want to use it as an interface registry, as well,
>> such that the ASN1 structure definitions are so shared. ASN1Modules are
>> kinda hierarchical, but not completely. For example, I do not think I
>> implemented any way to search up and down the tree, for a definition. I
>> have further thoughts on auto deploying consumers for the various event
>> structures, that may appear unexpectedly, so the engine would dyno-load
>> the consumer package registered for that event type.
>>
>> Closer to my heart, at this point are my questions and request for help
>> in splitting off a pruned stack for an exception, to unblock the event
>> loop yet still allow introspection of an error, or a halt. Here is what
>> I wrote. Tim, might you be able to advise me here? *lost*
>>
>> http://lists.squeakfoundation.org/pipermail/squeak-dev/2020-June/210452.html
>>
>> Kindly,
>> Rabbit
>>
>> On 6/26/20 12:54 PM, tim Rowledge wrote:
>>>
>>>> On 2020-06-26, at 9:35 AM, Robert Withers via Squeak-dev <[hidden email]> wrote:
>>>>
>>>> Is there a way to set Squeak to be dual screen?
>>> The fundamentals have been there since 2004. HostWindowPlugin/DisplayHostWindow provide some breadcrumbs.
>>>
>>> After years of people shrieking loudly (oh, so loudly) about how essential host windows and native controls are to any chance of Smalltalk having a future - nothing. Nobody found it worth the effort to take the foundation and build on it. That was over 15 years ago.
>>>
>>> VisualWorks did the native window thing a long time ago. I've been having to use VW a bit recently (see recent email whining about the awful font stuff) and I really, really, don't like having separate host windows. I think part of the problem is that I tend to have a *lot* of windows open and it turns out that none of the current main OS (yes, I've been using Windows, Mac & various unix) handle lots of windows at all well. It's much easier to have my Squeak world nicely tied together.
>>>
>>> One place where I could see potential for interesting experiments would be to use the nascent DisplayHostWindow stuff to do exactly this dual display thing - hell, lots of displays if you want, why not? Instead of trying to make every host window a separate Squeak window, make each a Display and then it you want to spread a couple across several physical display, go for it. Maybe hanging it all off the idea of Projects would be a good start? A Project window already gathers groups of windows after all.
>>>
>>> And of course, I wouldn't be at all surprised to hear that someone has already done this and that I simply don't remember it...
>>>
>>>
>>> tim
>>> --
>>> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
>>> Adding manpower to a late software project makes it later.
>>>
>>>
>>>
>>


Reply | Threaded
Open this post in threaded view
|

Hierarchical naming service (was Re: Dual screen?)

Squeak - Dev mailing list
In reply to this post by Squeak - Dev mailing list
Hi tim, I wanted to comment on a couple of paragraphs. I will send
separate emails, in hopes to hear your views. First, regarding a
hierarchical naming/interface/consumer meta service.

On 6/26/20 1:55 PM, Robert Withers wrote:
> I am very interested in forming a Secure DNS, with hierarchical naming
> and local caching. I want to use it as an interface registry, as well,
> such that the ASN1 structure definitions are so shared. ASN1Modules are
> kinda hierarchical, but not completely. For example, I do not think I
> implemented any way to search up and down the tree, for a definition. I
> have further thoughts on auto deploying consumers for the various event
> structures, that may appear unexpectedly, so the engine would dyno-load
> the consumer package registered for that event type.

Another bit of work I did in this area, is the Eventual Linda
package(called ELinda on Cryptography or Oceanside). I added an ability
to register and pattern matcher with an eventual registration, which
schedules a reactor to react to an incoming event. I was trying to think
how to make it hierarchical in lookup and distribution. I did not get
very far but the eventual event registrations are there. I wanted to
combine an interface repository with a hierarchical naming service,
perhaps using ELinda for capability introduction.

K, rabbit



Reply | Threaded
Open this post in threaded view
|

Short Stack exception presentation (was Re: Dual screen?)

Squeak - Dev mailing list
In reply to this post by Squeak - Dev mailing list

Hi tim, here is my exploration of stack handling.

On 6/26/20 1:55 PM, Robert Withers wrote:
Closer to my heart, at this point are my questions and request for help 
in splitting off a pruned stack for an exception, to unblock the event 
loop yet still allow introspection of an error, or a halt. Here is what 
I wrote. Tim, might you be able to advise me here? *lost*

http://lists.squeakfoundation.org/pipermail/squeak-dev/2020-June/210452.html

Not onyl do I want this, but the short stack, when Proceeded, should reschedule an eventual message on the event loop to reintroduce this short stack back into event loop land. As such, i was thinking perhaps a continuation could enable this. Liekwise, when a exception is thrown, do these steps:

  1. Modify the Vat to have a an active stack, a priority queue and a vat-aware continuation pool.
  2. Copy the stack. Does this mean create a special continuation, that is event loop aware?
  3. Resume the event loop by discarding the previous event handling exception.
  4. Prune the stack (of the continuation). above and below. Site of signaled exception.
  5. Open a Debugger
  6. On Proceed, reschedule the eventual message in the Vat's queue.

I have no idea what B looks like. Outside of my experience doing continuations and stack manipulation and pool scheduling. I need a VatSemaphore (please peruse the ResultSemaphore in PromisesRemote). I pray someone may swoop in with solutions!

Kindly,
rabbit



Reply | Threaded
Open this post in threaded view
|

Re: Dual screen?

Davide Grandi-3
In reply to this post by timrowledge
... and using an approach like the Eclipse SWT ?

     http://www.eclipse.org/swt/

I mean : a Smalltalk interface to an external dll ?
Are external threads a problem, for modern Smalltalks ?

Bye,

     Davide Grandi
(maybe SWT descends from Visualage Widgets ? maybe ...)

On 26/06/2020 18:54, tim Rowledge wrote:

>> On 2020-06-26, at 9:35 AM, Robert Withers via Squeak-dev <[hidden email]> wrote:
>>
>> Is there a way to set Squeak to be dual screen?
> The fundamentals have been there since 2004. HostWindowPlugin/DisplayHostWindow provide some breadcrumbs.
>
> After years of people shrieking loudly (oh, so loudly) about how essential host windows and native controls are to any chance of Smalltalk having a future - nothing. Nobody found it worth the effort to take the foundation and build on it. That was over 15 years ago.
>
> VisualWorks did the native window thing a long time ago. I've been having to use VW a bit recently (see recent email whining about the awful font stuff) and I really, really, don't like having separate host windows. I think part of the problem is that I tend to have a *lot* of windows open and it turns out that none of the current main OS (yes, I've been using Windows, Mac & various unix) handle lots of windows at all well. It's much easier to have my Squeak world nicely tied together.
>
> One place where I could see potential for interesting experiments would be to use the nascent DisplayHostWindow stuff to do exactly this dual display thing - hell, lots of displays if you want, why not? Instead of trying to make every host window a separate Squeak window, make each a Display and then it you want to spread a couple across several physical display, go for it. Maybe hanging it all off the idea of Projects would be a good start? A Project window already gathers groups of windows after all.
>
> And of course, I wouldn't be at all surprised to hear that someone has already done this and that I simply don't remember it...
>
> tim
> --
> tim Rowledge; [hidden email]; http://www.rowledge.org/tim
> Adding manpower to a late software project makes it later.

--
Ing. Davide Grandi
email    : [hidden email]
mobile   : +39 339 7468 778
linkedin : http://linkedin.com/in/davidegrandi


Reply | Threaded
Open this post in threaded view
|

Re: Short Stack exception presentation (was Re: Dual screen?)

Squeak - Dev mailing list
In reply to this post by Squeak - Dev mailing list


On 6/26/20 2:37 PM, Robert Withers wrote:
On 6/26/20 1:55 PM, Robert Withers wrote:
Closer to my heart, at this point are my questions and request for help 
in splitting off a pruned stack for an exception, to unblock the event 
loop yet still allow introspection of an error, or a halt. Here is what 
I wrote. Tim, might you be able to advise me here? *lost*

http://lists.squeakfoundation.org/pipermail/squeak-dev/2020-June/210452.html

The requirements for exceptions within an event loop are:

  1. Copy stack
  2. Restart eventLoop
  3. Prune stack/Create Continuation
  4. Open Debugger
  5. When Proceeded, reschedule EventualMessageSend, on the Continuation, in the vat queue.

Would someone please help me here? I am a little lost. I appreciate you!

Kindly,
rabbit

Not only do I want this, but the short stack, when Proceeded, should reschedule an eventual message on the event loop to reintroduce this short stack back into event loop land. As such, i was thinking perhaps a continuation could enable this. Liekwise, when a exception is thrown, do these steps:

  1. Modify the Vat to have a an active stack, a priority queue and a vat-aware continuation pool.
  2. Copy the stack. Does this mean create a special continuation, that is event loop aware?
  3. Resume the event loop by discarding the previous event handling exception.
  4. Prune the stack (of the continuation). above and below. Site of signaled exception.
  5. Open a Debugger
  6. On Proceed, reschedule the eventual message in the Vat's queue.

I have no idea what B looks like. Outside of my experience doing continuations and stack manipulation and pool scheduling. I need a VatSemaphore (please peruse the ResultSemaphore in PromisesRemote). I pray someone may swoop in with solutions!

Kindly,
rabbit



Reply | Threaded
Open this post in threaded view
|

Re: Short Stack exception presentation (was Re: Dual screen?)

Squeak - Dev mailing list

Hi everyone,

Thanks to a response on the Squeak Slack channel, I was able to get most of this done by calling a pre-existing method.  Please run:

Installer ss project: 'Cryptography'; install: 'PromisesLocal'.

Oh! Marcel, this is precisely what I needed, it is already done! I changed the EventualMessageSend>>#value to call this code you shared. StandardToolSet debugException: ex.I run this script to test:(1 eventual / 0) explore.
1 eventual explore.The first line results in an exception and we get a exception notifier and also an explorer on the PromisERef. The promise is resolved to an exception and it #becomes a BrokenERef.

In looking into the exception notifier and the exception browser is that the top frame is the signaler context. Perfect.

The second line validates that the event loop is unblocked. This results in a second inspector on a near value of 1.

The only remaining work is that when proceeded, the exception will reschedule the stack into the vat's queue.

Kindly,
rabbit

On 7/12/20 1:38 PM, Robert Withers wrote:


On 6/26/20 2:37 PM, Robert Withers wrote:
On 6/26/20 1:55 PM, Robert Withers wrote:
Closer to my heart, at this point are my questions and request for help 
in splitting off a pruned stack for an exception, to unblock the event 
loop yet still allow introspection of an error, or a halt. Here is what 
I wrote. Tim, might you be able to advise me here? *lost*

http://lists.squeakfoundation.org/pipermail/squeak-dev/2020-June/210452.html

The requirements for exceptions within an event loop are:

  1. Copy stack
  2. Restart eventLoop
  3. Prune stack/Create Continuation
  4. Open Debugger
  5. When Proceeded, reschedule EventualMessageSend, on the Continuation, in the vat queue.

Would someone please help me here? I am a little lost. I appreciate you!

Kindly,
rabbit

Not only do I want this, but the short stack, when Proceeded, should reschedule an eventual message on the event loop to reintroduce this short stack back into event loop land. As such, i was thinking perhaps a continuation could enable this. Liekwise, when a exception is thrown, do these steps:

  1. Modify the Vat to have a an active stack, a priority queue and a vat-aware continuation pool.
  2. Copy the stack. Does this mean create a special continuation, that is event loop aware?
  3. Resume the event loop by discarding the previous event handling exception.
  4. Prune the stack (of the continuation). above and below. Site of signaled exception.
  5. Open a Debugger
  6. On Proceed, reschedule the eventual message in the Vat's queue.

I have no idea what B looks like. Outside of my experience doing continuations and stack manipulation and pool scheduling. I need a VatSemaphore (please peruse the ResultSemaphore in PromisesRemote). I pray someone may swoop in with solutions!

Kindly,
rabbit



Reply | Threaded
Open this post in threaded view
|

Re: Short Stack exception presentation (was Re: Dual screen?)

Squeak - Dev mailing list

Strange issue. I found one of the tests is failing, run from the TestRunner. RefsTest>>#testBlockClosure is failing for an unknown reason. I ran the tests from the browser menu and they all pass. There is no failure running or debugging from the Browser. Very strange.

K, r

On 7/18/20 7:50 AM, Robert Withers via Squeak-dev wrote:

Hi everyone,

Thanks to a response on the Squeak Slack channel, I was able to get most of this done by calling a pre-existing method.  Please run:

Installer ss project: 'Cryptography'; install: 'PromisesLocal'.

Oh! Marcel, this is precisely what I needed, it is already done! I changed the EventualMessageSend>>#value to call this code you shared. StandardToolSet debugException: ex.I run this script to test:(1 eventual / 0) explore.
1 eventual explore.The first line results in an exception and we get a exception notifier and also an explorer on the PromisERef. The promise is resolved to an exception and it #becomes a BrokenERef.

In looking into the exception notifier and the exception browser is that the top frame is the signaler context. Perfect.

The second line validates that the event loop is unblocked. This results in a second inspector on a near value of 1.

The only remaining work is that when proceeded, the exception will reschedule the stack into the vat's queue.

Kindly,
rabbit

On 7/12/20 1:38 PM, Robert Withers wrote:


On 6/26/20 2:37 PM, Robert Withers wrote:
On 6/26/20 1:55 PM, Robert Withers wrote:
Closer to my heart, at this point are my questions and request for help
in splitting off a pruned stack for an exception, to unblock the event
loop yet still allow introspection of an error, or a halt. Here is what
I wrote. Tim, might you be able to advise me here? *lost*

http://lists.squeakfoundation.org/pipermail/squeak-dev/2020-June/210452.html

The requirements for exceptions within an event loop are:

  1. Copy stack
  2. Restart eventLoop
  3. Prune stack/Create Continuation
  4. Open Debugger
  5. When Proceeded, reschedule EventualMessageSend, on the Continuation, in the vat queue.

Would someone please help me here? I am a little lost. I appreciate you!

Kindly,
rabbit

Not only do I want this, but the short stack, when Proceeded, should reschedule an eventual message on the event loop to reintroduce this short stack back into event loop land. As such, i was thinking perhaps a continuation could enable this. Liekwise, when a exception is thrown, do these steps:

  1. Modify the Vat to have a an active stack, a priority queue and a vat-aware continuation pool.
  2. Copy the stack. Does this mean create a special continuation, that is event loop aware?
  3. Resume the event loop by discarding the previous event handling exception.
  4. Prune the stack (of the continuation). above and below. Site of signaled exception.
  5. Open a Debugger
  6. On Proceed, reschedule the eventual message in the Vat's queue.

I have no idea what B looks like. Outside of my experience doing continuations and stack manipulation and pool scheduling. I need a VatSemaphore (please peruse the ResultSemaphore in PromisesRemote). I pray someone may swoop in with solutions!

Kindly,
rabbit