Hi,
http://memegenerator.net/cache/instances/400x/12/12436/12734680.jpg
with this little stupid meme I would like to start a discussion about replacing the current control socket living "somewhere" in the "~/.config/geany" directory space with implementing GApplication from recent GLib versions.
As it looks to me the current tasks of the control socket are: * ensure some basic uniqueness (open files via the geany command in an already running instance) * provide ability to perform basic operations on a running Geany instance like - opening files - go to a certain position in the file. - obtain a list of documents opened in the current instance
These tasks can be accomplished with GApplication too. On top of that we would get rid of: * cluttering the filesystem with sockets * possibility of a dead lock in the doclist command * general freeze while a client is connected to the socket.
The downside would be that the required version for GLib would be pushed to 2.28 and this version is not available on the stable branch for all distributions.
My suggestion therefore is to put this at least on the Todo list and replace it with the planned feature to use dbus.
On top of that I would offer my free time to work on this topic as soon as all requirements are met, if appreciated.
Greetings and a happy new year, Arthur S.
Hi
Will Geany be able to run without dbus after this change?
Hi Arthur,
[...]
The downside would be that the required version for GLib would be pushed to 2.28 and this version is not available on the stable branch for all distributions.
As you say, with this version requirement it isn't a short term option.
My suggestion therefore is to put this at least on the Todo list and replace it with the planned feature to use dbus.
Will it work on non-Linux platforms?
On top of that I would offer my free time to work on this topic as soon as all requirements are met, if appreciated.
All offers of help are appreciated. Especially if you wanted to help in the meantime ;)
Cheers Lex
On Sat, 31 Dec 2011 17:26:50 +0100 Arthur Skowronek arthur.s@redsmile.org wrote:
Hi,
http://memegenerator.net/cache/instances/400x/12/12436/12734680.jpg
No it's not, and we'll probably have to subclass GApplication too.
with this little stupid meme I would like to start a discussion about replacing the current control socket living "somewhere" in the "~/.config/geany" directory space [...]
You can put it into /tmp (I do) or anywhere else.
These tasks can be accomplished with GApplication too. On top of that we would get rid of:
- cluttering the filesystem with sockets
$ find / -xdev | wc -l 98565
That's a relatively small (~2.2GB) desktop installation, without /home.
- possibility of a dead lock in the doclist command
AFAIK, only open and openro are widely (really?) used.
- general freeze while a client is connected to the socket.
Have you tested how long that lasts? If it doesn't freeze for more than 0.1 seconds, there isn't no point, scintilla delays are much more noticable.
The downside would be that the required version for GLib would be pushed to 2.28 and this version is not available on the stable branch for all distributions.
I guess that'll be about the time we bump the requirements to gtk+ 2.22 or 2.24. We only recently increased them to 2.16 though...
My suggestion therefore is to put this at least on the Todo list and replace it with the planned feature to use dbus.
I'm not against that, but is it worth?
Greetings and a happy new year
:)
On 12/31/2011 08:26 AM, Arthur Skowronek wrote:
Hi,
http://memegenerator.net/cache/instances/400x/12/12436/12734680.jpg
with this little stupid meme I would like to start a discussion about replacing the current control socket living "somewhere" in the "~/.config/geany" directory space with implementing GApplication from recent GLib versions.
As it looks to me the current tasks of the control socket are:
- ensure some basic uniqueness (open files via the geany command in an already running instance)
- provide ability to perform basic operations on a running Geany instance like
- opening files
- go to a certain position in the file.
- obtain a list of documents opened in the current instance
These tasks can be accomplished with GApplication too. On top of that we would get rid of:
- cluttering the filesystem with sockets
- possibility of a dead lock in the doclist command
- general freeze while a client is connected to the socket.
The downside would be that the required version for GLib would be pushed to 2.28 and this version is not available on the stable branch for all distributions.
My suggestion therefore is to put this at least on the Todo list and replace it with the planned feature to use dbus.
On top of that I would offer my free time to work on this topic as soon as all requirements are met, if appreciated.
As the others have said the two key issues here are 1) too new GTK/GLib version and 2) dependence on DBus which I'm going to guess isn't easily working and installable on Win32/OSX?
There's lots of other stuff you can help out with though :)
Cheers, Matthew Brush
Hi guys,
I guess I have do admit defeat here since I don't have any more arguments for supporting my suggestion.
On 01.01.2012 01:49, Matthew Brush wrote:
As the others have said the two key issues here are 1) too new GTK/GLib version and 2) dependence on DBus which I'm going to guess isn't easily working and installable on Win32/OSX?
My main intention here was to render the wire protocol obsolete. It's serving its job but in my opinion it is way to fragile: - the socket itself is prone to race conditions and stays in the file system after a crash (luckily crashes are unlikely) - the protocol itself is prone to a dry lock in the "doclist" command - poorly written client code can dead lock geany for a few seconds
At first my goal was to improve the protocol by using something like zeromq for message passing and attaching the socket handling into glib's main loop code by using GSource and using bson for the wire protocol itself (pretty over engineered, huh?)
But then I thought about using dbus because it would fix both issues with a single stroke and stumbled GApplication which offers all required functionality and therefore thought it would be the proper solution for this issue.
There's lots of other stuff you can help out with though :)
I've gathered some expertise in using zeromq and wanted to share it. I think I'll go back into lurk mode and wait for something to pop up and I can help on.
Thanks for spending time on my suggestion.
Cheers, Matthew Brush _______________________________________________ Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Greetings, Arthur
On 01/01/2012 11:47 AM, Arthur Skowronek wrote:
- the protocol itself is prone to a dry lock in the "doclist" command
- poorly written client code can dead lock geany for a few seconds
Can you file bug reports for these? (assuming they aren't just "theoretical" problems but actual bugs)
Cheers, Matthew Brush
Arthur,
Just a note that the protocal isn't a published supported interface, it is only use is geany-geany. So the only poorly written client is Geany itself :) If thats the case definitely report it.
Cheers Lex
On Mon, Jan 2, 2012 at 8:10 AM, Matthew Brush mbrush@codebrainz.ca wrote:
On 01/01/2012 11:47 AM, Arthur Skowronek wrote:
- the protocol itself is prone to a dry lock in the "doclist" command - poorly written client code can dead lock geany for a few seconds
Can you file bug reports for these? (assuming they aren't just "theoretical" problems but actual bugs)
Cheers, Matthew Brush
Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Am 01.01.2012 01:49, schrieb Matthew Brush:
As the others have said the two key issues here are 1) too new GTK/GLib version and 2) dependence on DBus which I'm going to guess isn't easily working and installable on Win32/OSX?
Isn't it GLib that has the dependency on DBus (to implement GApplication), not Geany?
Best regards.
On Mon, Jan 2, 2012 at 8:16 PM, Thomas Martitz thomas.martitz@student.htw-berlin.de wrote:
Am 01.01.2012 01:49, schrieb Matthew Brush:
As the others have said the two key issues here are 1) too new GTK/GLib version and 2) dependence on DBus which I'm going to guess isn't easily working and installable on Win32/OSX?
Isn't it GLib that has the dependency on DBus (to implement GApplication), not Geany?
IIUC yes, and so it is a glib responsibility to safely do nothing on other platforms IMHO.
So long as we only use GTKApplication's action interface and don't fall over if it doesn't work then it should be ok.
Working on windows is still a question iiuc
Cheers Lex
Best regards.
Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel