Blox and browser

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

Blox and browser

Thomas Worthington
I'm trying to use the current master branch (I've tried the 3.2.92 tag
and the 3.2.5 tag as well).

gst-blox opens but any attempt to open a browser causes an error
message. With the current version on my machine that message is:

GNU Smalltalk version 3.2.92-504a8b8
 error: did not understand #blox
MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
UndefinedObject(Object)>>doesNotUnderstand: #blox (SysExcept.st:1408)
BLOX.BLOXBrowser.PList>>initialize (BLOXBrowser.star#VFS.ZipFile/PList.st:106)
BLOX.BLOXBrowser.PList class(BLOX.BLOXBrowser.Primitive class)>>new (BLOXBrowser.star#VFS.ZipFile/View.st:152)
BLOX.BLOXBrowser.PList class(BLOX.BLOXBrowser.View class)>>new:in: (BLOXBrowser.star#VFS.ZipFile/View.st:42)
BLOX.BLOXBrowser.PList class>>new:in: (BLOXBrowser.star#VFS.ZipFile/PList.st:42)
BLOX.BLOXBrowser.Notifier>>createWindow (BLOXBrowser.star#VFS.ZipFile/Notifier.st:147)
BLOX.BLOXBrowser.Notifier>>init:debugger: (BLOXBrowser.star#VFS.ZipFile/Notifier.st:131)
[] in BLOX.BLOXBrowser.Notifier class>>open: (BLOXBrowser.star#VFS.ZipFile/Notifier.st:68)
[] in BlockClosure>>forkDebugger (DebugTools.star#VFS.ZipFile/Extensions.st:75)
[] in Process>>onBlock:at:suspend: (Process.st:394)
BlockClosure>>on:do: (BlkClosure.st:196)
[] in Process>>onBlock:at:suspend: (Process.st:395)
BlockClosure>>ensure: (BlkClosure.st:271)
[] in Process>>onBlock:at:suspend: (Process.st:373)
[] in BlockClosure>>asContext: (BlkClosure.st:182)
BlockContext class>>fromClosure:parent: (BlkContext.st:68)

but it's more or less the same whatever specific tag I checkout.

gst-browser is nice but sometimes fails immediately with:
a Smalltalk Stream:3: Aborted
a Smalltalk Stream:3: Error occurred while not in byte code interpreter!!
/usr/local/bin/../lib/libgst.so.7(+0x731d7)[0x7f0c69b131d7]
/lib64/libc.so.6(+0x32d80)[0x7f0c68752d80]
/lib64/libc.so.6(gsignal+0x37)[0x7f0c68752d07]
/lib64/libc.so.6(abort+0x169)[0x7f0c687540b9]
/usr/local/bin/../lib/libgst.so.7(+0x2c733)[0x7f0c69acc733]
/usr/lib64/libsigsegv.so.2(+0xfa8)[0x7f0c69898fa8]
/lib64/libc.so.6(+0x32d80)[0x7f0c68752d80]
/usr/lib64/libglib-2.0.so.0(g_slice_alloc+0xaf)[0x7f0c4694a7f7]
/usr/lib64/libgtk-x11-2.0.so.0(gtk_tree_iter_copy+0x13)[0x7f0c3c851fc3]
/usr/lib64/libffi.so.6(ffi_call_unix64+0x4c)[0x7f0c69695c64]
Aborted

and sometimes (usually, in fact) it doesn't. However, when it does
successfully boot up, the "new workspace" menu item and button do
nothing, not even an error on stderr (this bug seems to be 5 years old,
looking at the tracker and the mailing list). So the browser is
basically useless for entering code.

At the moment installing the package onto my Ubuntu laptop produces much
the same experience as I have described above with the exception that in
that case gst-blox doesn't even exist as far as I can see and the
browser never manages to start up.

So, is there any advice or suggestions?

Thomas Worthington

--
Sent with my mu4e

_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Blox and browser

Holger Freyther

> On 21 Jan 2016, at 18:54, [hidden email] wrote:

Hi!

> I'm trying to use the current master branch (I've tried the 3.2.92 tag
> and the 3.2.5 tag as well).

3.2.92 and master are very close to each other. In fact the main reason
to wait for 3.3 is gst-browser (deadlocks and crashes)



> GNU Smalltalk version 3.2.92-504a8b8
> error: did not understand #blox
> MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
> UndefinedObject(Object)>>doesNotUnderstand: #blox (SysExcept.st:1408)

I have never used the blox UI and in fact it has been deprecated in 2009.
Looking at the code the question is what is parentView and why is it nil
at this point.

View>>#parentView has the following comment:
"Return view's parentView.  If view is a rootView, nil is returned"

PList doesn't seem to have a parentView when >>#initialize is called. This
sounds like a fallout from my changes to >>#new changes I made in commit:
4a224a329b5e63ab6ed432f437eb822e995ae64d. You could try a version before
that commit?



> and sometimes (usually, in fact) it doesn't. However, when it does
> successfully boot up, the "new workspace" menu item and button do
> nothing, not even an error on stderr (this bug seems to be 5 years old,
> looking at the tracker and the mailing list). So the browser is
> basically useless for entering code.

That is with 3.2.92? That is odd. What are the compiler flags you are
using to build the VM? If you are familiar with GDB it would be nice if
you could print the smalltalk stack at the time it is crashing.



> At the moment installing the package onto my Ubuntu laptop produces much
> the same experience as I have described above with the exception that in
> that case gst-blox doesn't even exist as far as I can see and the
> browser never manages to start up.

gst-browser still requires the libgtk2-dev headers to be installed or
symlinks in the plugin directort.

I have used gst-browser mostly to browse and sometimes to debug. The known
issue for me is event-loop interaction and lock-ups (re-entering the event
loop while the event loop is dispatching gtk).

We are on irc.freenode.net and if you would be interested to have a look I
am happy to guide you.

kind regards
        holger



_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Blox and browser

Holger Freyther

> On 21 Jan 2016, at 20:48, Holger Freyther <[hidden email]> wrote:
>


> PList doesn't seem to have a parentView when >>#initialize is called. This
> sounds like a fallout from my changes to >>#new changes I made in commit:
> 4a224a329b5e63ab6ed432f437eb822e995ae64d. You could try a version before
> that commit?

Okay, I have caused that fall-out. The below is a workaround. I will probably
end up renaming the >>#initialize routine. This way the class browser and
namespace view, senders/implementors have worked.

diff --git a/packages/blox/gtk/BloxBasic.st b/packages/blox/gtk/BloxBasic.st
index 2d70bf6..fea2004 100644
--- a/packages/blox/gtk/BloxBasic.st
+++ b/packages/blox/gtk/BloxBasic.st
@@ -39,6 +39,10 @@ Object subclass: Gui [
 expose an individual protocol but internally use a Blox widget for
 creating their user interface.'>
 
+    Gui class >> new [
+        ^self basicNew
+    ]
+
     blox [
        "Return instance of blox subclass which implements window"
 
diff --git a/packages/blox/tk/BloxBasic.st b/packages/blox/tk/BloxBasic.st
index 9fcd373..5e78032 100644
--- a/packages/blox/tk/BloxBasic.st
+++ b/packages/blox/tk/BloxBasic.st
@@ -39,6 +39,10 @@ Object subclass: Gui [
 expose an individual protocol but internally use a Blox widget for
 creating their user interface.'>
 
+    Gui class >> new [
+        ^self basicNew
+    ]
+
     blox [
        "Return instance of blox subclass which implements window"
 



_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Blox and browser

Thomas Worthington
In reply to this post by Holger Freyther
Hi,
  Thanks for the quick reply. I will try your suggestions here and in
  the other email over the weekend and let you know. I'm not that
  worried about blox if I can get the other browser working.

  What do you normally use to edit your code? I'm finding the
  smalltalk-mode in Emacs to be a bit weird when it comes to handling
  indentation.

Thomas


Holger Freyther writes:

>> On 21 Jan 2016, at 18:54, [hidden email] wrote:
>
> Hi!
>
>> I'm trying to use the current master branch (I've tried the 3.2.92 tag
>> and the 3.2.5 tag as well).
>
> 3.2.92 and master are very close to each other. In fact the main reason
> to wait for 3.3 is gst-browser (deadlocks and crashes)
>
>
>
>> GNU Smalltalk version 3.2.92-504a8b8
>> error: did not understand #blox
>> MessageNotUnderstood(Exception)>>signal (ExcHandling.st:254)
>> UndefinedObject(Object)>>doesNotUnderstand: #blox (SysExcept.st:1408)
>
> I have never used the blox UI and in fact it has been deprecated in 2009.
> Looking at the code the question is what is parentView and why is it nil
> at this point.
>
> View>>#parentView has the following comment:
> "Return view's parentView.  If view is a rootView, nil is returned"
>
> PList doesn't seem to have a parentView when >>#initialize is called. This
> sounds like a fallout from my changes to >>#new changes I made in commit:
> 4a224a329b5e63ab6ed432f437eb822e995ae64d. You could try a version before
> that commit?
>
>
>
>> and sometimes (usually, in fact) it doesn't. However, when it does
>> successfully boot up, the "new workspace" menu item and button do
>> nothing, not even an error on stderr (this bug seems to be 5 years old,
>> looking at the tracker and the mailing list). So the browser is
>> basically useless for entering code.
>
> That is with 3.2.92? That is odd. What are the compiler flags you are
> using to build the VM? If you are familiar with GDB it would be nice if
> you could print the smalltalk stack at the time it is crashing.
>
>
>
>> At the moment installing the package onto my Ubuntu laptop produces much
>> the same experience as I have described above with the exception that in
>> that case gst-blox doesn't even exist as far as I can see and the
>> browser never manages to start up.
>
> gst-browser still requires the libgtk2-dev headers to be installed or
> symlinks in the plugin directort.
>
> I have used gst-browser mostly to browse and sometimes to debug. The known
> issue for me is event-loop interaction and lock-ups (re-entering the event
> loop while the event loop is dispatching gtk).
>
> We are on irc.freenode.net and if you would be interested to have a look I
> am happy to guide you.
>
> kind regards
> holger

--
Sent with my mu4e

_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Blox and browser

Holger Freyther

> On 21 Jan 2016, at 23:13, [hidden email] wrote:
>
> Hi,

Hi!

>  Thanks for the quick reply. I will try your suggestions here and in
>  the other email over the weekend and let you know. I'm not that
>  worried about blox if I can get the other browser working.

my pleasure.


>  What do you normally use to edit your code? I'm finding the
>  smalltalk-mode in Emacs to be a bit weird when it comes to handling
>  indentation.

I use:
        * git grep kernel/ if I already have an idea what I search
        * gst-browser to look at the class methods
        * gst-browser and the debugger/inspector if I know what I want
        (and get deadlocks from time to time)
        * gst-sunit -p package.xml (with the option to spawn the debugger)
        * vim + Smalltalk removeFeature: #PackageName. PackageLoader
        loadPackageFromFile: '...' to reload it.

In terms of gst-browser I am only aware of deadlocks in the debugger
that are caused by re-entering the eventloop. I am happy to guide you
through the code if you want to have a look.

holger


_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: Blox and browser

Holger Freyther
In reply to this post by Holger Freyther

> On 21 Jan 2016, at 21:21, Holger Freyther <[hidden email]> wrote:
>
>
>> On 21 Jan 2016, at 20:48, Holger Freyther <[hidden email]> wrote:
>>
>
>
>> PList doesn't seem to have a parentView when >>#initialize is called. This
>> sounds like a fallout from my changes to >>#new changes I made in commit:
>> 4a224a329b5e63ab6ed432f437eb822e995ae64d. You could try a version before
>> that commit?
>
> Okay, I have caused that fall-out. The below is a workaround. I will probably
> end up renaming the >>#initialize routine. This way the class browser and
> namespace view, senders/implementors have worked.

I have fixed the workspace Do It/Print In/Inspect handling as well. Before your
mail I have never used gst-blox and actually it is quite neat and from a couple
of minutes trying I have a wishlist and wonder if you would like to collaborate
with me on this?

* TCL/TK is polled when GST is idle and if GST is really idle it will call into
Tcl a lot and take some CPU.

* File-Out seems to be broken (from an older change). There seems to be file-out
handling in two classes and one of them looks incomplete. Should be fairly easy
to fix.

* Text selection (e.g. CTRL+A) does not appear to work and is probably fairly
simple to fix as well.

* I have seen a wrong line number in the debugger, that might be a bit more tricky
to resolve.

* Trying to add a variable as instance variable in the class browser didn't seem
to work.


In terms of gst-browser. in a 32bit Debian 8.2 I can launch gst-browser and browse
the class hierachy, have simple inspect/print/do it functionality as well.

holger


_______________________________________________
help-smalltalk mailing list
[hidden email]
https://lists.gnu.org/mailman/listinfo/help-smalltalk