Blank, unresponsive JEDI under Linux/X11.

28 views
Skip to first unread message

Andrés Musetti

unread,
Apr 12, 2012, 10:05:28 AM4/12/12
to jazzs...@googlegroups.com
Hi again!
I'm using Jazz/JEDI under Linux and X11, and JEDI goes blank and unresponsive for several seconds when invoking certain actions, like opening a file, changing workspace, etc.

This is *really* annoying, as those actions are used very often. Does anyone suffer the same problem?

I thought it could have something to do with JEDI being blocked into a C function call, as it is based on Gambit-C, but maybe it is completely unrelated.


I'm using ArchLinux (both x86 and x86-64), and it happens all the time.

Any help or insights is really appreciated.

Thanks in advance,

Andrés.

Marc Feeley

unread,
Apr 12, 2012, 10:18:03 AM4/12/12
to jazzs...@googlegroups.com

On 2012-04-12, at 10:05 AM, Andrés Musetti wrote:

> Hi again!
> I'm using Jazz/JEDI under Linux and X11, and JEDI goes blank and unresponsive for several seconds when invoking certain actions, like opening a file, changing workspace, etc.
>
> This is *really* annoying, as those actions are used very often. Does anyone suffer the same problem?
>
> I thought it could have something to do with JEDI being blocked into a C function call, as it is based on Gambit-C, but maybe it is completely unrelated.

Gambit has a complete non-blocking I/O system with which it is possible to do I/O concurrently with other operations. So in principle such pauses could be avoided by careful use of the Gambit I/O functions.

So either

1) The code that does the I/O is written in C and interfaced with the FFI. In that case, the Scheme thread system will not be preemptive.

2) The I/O is done in Scheme, but it is written in a "synchronous" style. In other words, the event loop receives the event to open a file and this triggers the required operations (reading the file, syntax highlighting, etc) and only after all those operations are done is control returned to the event loop. This could be solved by starting a Scheme thread to do the operations, and returning immediately to the event loop.

Marc

Guillaume Cartier

unread,
Apr 12, 2012, 9:08:18 PM4/12/12
to jazzs...@googlegroups.com
Hi Andrés,

I just built Jedi with the latest code on Ubuntu X11 using VMWare on my Window PC and everything is running very smooth. Actually even smoother than I remembered! There is a small flicker when doing the operations you mention but nothing close to the seconds delay you are getting.

Actually, good news. I tried opening many modules and now I get the effect you are describing. Looking into it.

Guillaume

--
You received this message because you are subscribed to the Google Groups "Jazz Scheme" group.
To view this discussion on the web visit https://groups.google.com/d/msg/jazzscheme/-/4ET6a5wrAREJ.
To post to this group, send email to jazzs...@googlegroups.com.
To unsubscribe from this group, send email to jazzscheme+...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/jazzscheme?hl=en.

Guillaume Cartier

unread,
Apr 12, 2012, 10:29:03 PM4/12/12
to jazzs...@googlegroups.com
Hi Andrés,

The Jedi commit "Sync jazz for workspace switch improvements" I just pushed makes workspace switching *alot* smoother on X11.

A related good news is that I was able to reproduce the problem on Windows by removing the call to LockWindowUpdate. This function is a big Windows band-aid that we use to push under the rug thinking about update problems. X11 having no equivalent I know off, this is why workspace switching is so much smoother on Windows. In the next few days I will try and remove this function altogether replacing it with clean update management as it is not really needed any more. This should make updates faster and ensure behavior is uniform across platforms.

I also want to take a look at the other problem making the X11 experience less enjoyable than on Windows: the flicker of Menus and Dialogs when they draw their background.

Guillaume

Andrés Musetti

unread,
Apr 13, 2012, 9:48:00 AM4/13/12
to jazzs...@googlegroups.com
Hi Marc!

Yep! That's what I meant by "blocked into a C function call". I knew it had something to do with that! ;-)

Thanks for the explanation Marc.

And thanks a lot for Gambit, it's an amazing piece of software!

Andrés.

Guillaume Cartier

unread,
Apr 13, 2012, 10:21:35 AM4/13/12
to jazzs...@googlegroups.com, andres....@gmail.com
Hi again Andrés,

I just pushed some code that seems to fix the menu flicker.

As I only have access to Ubuntu at the moment, can you let me know if it's working correctly for you on your ArchLinux.

Guillaume

Andrés Musetti

unread,
Apr 13, 2012, 4:20:59 PM4/13/12
to jazzs...@googlegroups.com, andres....@gmail.com
El viernes, 13 de abril de 2012 11:21:35 UTC-3, Guillaume Cartier escribió:
Hi again Andrés,

I just pushed some code that seems to fix the menu flicker.

As I only have access to Ubuntu at the moment, can you let me know if it's working correctly for you on your ArchLinux.

Guillaume

Hi Guillaume!

After updating and building commit 2b001b34a785bfdcc43a6c4fd02bf5b10a6f9c24 ("Sync for with-locked-update cross-platform"), JEDI started to work beautifully.
Switching workspaces back and forth, and opening files was *instantaneous*, without any flickering nor human-noticeable delays.
The menus where still a bit flickering though, as you mentioned.

After updating and building commit e71f53b8e42a89e5a0677e60589cd63168ed899b ("Sync for X11 background pixel removal"), menus are working flawlessly, with just a few milliseconds delay before popping-up (the same drawing delay that caused the flickering in the first place, I guess), but now the menu windows are shown after they are drawn, so the flickering is gone! Good job!
I've noticed that after this update *there is* a few milliseconds delay when switching workspaces, too. Not that I'm complaining, but as a matter of completeness.

This is a *huge* improvement you just made, as the previous behaviour was a real handicap to usability.

Now JEDI works flawlessly! Thank you very much! :)

Andrés. 

Guillaume Cartier

unread,
Apr 14, 2012, 6:37:58 PM4/14/12
to jazzs...@googlegroups.com
Hi Andrés,

This is really good news!

Related to this, today I migrated all my personal projects to Ubuntu. I plan on making it my development platform at home (at work we are 9 developers working fulltime with Jazz and Jedi, but as all our projects are Windows only at the moment, this is the platform we are all using). This should help me improve the Jazz implementation on non-Windows platforms and hopefully have them running as smoothly as the Windows one sometime in the near future.

First thing I noticed after launching Jedi on Ubuntu is that the font rendering is really bad making it barely usable imho. To experiment with different font options, I added the following settings (which you can set in $HOME/.jedi/2.5.1/.settings) that can now be used to customize how cairo (http://cairographics.org/: the graphics library Jazz uses) renders fonts :

cairo.antialias    default
cairo.subpixel     default
cairo.hint-style   default
cairo.hint-metrics default

After looking at Ubuntu's own fonts settings using the Preferences / Appearance dialog, i made cairo.hint-style default to: slight. With this, font rendering is now very nice on Ubuntu. Could you and anyone having access to other platforms than Ubuntu try the latest and report whether these new settings improve or worsen font rendering for them.

PS: I noticed that the Edit / Paste Cycle Ring menu command was not working on non-Windows platforms. It is now fixed.
PPS: This command implements a clipboard ring similar to the one in emacs.

Guillaume


Andrés. 

--
You received this message because you are subscribed to the Google Groups "Jazz Scheme" group.
To view this discussion on the web visit https://groups.google.com/d/msg/jazzscheme/-/Sr55Xxd39Q8J.
Reply all
Reply to author
Forward
0 new messages